C语言练习题1.docx
- 文档编号:8987089
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:25
- 大小:28.74KB
C语言练习题1.docx
《C语言练习题1.docx》由会员分享,可在线阅读,更多相关《C语言练习题1.docx(25页珍藏版)》请在冰豆网上搜索。
C语言练习题1
一单项选择题
1.(A)是构成C语言程序的基本单位。
A、函数B、过程C、子程序D、子例程
2.C语言程序从C开始执行。
A)程序中第一条可执行语句 B)程序中第一个函数
C)程序中的main函数 D)包含文件中的第一个函数
3.下列关于C语言的说法错误的是(B)。
A)C程序执行到main函数结束
B)C语言不区分大小写。
C)C程序的三种基本结构是顺序、选择、循环
D)C程序从main函数开始执行
4.下列正确的标识符是( C)。
A.-a1B.a[i]C.a2_iD.intt
5.下列C语言用户标识符中合法的是(B)。
A)3axB)xC)caseD)-e2E)union
6.下列四组选项中,正确的C语言标识符是(C)。
A)%xB)a+bC)a123D)123
7.在C语言程序中,表达式5%2的结果是B。
A)2.5B)2C)1D)3
8.如果inta=3,b=4;则条件表达式"a
a:
b"的值是_3___。
A)3B)4C)0D)1
9.若intx=2,y=3,z=4,t;t=x y: z,则t的值是(4). A)4B)3C)2D)0E)1 10.C语言中,关系表达式和逻辑表达式的值是(B)。 A)0B)0或1C)1D)‘T’或’F’ 11.下面(D)表达式的值为4. A)11/3 B)11.0/3 C)(float)11/3 D)(int)(11.0/3+0.5) 12.设整型变量a=2,则执行下列语句后,浮点型变量b的值不为0.5的是(B ) A.b=1.0/aB.b=(float)(1/a) C.b=1/(float)aD.b=1/(a*1.0) 13.以下对一维数组a的正确说明是: B A)chara(10);B)inta[]; C)intk=5,a[k];D)chara[3]={‘a’,’b’,’c’}; 14.以下能对一维数组a进行初始化的语句是: (C) A.inta[5]=(0,1,2,3,4,)B.inta(5)={} C.inta[3]={0,1,2}D.inta{5}={10*1} 15.在C语言中对一维整型数组的正确定义为B。 A)inta(10);B)intn=10,a[n]; C)intn;a[n];D)#defineN12 inta[N]; 16.已知: inta[10];则对a数组元素的正确引用是(D)。 A、a[10]B、a[3.5]C、a(5)D、a[0] 17.下列关系表达式中结果为真的是(D) (A)0 ==1 ;(B)6<8 ;(C)(a=2*2)==2 ;(D)y=(2+2)==4 ; 18.若有说明: inta[][3]={{1,2,3},{4,5},{6,7}};则数组a的第一维的大小为: (3) A.2B.3C.4D.无确定值 19.对二维数组的正确定义是(C ) A.inta[][]={1,2,3,4,5,6};B.inta[2][]={1,2,3,4,5,6}; C.inta[][3]={1,2,3,4,5,6};D.inta[2,3]={1,2,3,4,5,6}; 20.已知inta[3][4];则对数组元素引用正确的是___C__ A)a[2][4]B)a[1,3]C)a[2][0]D)a (2) (1) 21.在C语言中,函数的数据类型是指(C) A函数返回值的数据类型B.函数形参的数据类型 C调用该函数时的实参的数据类型D.任意指定的数据类型 22.在函数调用时,以下说法正确的是(B ) A.函数调用后必须带回返回值 B.实际参数和形式参数可以同名 C.函数间的数据传递不可以使用全局变量 D.主调函数必须定义在被调函数后面 23.在C语言中,表示静态存储类别的关键字是: (A) A)autoB)registerC)staticD)extern 24.未指定存储类别的变量,其隐含的存储类别为(C)。 A)autoB)staticC)externD)register 25.语句int*p;说明了C。 A)p是指向一维数组的指针 B)p是指向函数的指针,该函数返回一int型数据 C)p是指向int型数据的指针 D)p是函数名,该函数返回一指向int型数据的指针 26.下列不正确的定义是( B)。 A.int*p=&i,i;B.int*p,i; C.inti,*p=&i;D.inti,*p; 27.若有说明: intn=2,*p=&n,*q=p,则以下非法的赋值语句是: ( B) A)p=qB)*p=*qC)n=*qD)p=n 28.有语句: inta[10],;则D是对指针变量p的正确定义和初始化。 A)intp=*a;B)int*p=a;C)intp=&a;D)int*p=&a; 29.若有说明语句“inta[5],*p=a;”,则对数组元素的正确引用是(C)。 A.a[p]B.p[a]C.*(p+2)D.p+2 30.在C语言中,以D作为字符串结束标志 A)’\n’B)’’C)’0’D)’\0’ 31.已知charx[]="hello",y[]={'h','e','a','b','e'};,则关于两个数组长度的正确描述是B. A)相同B)x大于yC)x小于yD)以上答案都不对 一、读程序 A.基本输入输出及流程控制 1. #include main() {inta=1,b=3,c=5; if(c==a+b) printf("yes\n"); else printf("no\n"); } 运行结果为: no 2. #include main() {inta=12,b=-34,c=56,min=0; min=a; if(min>b) min=b; if(min>c) min=c; printf("min=%d",min); } 运行结果为: -34 3. #include main() {intx=2,y=-1,z=5; if(x if(y<0) z=0; else z=z+1; printf(“%d\n”,z); } 运行结果为: 5 4. #include main() {floatc=3.0,d=4.0; if(c>d)c=5.0; else if(c==d)c=6.0; elsec=7.0; printf(“%.1f\n”,c); } 运行结果为: 7.0 5. #include main() {intm; scanf("%d",&m); if(m>=0) if(m%2==0)printf("%disapositiveeven\n",m); elseprintf("%disapositiveodd\n",m); else if(m%2==0)printf("%disanegativeeven\n",m); elseprintf("%disanegativeodd\n",m); } 若键入-9,则运行结果为: -9isapositiveodd 6. #include main() {intnum=0; while(num<=2){num++;printf("%d\n",num);} } 运行结果为: 3 7. #include main() {intsum=10,n=1; while(n<3){sum=sum-n;n++;} printf(“%d,%d”,n,sum); } 运行结果为: 37 8. #include main() {intnum,c; scanf("%d",&num); do{c=num%10;printf("%d",c);}while((num/=10)>0); printf("\n"); } 从键盘输入23,则运行结果为: 3 9. #include main() {ints=0,a=5,n; scanf("%d",&n); do{s+=1;a=a-2;}while(a! =n); printf("%d,%d\n",s,a); } 若输入的值1,运行结果为: 13 10. #include"stdio.h" main() {charc; c=getchar(); while(c! ='? '){putchar(c);c=getchar();} } 如果从键盘输入abcde? fgh(回车) 运行结果为: 11. #include main() {intx,y=0; for(x=1;x<=10;x++) {if(y>=10) break; y=y+x; } printf(“%d%d”,y,x); } 运行结果为: 105 12. #include main() {charch; ch=getchar(); switch(ch) {case‘A’: printf(“%c”,’A’); case‘B’: printf(“%c”,’B’);break; default: printf(“%s\n”,”other”); }} 当从键盘输入字母A时,运行结果为: A 13. #include main() {inta=1,b=0; scanf(“%d”,&a); switch(a) {case1: b=1;break; case2: b=2;break; default: b=10;} printf("%d",b); } 若键盘输入5,运行结果为: 10 14. #include voidmain() { intx=1,a=1,b=0; switch(x) {case0: b++;break; case1: a++;b++; case2: b++;break; } printf("a=%d,b=%d\n",a,b); } 运行结果为: 21 15. #include main() {inti,sum=0;i=1; do{sum=sum+i;i++;}while(i<=10); printf(“%d”,sum); } 运行结果为: 55 16. #include #defineN4 main() {inti; intx1=1,x2=2; printf("\n"); for(i=1;i<=N;i++) {printf("%4d%4d",x1,x2); if(i%2==0) printf("\n"); x1=x1+x2; x2=x2+x1; } } 运行结果为: 12358132134 17. #include #defineN4 main() {inti,j; for(i=1;i<=N;i++)5 {for(j=1;j printf(""); printf("*"); printf("\n"); }} 运行结果为: * * * * 数组 18. #include main() {inti,a[10]; for(i=9;i>=0;i--) a[i]=10-i; printf(“%d%d%d”,a[2],a[5],a[8]); } 运行结果为: 852 19. #include 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)]; for(i=0;i<3;i++) k+=p[i]*2; printf("%d\n",k); } 运行结果为: 6 20. #include main() {inti,a[6]; for(i=0;i<6;i++) a[i]=i; for(i=5;i>=0;i--) printf("%3d",a[i]); } 运行结果为: 54321 21. #include intm[3][3]={{1},{2},{3}}; intn[3][3]={1,2,3}; main() {printf(“%d,”,m[1][0]+n[0][0]); printf(“%d\n”,m[0][1]+n[1][0]); } 运行结果为: 30 22. #include“stdio.h” func(intb[]) {intj; for(j=0;j<4;j++) b[j]=j; } main() {inta[4],i; func(a); for(i=0;i<4;i++) printf(“%2d”,a[i]); } 运行结果为: 1121231234 23. #include f(intb[],intn) {inti,r; r=1; for(i=0;i<=n;i++) r=r*b[i]; returnr; } main() {intx,a[]={1,2,3,4,5,6,7,8,9}; x=f(a,3); printf(“%d\n”,x); } 运行结果为: 函数 24. #include intSub(inta,intb) {return(a-b);} main() {intx,y,result=0; scanf("%d,%d",&x,&y); result=Sub(x,y); printf("result=%d\n",result); } 当从键盘输入: 6,3运行结果为: 3 25. #include intmin(intx,inty) {intm; if(x>y)m=x; elsem=y; return(m); } main(){ inta=3,b=5,abmin; abmin=min(a,b); printf(“minis%d”,abmin); } 运行结果为: 3 26. #include func(intx){ x=10; printf(“%d,”,x); } main() {intx=20; func(x); printf(“%d”,x); } 运行结果为: 20 27. #include intm=4; floatfunc(intx,inty) {intm=1; return(x*y-m); } main() {inta=2,b=3; printf("%d\n",m); printf("%d\n",func(a,b)/m); } 运行结果为: 41 28. #include intfac(intn) {intf=1,i; for(i=1;i<=n;i++) f=f*i; return(f); } main() {intj,s; scanf(“%d”,&j); s=fac(j); printf("%d! =%d\n",j,s); } 如果从键盘输入3,运行结果为: 36 29. #include intfun(); voidmain() {ints=1,i; for(i=1;i<=3;i++) s=s*fun(); printf("s=%d",s); } intfun() {staticintm=0; returnm=m++; } 运行结果为: 30. #include intmax(intx,inty); main() {inta,b,c; a=7;b=8; c=max(a,b); printf("Maxis%d",c); } max(intx,inty) {intz; z=x>y? x: y; return(z); } 运行结果为: 指针 31. #include main() {intx[]={10,20,30,40,50}; int*p; p=x; printf(“%d”,*(p+2)); } 运行结果为: 30 32. #include main() {chars[]=”abcdefg”; char*p; p=s; printf(“ch=%c\n”,*(p+5)); } 运行结果为: f 33. #include main() {inta[]={1,2,3,4,5}; intx,y,*p; p=a; x=*(p+2); printf("%d: %d\n",*p,x); } 运行结果为: 13 34. #include main() {inta[]={1,2,3,4,5,6}; intx,y,*p; p=&a[0]; x=*(p+2); y=*(p+4); printf(“*p=%d,x=%d,y=%d\n”,*p,x,y); } 运行结果为: 135 35. intmain() { inta,b; a=5; b=9; Swap(&a,&b); printf("a=%d,b=%d",a,b); return0; } voidSwap(int*x,int*y) { inttemp; temp=*x; *x=*y; *y=temp; printf("*x=%d,*y=%d",*x,*y); } 运行结果为: 二、程序填空 1.输入一个字符,判断该字符是数字、字母、空格还是其他字符。 main() {charch; ch=getchar(); if(‘) printf("ItisanEnglishcharacter\n"); elseif() printf("Itisadigitcharacter\n"); elseif() printf("Itisaspacecharacter\n"); printf("Itisothercharacter\n");} 2.下列程序的功能是从输入的整数中,统计大于零的整数个数和小于零的整数个数。 用输入0来结束输入,用i,j来放统计数,请填空完成程序。 voidmain() {n,i=0,j=0; printf(“inputainteger,0forend\n”); scanf(“%d”,&n); while(){ if(n>0)i=; elsej=j+1; } printf(“i=%4d,j=%4d\n”,i,j); } 3.编程计算1+3+5+……+101的值 #include voidmain() {inti,sum=0; for(i=1;i<102;i++) sum=sum+i; printf("sum=%d\n",sum);} 4.从键盘输入一个字符,判断它是否是英文字母。 #include voidmain() {charc; printf("inputacharacter: "); c=getchar(); if(c>=&&c<=||c>=‘a’&&c<=‘z’)printf("Yes\n"); elseprintf("No"); } 5.下面程序的功能是在a数组中查找与x值相同的元素所在位置,请填空。 #include voidmain() {inta[10],i,x; printf(“input10integers: ”); for(i=0;i<10;i++) scanf(“%d”,&a[i]); printf(“inputthenumberyouwanttofindx: ”); scanf(“%d”,); for(i=0;i<10;i++) if() break; if() printf(“theposofxis: %d\n”,i); elseprintf(“cannotfindx! \n”); } 6.程序读入20个整数,统计非负数个数,并计算非负数之和。 #include main() {inti,a[20],s,count; s=count=0; for(i=0;;i++) scanf(“%d”,&a[i]); for(i=0;i<20;i++) {if(a[i]
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 练习题