版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第4章作業(yè)題一、單選題1.若有定義:intaa[8];,則不能代表數(shù)組元素aa[1]地址的是(A)。A.&aa[0]++B.&aa[1]C.&aa[0]+1D.aa+12.運(yùn)行下列程序的輸出結(jié)果是(C)。main(){inta[]={1,2,3,4,5},i,*p=a+2;printf("%d",p[1]-p[-1]);}A.出錯(cuò),因下標(biāo)不能為負(fù)值B.1C.23.下列程序運(yùn)行后的輸出結(jié)果是(C)。main(){chararr[2][4];strcpy(arr,”you”);strcpy(arr[1],”me”);arr[0][3]=’&’;printf(“%s\n”,arr);}A.youB.you&C.you&meD.youme4.以下語(yǔ)句或語(yǔ)句組中,能正確進(jìn)行字符串賦值的是(A)。A.char*sp="right!";B.chars[10];s="right!";C.chars[10];*s="right!";D.char*sp;*sp="right!";5.若有如下定義,則不能表示數(shù)組a元素的表達(dá)式是(C)。inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;A.*pB.*aC.a[10]D.a[p-a]6.以下程序的輸出結(jié)果是(A)。main(){inti,x[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)printf("%d",x[i][2-i]);}A.357B.147C.1597.有下面的程序片段,則對(duì)數(shù)組元素的錯(cuò)誤引用是(C)。inta[12]={0},*p[3],**pp,i;for(i=0;i<3;i++)p[i]=&a[i*4];pp=p;A.pp[0][1]B.a[10]C.p[3][1]D.*(*(p+2)+2)8.設(shè)有定義:inta[10],*p=a;,對(duì)數(shù)組元素的正確引用是(B)。A.a[p]B.*(p+2)C.p[a]D.p+29.若二維數(shù)組y有m列,則排在y[i][j]前的元素個(gè)數(shù)為(A)。A.i*m+jB.j*m+iC.i*m+j-1D.i*m+j+110.有定義語(yǔ)句:int(*prt)[3],則標(biāo)識(shí)符prt(C)。A.是一個(gè)指向整型變量的指針B.是一個(gè)指針數(shù)組名,每個(gè)元素都是一個(gè)指向整數(shù)變量的指針C.是一個(gè)指針,它指向一個(gè)具有三個(gè)元素的一維數(shù)組D.定義不含法11.以下程序執(zhí)行后的輸出結(jié)果是(D)。#include"string.h"main(){char*p[10]={"abc","aabdfg","dcdbe","abbd","cd"};printf("%d\n",strlen(p[4]));}A.5B.4C.312.以下對(duì)二維數(shù)組的定義中正確的是(A)。A.inta[][3]={1,2,3,4,5,6};B.inta[][3];C.inta[4][]={1,2,3,4,5,6};D.inta[][]={{1,2,3},{4,5,6}};13.若有如下定義,則b的值是(A)。inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b=p[5];A.9B.6C.814.下面程序段的運(yùn)行結(jié)果是(C)。chara[]="lanuage",*p;p=a;while(*p!=’u’){printf("%c",*p-32);p++;}A.LANGUAGEB.languageC.LAND.langUAGE15.若有語(yǔ)句:chars1[10],s2[10]="books";,則能將字符串books賦給數(shù)組s1的語(yǔ)句是(D)。A.s1="books";B.strcpy(s2,s1);C.s1=s2;D.strcpy(s1,s2);16.下列程序的輸出結(jié)果是(D)。main(){chara[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;printf("%d",*--p);}A.運(yùn)行出錯(cuò)B.a[4]的地址C.3D.517.將p定義為指向含4個(gè)元素的一維數(shù)組的指針變量,正確語(yǔ)句為(C)。A.intp[4];B.int*p[4];C.int(*p)[4];D.int**p[4];18.以下程序的輸出結(jié)果是(D)。main(){intm[][3]={1,4,7,2,5,8,3,6,9};inti,j,k=2;for(i=0;i<3;i++){printf("%d",m[k][i]);}}A.456B.258C.19.有以下語(yǔ)句,則對(duì)a數(shù)組元素的引用不正確的是(0≤i≤9)(D)。inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;A.a[p-a]B.*(&a[i])C.p[i]D.*(*(a+i))20.下列程序執(zhí)行后的輸出結(jié)果是(A)。main(){inta[3][3],*p,i;p=&a[0][0];for(i=0;i<9;i++)p[i]=i+1;printf("%d\n",a[1][2]);}A.6B.9C.3D.隨機(jī)數(shù)21.若有定義:chara[20],*b=a;,則不能給數(shù)組a輸入字符串”Thisisabook”的語(yǔ)句是(B)。A.gets(a);B.scanf("%s",a);C.gets(&a[0]);D.gets(b);22.下列程序的輸出結(jié)果是(A)。main(){inta[5]={2,4,6,8,10},*p,**k;p=a;k=&p;printf("%d",*(p++));printf("%d\n",**k);}A.24B.22C.4D.4623.設(shè)有定義:chara[10]="ABCD",*p=a;,則*(p+4)的值是(C)。A."ABCD"B.’D’C.’\0’D.不確定24.下列程序運(yùn)行后的輸出結(jié)果是(B)。main(){inti,s=0,t[]={1,2,3,4,5,6,7,8,9};for(i=0;i<9;i+=2)s+=*(t+i);printf(“%d\n”,s);}A.45B.2525.下面對(duì)指針變量的敘述,正確的是(C)。A.指針變量可以加上一個(gè)指針變量B.可以把一個(gè)整形數(shù)賦給指針變量C.指針變量的值可以賦給指針變量D.指針變量不可以有空值,即該指針變量必須指向某一變量26.以下定義語(yǔ)句中,錯(cuò)誤的是(D)。A.inta[]={1,2};B.char*a[3];C.chars[10]="test";D.intn=5,a[n];27.設(shè)有定義:inta[10],*p=a+6,*q=a;,則下列運(yùn)算哪種是錯(cuò)誤的(A)。A.p+qB.p-qC.p+3D.p>q28.用數(shù)組名作為函數(shù)調(diào)用時(shí)的實(shí)參,實(shí)際上傳遞給形參的是(A)。A.數(shù)組首地址 B.數(shù)組第一個(gè)元素的值C.數(shù)組全部元素的值 D.數(shù)組元素的個(gè)數(shù)29.設(shè)有定義:inta[]={1,5,7,9,11,13},*p=a+3;,則*(p-2)與*(a+4)的值分別是(C)。A.59B.19C.511D.有錯(cuò)誤30.下列描述中不正確的是(A)。A.可以對(duì)整型數(shù)組進(jìn)行整體輸入、輸出B.字符型數(shù)組中可以存放字符串C.可以對(duì)字符型串進(jìn)行整體輸入、輸出D.不能在賦值語(yǔ)句中通過(guò)賦值運(yùn)算符"="對(duì)字符型數(shù)組進(jìn)行整體賦值32.有以下程序,執(zhí)行后輸出結(jié)果是(B)。main(){intx[8]={8,7,6,5,0},*s;s=x+3;printf("%d",s[2]);}A.隨機(jī)值B.0C.5D.633.設(shè)有定義:chars[12]="string";,則printf("%d",strlen(s));的輸出結(jié)果是(D)。A.7B.12C.11D.634.設(shè)有程序段:#defineN3#defineMN+2floata[M][N];則數(shù)組a的元素個(gè)數(shù)和最后一個(gè)元素分別為(A)。A.15,a[4][2] B.15,a[3][5] C.8,a[4][2] D.15,a[5][3]二、程序填空題1.以下程序的功能是:求出數(shù)組x中各相鄰兩個(gè)元素的和依次存放到a數(shù)組中,然后輸出。請(qǐng)?zhí)羁铡ain(){intx[10],a[9],i;printf(“往數(shù)組x中讀入10個(gè)整數(shù):”);for(i=0;i<10;i++)scanf("%d",&x[i]);for(i=1;i<10;i++)a[i-1]=x[i]+x[i-1];for(i=0;i<9;i++)printf("%d",a[i]);printf("\n");}2.以下程序統(tǒng)計(jì)從終端輸入的字符中大寫字母的個(gè)數(shù),num[0]中統(tǒng)計(jì)字母A的個(gè)數(shù),num[1]中統(tǒng)計(jì)字母B的個(gè)數(shù),其它依次類推.用#號(hào)結(jié)束輸入,請(qǐng)?zhí)羁铡?include<stdio.h>main(){intnum[26]={0},i;charc;while((c=getchar())!='#')if(c>=’A’&&c<=’Z’)num[c-‘A’]+=1;for(i=0;i<26;i++)
printf("%c:%d\n",i+'A',num);}3.下面程序的功能是檢查一個(gè)N×N矩陣是否對(duì)稱(即判斷是否所有的a[i][j]等于a[j][i])。請(qǐng)?zhí)羁铡?defineN4main(){inta[N][N]={1,2,3,4,2,2,5,6,3,5,3,7,4,6,7,4};inti,j,found=0;for(i=0;i<N;i++)for(j=0;j<i;j++)if(a[i][j]!=a[j][i]){found=1;break;}if(found)printf("No");elseprintf("Yes");}4.以下程序用以刪除字符串中所有的空格,請(qǐng)?zhí)羁?。main(){chars[100]={"OurteacherteachClanguage!"};inti,j;for(i=j=0;s[i]!='\0';i++)if(s[i]!=''){s[j]=s[i];j++;}s[j]=‘\0’printf("%s\n",s);}5.下面程序的功能是輸出兩個(gè)字符串中對(duì)應(yīng)相等的字符。#include<stdio.h>main(){inti=0;charx[]="programming";chary[]="Fortran";while(x[i]&&y[i]){if(x[i]==y[i])putchar(x[i]);i++;}}6.以下程序用來(lái)輸出字符串"china"的長(zhǎng)度,請(qǐng)?zhí)羁铡?include"string.h"#include"stdio.h"main(){chara[]="china";printf("%d\n",strlen(a));}7.下列程序的功能是把輸入的十進(jìn)制長(zhǎng)整型數(shù)以十六進(jìn)制數(shù)的形式輸出。main(){charb[]="0123456789ABCDEF";intc[64],d,i=0,base=16;longn;scanf("%ld",&n);do{c[i]=n%base;i++;n=n/base;}while(n!=0);for(--i;i>=0;--i){}8.下列程序的功能是將數(shù)組a的元素按行求和并存儲(chǔ)到數(shù)組s中。main(){inta[3][4],s[3]={0}inti,j;for(i=0;i<3;i++)for(j=0;j<4;j++)scanf("%d",&a[i][j]);for(i=0;i<3;i++){for(j=0;j<4;j++)s[i]+=a[i][j];printf("%d\n",s[i]);}}三、程序改錯(cuò)題1.下列程序的功能是計(jì)算字符串的字符個(gè)數(shù)。#include"stdio.h"main(){charstr[80];ints,i=0;/*ints=0,i=0;*/gets(str);for(;str[i]!=‘\0’;i++)s++;printf("%4d\n",s);}2.給定n個(gè)實(shí)數(shù),輸出平均值,并統(tǒng)計(jì)在平均值以下(含平均值)的實(shí)數(shù)個(gè)數(shù).main(){floatx[]={23.5,45.67,12.1,6.4,58.9,98.4},sum=0,ave;intn=6,j,c=0;for(j=0;j<n;j++)sum+=x[j];ave=sum/n;printf("ave=%f\n",ave);for(j=0;j<n;j++)if(x[j]>=ave)c++;/*if(x[j]<=ave)c++;*/printf("%d\n",c);}3.下列程序的功能是計(jì)算3×3矩陣的主對(duì)角線元素之和。main(){inti,a[3][3]={1,2,3,4,5,6,7,8,9},sum=0;for(i=0;i<=3;i++)/*for(i=0;i<3;i++)*/sum=a[i][i];printf("sum=%d\n",sum);}4.下列程序的功能是復(fù)制字符串a(chǎn)到b中。main(){chara[20]="abcde",b[20];char*str1=a,*str2;str2=b;while(*str2++==*str1++);/*while(*str2++=*str1++);*/printf("%s",b);}5.從鍵盤上輸入一個(gè)3行3列矩陣的各個(gè)元素的值,然后輸出主對(duì)角線上的元素之和sum。#include"stdio.h"main(){inta[3][3],sum=0;inti,j;for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);for(i=0;i<3;i++)sum=sum+a[i][j];/*sum=sum+a[i][i];*/printf("sum=%d\n",sum);}6.下列程序的功能是統(tǒng)計(jì)字符串中空格數(shù)。#include"stdio.h"
main()
{intnum;/*intnum=0;*/
chara[81],*str=a,ch;
gets(a);
while((ch=*str++)!=’\0’)
if(ch==’’7.下列程序的功能是輸入一個(gè)字符串,然后再輸出。main(){chara[20];inti=0;scanf("%s",&a);/*scanf("%s",a);*/while(a[i])printf("%c",a[i++]);}8.將數(shù)組逆序輸出。
#defineN11
main()
{inti,j,t,number;inta[N]={1,2,4,6,8,9,12,15,149,156};
for(i=N-1;i>=0;i++)/*for(i=N-2;i>=0;i++)*/
printf("%5d",a[i]);
printf("\n");
}9.有N×N矩陣A,進(jìn)行a[i][j]+a[j][i]的操作后,存放在矩陣B中,并輸出B矩陣。#defineN3#include<stdio.h>main(){inta[N][N]={{1,2,3},{4,5,6},inti,j;for(i=0;i<N;i++)for(j=0;j<N;j++)b[i][j]=a[i][j]+a[j][i];for(i=0;i<N;i++){for(j=0;j<N;j++)printf("%4d",b[j][i]);/*printf("%4d",b[i][j]);*/printf("\n");}}四、讀程序?qū)懡Y(jié)果題1.main(){chara[]="*****";inti,j,k;for(i=0;i<4;i++){printf("\n");for(j=0;j<i;j++)printf("%c",'');for(k=0;k<4;k++)printf("%c",a[k]);}}運(yùn)行結(jié)果:****************2.main(){inti,n[6]={0};for(i=1;i<=4;i++){n[i]=n[i-1]*2+1;}printf("%d,%d\n",n[3],n[5]);}運(yùn)行結(jié)果:7,03.main(){inti,k,a[10],p[3];k=5;for(i=0;i<10;i++)a[i]=i;for(i=0;i<3;i++)p[i]=a[i*(i+1)];printf("%d,%d\n",p[1],p[2]);}運(yùn)行結(jié)果:2,64.main(){inta[3][3]={{1,2},{3,4},{5,6}};inti,j,s=0;for(i=0;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf("%d,%d",a[1][2],s);}運(yùn)行結(jié)果:0,195.#include<string.h>main(){charstr1[20]="China\0USA",str2[20]="Beijing";inti,k;i=strlen(str1);k=strlen(str2);printf("%d,%d\n",i,k);}運(yùn)行結(jié)果:5,76.main(){inta[]={2,4,6,8,10};inty=0,x,*p;p=&a[1];printf("%d,%d\n",a[1],*(p+1));}運(yùn)行結(jié)果:4,67.main(){intc;charnum[][4]={"CDEF","ACBD"};c=num[0][1]-'A';printf("%d,%c\n",c,num[1][2]);}運(yùn)行結(jié)果:3,B8.main(){inti,n[3];for(i=0;i<3;i++)n[i]=i;for(i=0;i<=1;i++)n[i]=n[i+1]+1;printf("%d,%d\n",n[1],n[2]);}運(yùn)行結(jié)果:3,29.main(){charch[5]={"6937"};inti,j,s;s=0;for(i=0;ch[i]!='\0';i++)s=s*10+ch[i]-'0';printf("%d,%d\n",i,s);}運(yùn)行結(jié)果:4,693710.#include<string.h>main(){charc='a',t[]="youandme";intn,k,j;n=strlen(t);for(k=0;k<n;k++)if(t[k]==c){j=k;break;}elsej=-1;printf("%d,%d\n",j,n);}運(yùn)行結(jié)果:4,1011.main(){inta[]={2,3,4},*p;p=a+1;printf("%d,%d\n",a[1],p[1]);}運(yùn)行結(jié)果:3,412.main(){inta[]={1,3,5,7};int*p=a+1;printf("%d,%d\n",a[1],p[1]);}運(yùn)行結(jié)果:3,5五、編程題1.計(jì)算5×5矩陣的主、次對(duì)角線元素之和。方法一:#defineN5main(){inta[N][N],i,j,sum=0;for(i=0;i<N;i++)for(j=0;j<N;j++)scanf("%d",&a[i][j]);for(i=0;i<N;i++)for(j=0;j<N;j++)if(i==j||i+j==N-1) sum+=a[i][j];printf("sum=%d\n",sum);}方法二:#defineN5main(){inta[N][N],i,j,sum=0;for(i=0;i<N;i++)for(j=0;j<N;j++)scanf("%d",&a[i][j]);for(i=0;i<N;i++)sum+=a[i][i]+a[i][N-i-1];sum-=a[N/2][N/2];/*該元素多加一次*/printf("sum=%d\n",sum);}2.從鍵盤上輸入任意10個(gè)數(shù)并存放到數(shù)組a中,計(jì)算它們的平均值,找出其中的最大數(shù)和最小數(shù),并顯示結(jié)果。#include"stdio.h"voidmain(){floata[10],ave,max,min;inti;printf("Enterarraya:\n");for(i=0;i<10;i++)scanf("%f",&a[i]);max=a[0];min=a[0];ave=a[0];for(i=1;i<10;i++){ave+=a[i];if(max<a[i])max=a[i];if(min>a[i])min=a[i];}ave/=10;printf("ave=%.2fmax=%.2fmin=%.2f\n",ave,max,min);}3.將5×5矩陣轉(zhuǎn)置并輸出。#include"stdio.h"#defineN5voidmain(){inti,j,a[N][N],t;for(i=0;i<N;i++)for(j=0;j<N;j++)scanf("%d",&a[i][j]);for(i=1;i<N;i++)for(j=0;j<i;j++){t=a[i][j];a[i][j]=a[j][i];a[j][i]=t;}for(i=0;i<N;i++){for(j=0;j<N;j++)printf("%4d",a[i][j]);printf("\n");}}4.將數(shù)組a中的10個(gè)數(shù)升序排列輸出。#include"stdio.h"#defineN10voidmain(){inti,j,k,a[N],t;for(i=0;i<N;i++)/*輸入N個(gè)要排序的數(shù)*/scanf("%d",&a[i]);for(i=0;i<N-1;i++)/*排序總共進(jìn)行N-1步*/{k=i;/*初始化最小數(shù)的下標(biāo)*/for(j=i+1;j<N;j++)/*尋找最小數(shù)下標(biāo)*/if(a[j]<a[k])k=j;/*記錄新的最小數(shù)下標(biāo)*/if(k!=i){t=a[i];a[i]=a[k];a[k]=t;}/*第i個(gè)數(shù)和最小數(shù)交換*/}for(i=0;i<N;i++)/*輸出排好序的N個(gè)數(shù)*/printf("%4d",a[i]);printf("\n");}5.把從鍵盤輸入的字符串逆置存放并輸出。#include"stdio.h"voidmain(){charstr[81],*p,*q,ch;printf("Inputastring:\n");gets(str);p=str;q=p;while(*q)q++;q--;while(p<q){ch=*p;*p++=*q;*q--=ch;}printf("turnstring:%s\n",str);}6.將字符數(shù)組a中的字符串復(fù)制到字符數(shù)組b。#in
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026甘肅民族師范學(xué)院招聘82人備考題庫(kù)完整答案詳解
- 2026年農(nóng)業(yè)氣候韌性提升實(shí)務(wù)課
- 家電家居產(chǎn)品演示話術(shù)手冊(cè)
- 財(cái)政系統(tǒng)預(yù)算培訓(xùn)課件
- 空調(diào)修理年終總結(jié)范文(3篇)
- 職業(yè)健康監(jiān)護(hù)中的職業(yè)史采集技巧
- 職業(yè)健康促進(jìn)的投資回報(bào)周期
- 職業(yè)健康促進(jìn)與職業(yè)健康人才培養(yǎng)
- 職業(yè)健康與心理健康的整合干預(yù)策略
- 茂名2025年廣東茂名市海洋綜合執(zhí)法支隊(duì)濱海新區(qū)大隊(duì)招聘4人筆試歷年參考題庫(kù)附帶答案詳解
- 2025年秋季散學(xué)典禮校長(zhǎng)講話:以四馬精神赴新程攜溫暖期許啟寒假
- 《智慧園區(qū)評(píng)價(jià)要求》
- 大中專高鐵乘務(wù)專業(yè)英語(yǔ)教學(xué)課件
- 吉林大學(xué)《電磁場(chǎng)與電磁波》2021-2022學(xué)年期末試卷
- 鮮花 高清鋼琴譜五線譜
- 安全生產(chǎn)標(biāo)準(zhǔn)化持續(xù)改進(jìn)方案
- CJT511-2017 鑄鐵檢查井蓋
- 2024年高考語(yǔ)文考前專題訓(xùn)練:現(xiàn)代文閱讀Ⅱ(散文)(解析版)
- 第六節(jié)暫準(zhǔn)進(jìn)出口貨物課件
- 中醫(yī)外科乳房疾病診療規(guī)范診療指南2023版
- 壓實(shí)瀝青混合料密度 表干法 自動(dòng)計(jì)算
評(píng)論
0/150
提交評(píng)論