收藏 分享(赏)

C语言程序设计习题集及答案21606.doc

上传人:dreamzhangning 文档编号:2324292 上传时间:2018-09-10 格式:DOC 页数:45 大小:403KB
下载 相关 举报
C语言程序设计习题集及答案21606.doc_第1页
第1页 / 共45页
C语言程序设计习题集及答案21606.doc_第2页
第2页 / 共45页
C语言程序设计习题集及答案21606.doc_第3页
第3页 / 共45页
C语言程序设计习题集及答案21606.doc_第4页
第4页 / 共45页
C语言程序设计习题集及答案21606.doc_第5页
第5页 / 共45页
点击查看更多>>
资源描述

1、C语言程序设计习题集桂林电子科技大学2010.61基础知识一 单项选择题(每题 2 分,共 44 分)1 以下叙述正确的是。A C 程序基本组成单位是语句 B C 程序每一行只能写一个语句C 简单 C 语句必须以分号作为结束符 D 注释语句可以嵌套2 一个 C 语言程序是从开始执行的。A 程序中第一个函数 B 名为 main 的函数C 包含文件(头文件)的第一个函数 D 程序中的第一个语句3 请选出合法的 C 语言赋值语句。A a=b=58 B i+; C a=58,b=58 D k=int(a+b);4 下面标识符中,合法的用户标识符是 。A 1abc B include C a-b-c12

2、3 D char5 以下所列的 C 语言整形常量中,正确的是。A 0x10 B 0976 C 076L D 01ff6 C 语言中下列运算符的操作数必须为整型的是。A % B + C / D =7 设 a 和 b 均为 int 型变量,则执行以下语句后的输出为。int a=20; int b=3; printf(“%dn“,a+=(b%=2);A 20 B 21 C 0 D 238 已知 int i;,则执行语句 i=2.6;后,i 的值为。A 2 B 3 C 2.6 D 不确定9 以下合法的字符常量为。A ab B 482 C D xaf10 若 y 为 int 型变量,则执行以下语句后,y

3、 的值是。y=8; y+=y-=y*y;A 64 B 56 C 112 D 4811 以下合法的浮点型常量是。A e-3 B 1.5e+2.4 C 3.14e+2L D 3.14 e +512 设 int 数据占用两个字节,float 数据占用四个字节,double 数据占用 8 个字节,且已知 float a=2;int b=3;则执行下列语句输出为。printf(“%d“,sizeof(a*b)+2/5);A 4 B 8 C 6 D 713 设 int 型占 2 个字节,且 int i=-2;,则语句 printf(“%u“,i);的输出结果为。A 0 B -2 C 65534 D 655

4、3514 若 x、y、z 均为整型常量,且 a=100,则执行下列语句后的 z 值为。x=a+; y=-a; z=x+y-a-;A 100 B 400 C 200 D 30015 若有以下定义和语句:int u=010,v=0x10,w=10,printf(“%d,%d,%dn“,u,v,w);,则输出结果是。A 8,16,10 B 10,10,10 C 8,8,10 D 8,10,1016 设 x、y 为 int 型变量,则执行下列语句后,y 的值是。x=5; y=x+*x+; y=-y*-y;A 529 B 2401 C 1209 D 625217 假设在程序中 a,b,c 均被定义成整型

5、,并且已赋大于 1 的值,则下列能正确表示代数式A 1/a*b*c B 1/(a*b*c) C 1/a/b/(float)c D 1.0/a/b/c18 若有定义: int a=8,b=5,c;char d=A;,则执行语句 c=a/b+d%a+0.5;后 c 的值为。A 2 B 2.5C 3 D 类型不一致,无法计算,编译出错19 在有以下程序:main() int i=10,j=1;i=i+j+;printf(“%d,%d,%dn“,i+,+j,i);执行后输出结果是。A 12,3,11 B 12,2,11 C 11,3,11 D 12,3,1220 已知 int i=65;,则 putc

6、har(i);printf(“%d“,i);printf(“%c“,i);的输出结果为。A A,65,A B 65,65,A C A,A,65 D A,A,A21 已知 int y,a,i=1;,则语句 printf(“%d,%d“,-i+,(y=a=3.6*3);的输出结果为。A -1,10 B -2,1.8 C 0,3 D 1,1822 有以下程序:main() char a,b,c,d;a=; b=xbc;c=0xab; d=023;printf(“%c%c%c%cn“,a,b,c,d);编译时出现错误,以下叙述中正确的是。A 程序中只有 a=;语句不正确 B b=xbc;语句不正确C

7、d=023;语句不正确 D a=;和 c=0xab;语句都不正确二 填空题(第 1 题 2 分,其余每题 3 分,共 56 分)1 设 x 为 int 型变量,请写出描述“x 是偶数”的表达式是。2 已知 scanf(“a=%d,b=%d,c=%d“,,若从键盘输入 2、3、4 三个数分别作为变量 a、b、c 的值则正确的输入形式是。3 设有语句 int a=3;,则执行了语句 a+=a-=a*a 后,变量 a 的值是。4 以下程序的输出结果是。main() int a=-10,b=-3;printf(“%dn“,-a+);printf(“%dn“,-a+b);abc1的表达式是。35 以下程

8、序的输出结果是。main() char c;c=0362;printf(“%dn “,c);6 以下程序段(n 所赋的是八进制数)执行后输出结果是。int m=32767,n=032767; printf(“%d,%on“,m,n);7 字符串“name101ddressbxaf“ 的长度为:。8 有以下程序段:int m=0,n=0; char c=a;scanf(“%d%c%d“,printf(“%d,%c,%dn“,m,c,n);若从键盘上输入:10A10,则输出结果是。9 以下程序的输出结果是。main() printf(“%d,%o,%xn“,10,10,10);printf(“%d

9、,%d,%dn“,10,010,0x10);printf(“%d,%xn“,012,012);10 设 a、b、c 为整形变量,且 a=2、b=3、c=4,则执行完语句 a*=16+(b+)-(+c);之后,变量 a 的值为。11 以下程序的输出结果为。main() int x=023;printf(“%xn“,-x);12 以下程序的结果为。main() int a=2,b=3,c,d;c=(a+)+(a+)+(a+);d=(+b)+(+b)+(+b);printf(“a=%d c=%dn“,a,c);printf(“b=%d d=%dn“,a,d);13 以下程序main() char c

10、h1,ch2,ch3;scanf(“%c%c%c“,printf(“%c%c%c%c%c“,ch1,#,ch2,#,ch3);当输入 ABC 时运行结果为 【1】 ,当输入 A BC 时运行结果为 【2】 。14 若有定义:float x;,以下程序段的输出结果是。4x=5.16894;printf(“%fn“,(int)(x*1000+0.5)/(float)1000);15 以下程序的功能是:输入一个小写字母,输出对应的大写字母,将程序补充完整。main() char ch;【1】 /* 从键盘输入一个小写字母 */【2】 /* 将该字母转换为大写字母 */【3】 /* 输出转换后的结果

11、*/16 当运行以下程序时,在键盘上从第一列开始输入 9876543210(此处代表回车),则程序的输出结果是。main() int a; float b,c;scanf(“%2d%3f%4f“,printf(“na=%d,b=%f,c=%fn“,a,b,c);17 以下程序的运行结果是。main() printf(“%12.5fn“,123.1234567);printf(“%12fn“,123.1234567);printf(“%12.8dn“,12345);printf(“%12.8sn“,“abcdefghij“);18 运行以下程序时,如从键盘上输入 abcdefg,则输出结果是。m

12、ain() char ch1,ch2,ch3;ch1=getchar(); ch2=getchar(); ch3=getchar();putchar(ch1); putchar(ch2); putchar(ch3);putchar(n);19 运行以下程序时,如从键盘上输入:a=3,b=535,35.12abc后,结果是。main() int a,b; float x,y; char c1,c2;scanf(“a=%d,b=%d“,scanf(“%f,%e“,scanf(“%c%c%c“,printf(“a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%cn“,a,b,x,y,c1,

13、c2);顺序、选择结构程序设计一 单项选择题(每题 2 分,共 40 分)1 以下程序运行后的输出结果是。5main() int a=0,b=0;a=10; b=20; printf(“a+b=%dn“,a+b);A a+b=10 B a+b=30 C 30 D 出错2 以下程序运行后的输出结果是。main() double d=3.2; int x,y;x=1.2; y=(x+3.8)/5.0;printf(“%dn“,d*y);A 3 B 3.2 C 0 D 3.073 以下程序运行后的输出结果是。main() double d; float f; long l; int i;i=f=l=

14、d=20/3;printf(“%d %ld %.1f %.1fn“,i,l,f,d);A 6 6 6.0 6.0 B 6 6 6.7 6.7 C 6 6 6.0 6.7 D 6 6 6.7 6.04 以下程序运行后的输出结果是。main() int a=1,b=2;a=a+b; b=a-b; a=a-b;printf(“%d,%dn“,a,b);A 1,2 B 1,1 C 2,2 D 2,15 以下程序运行后的输出结果是。main() int x,y,z;x=y=2; z=3;y=x+-1; printf(“%d %d “,x,y);y=+x-1; printf(“%d %dn“,x,y);y

15、=z-1; printf(“%d %d “,z,x);y=-z-1; printf(“%d %dn“,z,x);A 3 1 4 3 B 3 1 3 3 C 3 1 4 3 D 2 1 3 22 4 1 4 2 4 2 2 2 4 1 2 1 3 1 26 以下程序运行后的输出结果是。main() int x,y,z;x=y=1;z=x+,y+,+y;printf(“%d,%d,%dn“,x,y,z);A 2,3,3 B 2,3,2 C 2,3,1 D 2,2,167 以下程序运行后的输出结果是。main() int x=4,y=7;x-=y; y+=x;printf(“%d %dn“,x,y)

16、;A 4 7 B -3 -3 C -3 11 D -3 48 以下程序运行后的输出结果是。main() unsigned short a=65536; int b;printf(“%dn“,b=a);A 65536 B 0 C 1 D -19 以下程序:#include main() char c1,c2,c3,c4,c5,c6;scanf(“%c%c%c%c“,c5=getchar(); c6=getchar();putchar(c1); putchar(c2);printf(“%c%cn“,c5,c6);程序运行后,若从键盘输入(从第 1 列开始)12345678则输出结果是。A 1267

17、 B 1256 C 1278 D 124510 设 a、b 和 c 都是 int 型变量,且 a=3,b=0,c=5,则以下值为 0 的表达式是。A aif(amain() int x=1,y=0,a=0,b=0;switch(x) case 1:switch(y)8 case 0:a+;break;case 1:b+;break;case 2:a+;b+;break;printf(“a=%d,b=%dn“,a,b);A a=2,b=1 B a=1,b=1 C a=1,b=0 D a=2,b=2二 填空题(每题 3 分,共 30 分)1 以下程序运行后的输出结果是。#include main(

18、) int i=010 , j=10;printf(“%d,%dn“,+i,j-);2 以下程序运行后的输出结果是。#include main() printf(“%d%d%dn“,0,0,0); 3 以下程序运行后的输出结果是。main() int i=5,j,k;j=i+i+i+;k=(+i)+(+i)+(+i);printf(“i=%5d j=%5dnk=%5dn“,i,j,k);4 下面的程序运行时从键盘上输入 9876543210,程序的输出结果是。main() int a; float b,c;scanf(“%2d%2f%2f“,printf(“a=%d,b=%.1f,c=%.0f

19、“,a,b,c);5 下面程序的输出结果是。main() char ch1,ch2;ch1=A+5-3; ch2=A+6-3;printf(“%d,%cn“,ch1,ch2);6 执行下面的语句:printf(“%dn“ ,(a=3*5,a*4,a+5);,输出是。7 以下程序运行后的输出结果是。main() int x=10; printf(“%d,%dn“,-x,-x); 8 为表示关系 xyz,应使用 C 语言表达式。9 下面的程序段的输出结果是。9int x=3;if(x%2)?printf(“*%d“,x):printf(“#%dn“,x);10 以下程序运行后的输出结果是。main

20、() int m=5;switch(m/2) case 1: m+;case 2: m+=3;case 5: m+=6;break;default: m-=7;printf(“%dn“,m);三 程序填空(每空 5 分,共 30 分)1 下列程序的输出结果是 16.00,请填空。main() int a=9,b=2;float x= 【1】 ,y=1.1,z;z=a/2+b*x/y+1/2;printf(“%5.2fn“,z);2 完成以下程序,输入变量 a,b,c 的值,判断 a,b,c 能否组成三角形,计算三角形面积。(公式为: )。#include 【2】 ;main() int a,b

21、,c;【3】 printf(“please input the value of a,b,c“)scanf(“%d %d %d“, 【4】 );if( 【5】 ) 【6】 s=sqrt(p*(p-a)*(p-b)*(p-c);printf(“Yes,this is a triangle!n the area is %.2f.n“,s);else printf(“No,this is not a triangle!n“)循环结构程序设计一 单项选择题(每题 2 分,共 40 分)1 以下程序中,while 循环的循环次数是。main()2cbap)cp(b)a(ps 其 中10 int i=0;

22、while(i6) n-; printf(“%d“,n); 该程序的输出结果是A 987 B 876 C 8765 D 98763 以下程序段,while 循环执行的次数是。int k=0;while(k=1) k+;A 无限次 B 有语法错 C 一次也不执行 D 执行 1 次4 以下叙述正确的是。A do-while 语句构成的循环不能用其它语句构成的循环来代替B do-while 语句构成的循环只能用 break 语句退出C 用 do-while 语句构成的循环,在 while 后的表达式为非零时结束循环D 用 do-while 语句构成的循环,在 while 后的表达式为零时结束循环5

23、以下程序的执行结果是。main() int a,y;a=10; y=0;do a+=2; y+=a;printf(“a=%d y=%dn“,a,y);if(y20) break;while(a=14);A a=12 y=12 B a=12 y=12a=14 y=16 a=16 y=28a=16 y=20a=18 y=24C a=12 y=12 D a=12 y=12a=14 y=26a=14 y=446 以下程序的执行结果是。main() int x=23;do printf(“%d“,x-); while(!x);11A 321 B 23 C 不输出任何内容 D 陷入死循环7 有以下程序段,

24、输出结果是。int x=3;do printf(“%d “,x-=2); while(!(- -x);A 1 B 3 0 C 1 -2 D 死循环8 以下程序的输出结果是。main() int a=0,i;for(i=1;i=i) m=1;n+;printf(“%dn“,n);A 4 B 2 C 1 D 012 下列程序的输出结果是。12main() int i,sum;for(i=1;i=10) break;if(x%2=0) x+=5; continue; x-=3; y+;printf(“%d,%d“,x,y);A 6,6 B 7,6 C 10,3 D 7,317 以下程序执行后的输出结

25、果是。main() int a=5;while(!(a5) switch(a) case 1:a+;case 4:a+=4;case 5:a+=5;break;13default:a-=5;printf(“%dn“,a);A 12 B 7 C 5 D 1318 对于下面的 for 循环语句,可以断定它执行次循环。for(x=0,y=0;(y!=67)2 以下 while 循环执行的次数是。k=0; while(k=10) k=k+1;3 下列程序的输出结果是。main() int x=0,y=5,z=3;while(z0 if(x=1);for(j=i-1;j0;j-) printf(“%d“

26、,aj);A 1000 B 1001 C 1010 D 11009 以下对二维数组 a 的正确定义(说明)的是。A int a3; B float a(3,4); Cdouble a14; D float a(3)(4);10 若有定义(说明)int a34;,则对数组 a 的元素的引用非法的是。A a22*1 B a13 C a4-20 D a0411 以下不能对二维数组 a 进行正确初始化的语句是。A int a23=0; B int a3=1,2,0;C int a23=1,2,3,4,5,6; D int a3=1,2,3,4,5,6;12 下列数组定义语句中,正确的是。A char

27、a=a,b,c,d,e,f; B char a23=a,b;C char a3=a,b,c,d,e,f; D char a=a,b,c,d,e,f;13 下列程序运行后的输出结果是。main() int a44,i,j,k;for(i=0;i,则输出结果是。A 2 0 0 B 2 0 4 C 2 4 0 D 2 4 616 下列描述不正确的是。A 字符型数组中可以存放字符串B 可以对字符型数组进行整体输入和输出C 可以对整型数组进行整体输入和输出D 不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值17 对于以下定义,叙述正确的是。char x=“abcdef“;char x=a,b

28、 c,d,e,f;A 数组 x 和数组 y 等价 B 数组 x 和数组 y 的长度相等C 数组 x 的长度大于数组 y 的长度 D 数组 x 的长度小于数组 y 的长度18 以下选项中,不能正确赋值的是。A char s110;s1=“Ctest“; B char s2=C,t,e,s,t;C char s320=“Ctest“; D char s430;strcpy(s4,“Ctest“);19 若有定义和语句:char s=10;s=“abcd“ ;printf(“%sn“,s);,则输出结果是。(以下表示空格)A abcd B a C abcd D 编译不通过20 当执行下面程序时,如果

29、输入 ABC,则输出结果是。#include#includemain() char ss10=“12345“;gets(ss); strcat(ss, “6789“); printf(“%sn“,ss);A ABC6789 B ABC67 C 12345ABC6 D ABC45678 二 填空题(每空 3 分,共 24 分)181 若 int 类型变量占两个字节,定义 int x10=0,2,4;,则数组 x 在内存中所占的字节数是。2 若有定义 char a=“141141abct“;,则数组 a 在内存中所占的字节数是。3 下列程序的输出结果是。main() int i,a10;for(i

30、=9;i=0;i-) ai=10-i;printf(“%d%d%dn“,a2,a5,a8);4 下列程序运行的结果是。main() char ch7=“65ab21“; int i,s=0;for(i=0;chi=0 i-) ai+1=ai;【3】 ;for(i=0;imy() static int x=3;x+;return(x);main() int i,x;for(i=0;iint abc(int u,int v) int w;while(v) w=u%v; u=v; v=w; return u;main() int a=24,b=16,c;c=abc(a,b);printf(“%dn“

31、,c);A 8 B 6 C 5 D 417 下列程序运行后的输出结果是。main() static char s=“abcdefgca“;p(s); printf(“s=%sn“,s);p(char s) int i,j;for(i=j=0;si!= 0;i+) if(si!=a+2) sj+=si;sj= 0;A s=abcdefgca B s=abdefga C s=bcdefgc D 程序有错18 下列程序运行后的输出结果是。void main() int m=4,n=2,k;k=fun(m,n); printf(“%dn“,k);23k=fun(m,n); printf(“%dn“,k

32、);int fun(int x,int y) static int n=3,i=2;i+=n+1; n=i+x+y;return(n);A 12 B 12 C 12 D 1212 23 25 1619 下列程序运行后的输出结果是。int x=1;main() int i=5;fun(i);printf(“%d,%dn“,i,x);fun(m)int m; m+=x;x+=m; char x=A; printf(“%dn“,x); printf(“%d,%dn“,m,x);A 65 B A C A D 656,1 6,1 6,7 6,76,1 6,1 6,7 5,720 下列程序运行后,若从键盘

33、输入 ABC!四个字符后,程序输出是。#includemain() void receiv();receiv();void receiv() char c;c=getchar();putchar(c);if(c!=!) receiv();putchar(c);A ABC! B ABC!ABC! C ABC!CBA D ABCABC二 填空题(每空 3 分,共 30 分)1 函数调用语句:fun(a,b),(c,d,e);,实参个数为。2 凡在函数中未指定存储类别的局部变量,其默认的存储类别为。243 在一个 C 程序中,若要定义一个只允许本源程序文件中所有函数使用的全局变量,则该变量需要定义的

34、存储类别为。4 C 语言规定,调用一个函数时,实参变量和形参变量之间的数据传递方式是。5 运行下面程序,其输出结果是。#include int x,y;one() int a,b;a=25,b=10;x=a-b;y=a+b;main() int a,b;a=9,b=5;x=a+b;y=a-b;one();printf(“%d,%dn“,x,y):6 运行下面程序,其输出结果是。#include main() void printd()int n=123;printd(n);void printd(int n) int i;if(nmain() void recursion();recursio

35、n();void recursion() char c;c=getchar();putchar(c);if(c!=#) recursion();putchar(c);258 以下程序的输出结果是。#include void fun(int x) if(x/20) fun(x/2); printf(“%d “,x); main() fun(3); printf(“n“); 9 以下程序运行结果是。int a=1;int f(int c) static int a=2;c=c+1;return (a+)+c;main() int i,k=0;for(i=0;i999) 【3】 ;a=n/100;b

36、= 【4】 ;c=n%10;if(flag(a,b,c) printf(“n=%d=%d*%dn“,n,k,k);26flag 【5】 return(!(x-y)*(x-z)*(y-z); 2 以下程序的功能是应用近似公式计算 ex的值。其中,函数 f1 计算每项分子的值,函数f2 计算每项分母的值。共取 nmax 项之和作为 e 的近似值。 !2)1(max!321nxex float f2(int n) if(n= =1) return 1;else return 【6】 ;float f1(float x, int n) int i; float j= 【7】 ;for(i=1; 【8】

37、 ;i+) j=j*x;return j;#define nmax 20main() float x,exp=1.0; int n;printf(“Input x value:“);scanf(“%f“,for(n=1;nvoid main() static char a=“language“,b=“program“;char *ptr1=a,*ptr2=b;int k;for(k=0;k7;k+)if(*(ptr1+k)=*(ptr2+k) printf(“%c“,*(ptr1+k);A gae B ga C language D 有语法错误17 以下程序执行后的输出结果是。void fun

38、1(char *p) char *q;q=p;while(*q!=0) (*q)+; q+; main() char a=“Program“,*p;p= fun1(p); printf(“%sn“,a);A Prohsbn B Prphsbn C Progsbn D Program18 以下程序执行后的输出结果是。void swap(char *x,char *y) char t;t=*x; *x=*y; *y=t;main() char *s1=“abc“,*s2=“123“;swap(s1,s2); printf(“%s,%sn“,s1,s2);A 123,abc B abc,123 C

39、1bc,a23 D 321,cba19 以下程序执行后的输出结果是。main() char *p=“3697“,“2584“;int i,j; long num=0;29for(i=0;i2;i+) j=0;while(pij!=0) if(pij-0)%2) num=10*num+pij-0;j+=2;printf(“%dn“,num);A 35 B 37 C 39 D 397520 下列程序运行后的输出结果是。void main() char str=“The_Microsoft“; int n=4;sub(str,0,n-1);sub(str,0,strlen(str)-1);print

40、f(“%sn“,str);sub(str,n1,n2)char *str;int n1,n2; char c,*p;p=str+n2;str=str+n1;while(strp) c=*str; *str=*p; *p=c;str+; p-;A tfosorciMThe_ B. ehT_Microsoft C tfosorciM_ehT D. Microsoft_The二 填空题(每空 3 分,共 30 分)1 以下程序的定义语句中,x1的初值是 ,程序运行后输出的内容是 。main() int x=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,*p4,i;for(i=0; i4; i+) pi= printf(“%d“, pi0); printf(“n“);2 以下程序的输出结果是 。void swap(int *a, int *b) int *t;t=a; a=b; b=t;main() int i=2,j=5,*p=swap(p,q); printf(“%d %dn“,*p,*q)3 以下程序的输出结果是 。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报