C语言习题1.docx
- 文档编号:30620192
- 上传时间:2023-08-18
- 格式:DOCX
- 页数:96
- 大小:66.02KB
C语言习题1.docx
《C语言习题1.docx》由会员分享,可在线阅读,更多相关《C语言习题1.docx(96页珍藏版)》请在冰豆网上搜索。
C语言习题1
C语言习题
一、选择题
1、以下选项中正确的整型常量是(B)
A、12.B、-20C、1,0000D、456
2、以下选项中正确的实型常量是(D)
A、0B、3.1415C、0.329×102D、.87
3、以下选项中不正确的实型常量是(B)
A、2.607E-1B、0.8103E2C、-77.77D、456E-2
4、以下选项中不合法的用户标识是(A)
A、abo.cB、fileC、MainD、PRINTF
5、以下选项中不合法的用户标识是(C)
A、_123B、printfC、A$D、Dim
6、C语言中运算对象必需是整型的运算符是(A)
A、%B、/C、!
D、**
7、可在C程序中用作用户标识符的一组标识符是(B)
A、voiddefineWORD
B、as_b3_123If
C、For-abccase
D、2cDOSIG
8、若变量已正确定义并赋值,符合C语言语法的表达式是(B)
A、a=a+7B、a=7+b+c,a++C、int(123%4)D、a=a+7=c+b
9、以下叙述中正确的是(D)
A、a是实型变量,C允许进行以下赋值a=10,因此可以这样说:
实型变量中允许存放整型值
B、在赋值表达式中,赋值号右边既可以是变量也可以是任意表达式
C、执行表达式a=b后,在内存中a和b存储单元中的原有值都将改变,a的值已由原值改变为b的值。
D、已有a=3,b=5。
当执行了表达式a=a+b,b=a-b,a=a-b之后,已使a中的值为5,b中的值为3
10、以下叙述中正确的是(C)
A、在C程序中无论是整数还是实数,只要在允许的范围内都能准确无误的表示
B、C程序由主函数组成
C、C程序由函数组成。
D、C程序由函数和过程组成
11、TURBOC中int类型变量所占字节数是(B)
A、1B、2C、3D、4
12、不合法的八进制数是(B)
A、0B、028C、077D01
13、不合法的十六进制数是(A)
A、oxffB、0XabcC、0x11D、0x19
14、若a、b、c、d都是int类型变量且初值为0,以下选项中不正确的赋值语句是(C)
A、a=b=c=100;B、d++;C、c+b;D、d=(c=22)-(b++);
15、以下选项中不是C语句的是(C)
A、{inti;i++;printf(“%d\n”,i);}B、;
C、a=5,c=10D、{;}
16、以下合法的C语言赋值语句是(D)
A、a=b=58B、k=int(a+b);C、a=58,b=58D、--i;
17、以下程序的输出结果是(C)
A、0B、1C、3D、不确定的值
main()
{intx=10,y=3;
printf(“%d\n”,y=x/y);}
18、若变量已正确定义为int类型,要给a、b、c、输入数据,以下正确的输入语句是(D)
A、read(a,b,c);B、scanf(“%d%d%d”,a,b,c)
C、scanf(“%D%D%D”,&a,&b,&c);D、scanf(“%d%d%d”,&a,&b,&c);
19、若变量已正确定义为float类型,要通过赋值语句scanf(“%f%f%f”,&a,&b,&c)给a赋予10,b赋予22,c赋予33,以下不正确的输入形式是(B)
10.0,22.0,33.0
10
22
33
A、B、
1022
33
10.0
22.033.0
C、D、
20、若变量已正确定义,要将a和b中的数进行交换,下面选项中不正确的是(C)
A、a=a+b,b=a-b,a=a-b;B、t=a,a=b,b=t;
C、a=t;t=b;b=a;D、t=b;b=a;a=t;
21、若变量已正确定义,以下程序段的输出结果是(D)
A、输出说明与输出项不匹配,输出无定值
B、5.170000C、5.168000D、5.169000
x=5.16894;
printf(“%f\n”,(int)(x*1000+0.5)/(float)1000);
22、若有以下程序段,c3中的值是(A)
A、0B、1/2C、0.5D、1
intc1=1,c2=2,c3;
C3=c1/c2;
23、若有以下程序段,其输出结果是(B)
A、0,0,-10B、0,0,5C、-10,3,-10D、3,3,-10
inta=0,b=0,c=0;
c=(a-=a-5),(a=b,b+3);
printf(“%d,%d,%d”,a,b,c);
24、当运行以下程序时,在键盘上从第一列开始输入9876543210(此处
A、a=98,b=765,c=4321B、a=10,b=432,c=8765
C、a=98,b=765,000000,c=4321.000000D、a=98,b=765.0,c=4321.0
main()
{inta;floatb,c;
scanf(“%2d%3f%4f”,&a,&b,&c);
printf(“\na=%d,b=%f,c=%f\n”,a,b,c);}
25、以下程序的输出结果是(D)
A、a=%2,b=%5B、a=2,b=5C、a=%%d,b=%%dD、a=%d,b=%d
main()
{inta=2,b=5;
printf(“a=%%d,b=%%d\n”,a,b);}
26、若int类型占两个字节,则以下程序段的输出是(D)
A、-1,-1B、-1,32767C、-1,32768D、-1,65535
inta=-1;
printf(“%d,%u\n”,a,a);
27、以下程序段的输出是(A)
A、*496*B、*496*C、*000496*D、输出格式符不合法
intx=496;
printf(“*%-06d*\n”,x);
28、以下程序段的输出是(C0
A、|3.1415|B、|3.0|C、|3|D、|3.|
floata=3.1415;
printf(“|%6.0f|\n”,a);
29、以下程序的输出结果是(B)
A、98B、89C、66D、以上三个都不对
#include“math.h”
main()
{doublea=-3.0,b=2;
printf(“%3.0f%3.0f\n”,pow(b,fabs(a)),pow(fabs(a),b));}
30、下列运算符中优先级最高的运算符是(A)
A、!
B、%C、-=D、——
31、下列运算符中幼先级最低的运算符是(A)
A、||B、!
=C、<=D、+
32、为表示关系x≥y≥z,应使用的C语言表达式是(A)
A、(x>=y)&&(y>=z)B、(x>=y)AND(y>=z)
C、(x>=y>=z)D、(x>=y)&(y>=z)
33、设a,b和c都是int型变量,且a=3,b=4,c=5;则以下的表达式中,值为0的表达式是(D)
A、a&&bB、a<=bC、a||b+c&&b-cD、!
(a
c||1)
34、以下程序的输出结果是(C)
A、0B、1C、2D、3
main()
{inta=2,b=-1,c=2;
if(a
if(b<0)c=0;
elsec+=1;
printf(“%d\n”,c);}
35、以下程序的输出结果是(A)
A、1B、2C、3D、4
main()
{intw=4,x=3,y=2,z=1;
printf(“%d\n”,(w w: z z: x));} 36、若执行以下程序时从键盘上输入3和4,则输出结果是(B) A、14B、16C、18D、20 main() {inta,b,s; scanf(“%d%d”,&a,&b); s=a; if(a s*=s; printf(“%d\n”,s);} 37、下面的程序片段所表示的数学函数关系是(C) A、B、 C、D、 y=-1; if(x! =0)y=1; if(x>=0)y=1; elsey=0; 39、运行以下程序后,输出 A、***B、&&&& C、####&&&&D、有语法错不能通过编译 40、以下程序段的输出结果是(D) A、9B、1C、11D、10 intk,j,s; for(k=2;k<=6;k++,k++) {s=1; for(j=k;j<6;j++)s+=j;} printf(“%d\n”,s); 41、以下程序段的输出结果是(C) A、12B、15C、20D、25 inti,j,m=0; for(i=1;i<=15;i+=4) for(j=3;j<=19;j+=4)m++; printf(“%d\n”,m); 42、以下程序段的输出结果是(B) A、10B、9C、10D、9 9898 8787 76 intn=10; while(n>7) {n--; printf(“%d\n”,n);} 43、以下程序段的输出结果是(C) A、1B、30C、1-2D、死循环 intx=3; do {printf(“%3d”,x-=2);} while(! (--x)); 44、以下程序段的输出结果是(C) A、15B、14C、不确定D、0 main() {inti,sum; fof(i=1;i<6;i++)sum+=sum; printf(“%d\n”,sum);} 45、以下程序的输出结果是(B) A、741B、852C、963D、875421 main() {inty=10; for(;y>0;y--) if(y%3++0) {printf(“%d”,--y);continue;} } 46、若x是int型变量,以下程序段的输出结果是(D) A、**3B、##3C、##3D、**3##4 ##4**4**4##5**5 **5##5 for(x=3;x<6;x++) printf((x%2)? (“**%d”): (“##%d\n”),x); 47、以下程序的输出结果是(A) A、*#*#*#$B、#*#*#*$C、*#*#$D、#*#*$ main() (inti; for(i=1;i<=5;i++) {if(i%2)printf(“*”); elsecontinue; printf(“#”); } printf(“$\n”);} 48、以下叙述正确的是(D) A、do_while语句构成的循环不能用其它语句构成的循环来代替 B、do_while语句构成的循环只能用break语句退出。 C、用do_while语句构成的循环时,只有在while后的表达式为非零时结束循环 D、用do_while语句构成的循环时,只有在while后的表达式为零时结束循环 49、以下程序的输出结果是(D) A、3981B、4284C、2668D、2870 main() {intx,i; for(i=1;i<=100;i++) {x=i; if(++x%2==0) if(++x%3==0) if(++x%7==0) printf(“%d“,x);} printf(“\n”);} 50、C语言中不合法的字符常量是(B) A、’\0xff’B、’\65’C、’&’D、’\028’ 51、C语言中不合法的字符串常量是(B0 A、”\121”B、’y=’C、”\n\n”D、”ABC\x6d” 52、以下叙述中正确的是(C) A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main函数中定义 C、C语言程序总是从main函数开始执行 D、C语言程序中的main函数必须放在程序的开始部分 53、以下函数的类型是(C) A、与参数x的类型相同B、void类型C、int类型D、无法确定 fff(floatx) {printf(“%d\n”,x*x);} 54、以下函数调用语句中,含有的实参个数是(B) A、1B、2C、4D、5 func((exp1,exp2),(exp3,exp4,exp5)); 55、以下程序的输出结果是(C) A、11B、20C、21D、31 func(inta,intb) {intc; c=a+b; returnc;} main() {intx=6,y=7,z=8,r; r=func((x--,y++,x+y),z--); printf(“%d\n”,r);} 56、以下程序的输出结果是(A) A、-1B、0C、1D、2 main() {inti=2,p; p=f(i,i+1); printf(“%d\n”,p); } intf(inta,intb) {intc; c=a; if(a>b)c=1; elseif(a==b)c=0; elsec=-1; return(c);} 57、以下程序的输出结果是(D) A、0B、1C、6D、无定值 fun(inta,intb,intc) {c=a*b;} main() {intc; fun(2,3,c); printf(“%d\n”,c);} 58、若有定义: intx,,*pb;则以下正确的赋值表达式是(A) A、pb=&xB、pb=xC、*pb=&xD、*pb=*x 59、以下程序的输出结果是(B) A、因变量无定义输出不定值B、0C、-1D、1 #include“stdio.h” main() {printf(“%d\n”,NULL);} 60、以下程序的输出结果(B) A、5,2,3B、-5,-12,-7C、-5,-12,-17D、5,-2,-7 voidsub(intx,inty,int*z) {*z=y-x;} main() {inta,b,c; sub(10,5,&a);sub(7,a,&b);sub(a,b,&c); printf(“%d,%d,%d\n”,a,b,c);} 61、以下程序的输出结果是(C) A、4B、6C、8D、10 main() {intk=2,m=4,n=6; int*pk=&k,*pm=&m,*p; *(p=&n)=*pk*(*pm); printf(“%d\n”,n);} 62、已知指针p的指向如图所市示,则执行语句*p++;后*p的值是(B) A、20B、30C、21D、31 10 20 30 40 50 a[0]a[1]a[2]a[3]a[4] 63、已知指针p的指向如上图所示,则表达式*++p的值是(B) A、20B、30C、21D、31 64、以下程序的输出结果是(D) A、23B、24C、25D、26 voidprtv(int*x) {printf(“%d\n”,++*x);} main() {inta=25; prtv(&a);} 65、以下程序的输出结果是(B) A、运行出错B、100C、a的地址D、b的地址 main() {int**k,*a,b=100; a=&b;k=&a; printf(“%d\n”,**k);} 66、以下程序的输出结果是(C) A、9.0000000B、1.500000C、8.000000D、10.500000 voidsub(flatx,float*y,float*z) {*y=*y-1.0; *z=*z+x;} main() {floata=2.5,b=9.0,*pa,*pb; pa=&a;pb=&b; sub(b-a,pa,pa); printf(“%f\n”,a);} 68、若已定义: inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i; 其中0≤i≤9,则对a数组元素的引用不正确的是(D) A、a[p-a]B、*(&a[i])C、p[i]D、*(*(a+i)) 67、以下程序段给数组所有元素输入数据,应在下划线处填入的是(A) A、a+(i++)B、&a[i+1]C、a+iD、&a[++i] main() {inta[10],i=0; while(i<10)scanf(“%d”,_____); …………} 68、以下程序的输出结果是(A) A、3B、4C、1D、2 main() {inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a; printf(“%d\n”,*(p+2));} 69、以下程序的输出结果是(A) A、不确定的值B、3C、2D、1 main() {intn[2]={0},i,j,k=2; for(i=0;i for(j=0;j printf(“%d\n”,n[k]);} 70、以下程序的输出结果是(C) A、17B、18C、19D、20 main() {inta[]={2,4,6,8,10},y=1,x,*p; p=&a[1]; for(x=0;x<3;x++)y+=*(p+x); printf(“%d\n”,y);} 71、以下程序的输出结果是(A) A、6B、8C、4D、2 main() {inta[]={2,4,6,8},*p=a,i; for(i=0;i<4;i++)a[i]=*p++; printf(“%d\n”,a[2]);} 72、以下程序的输出结果是(B) A、720B、120C、24D、6 f(intb[],intn) {inti,r=1; for(i=0;i<=n;i++)r=r*b[i]; returnr;} main() {intx,a[]={2,3,4,5,6,7,8,9}; x=f(a,3); printf(“%d\n”,x);} 73、以下程序中若第一个printf语句输出的是194,则第二个printf语句的输出结果是(D) A、212B、204C、1a4D、1a6 main() {inta[]={1,2,3,4,5,6,7,8,9,0},*p; p=a; printf(“%x\n”,p); printf(“%d\n”,p+9);} 74、若有定义和语句; intc[4][5],(*cp)[5];cp=c; 则对c数组元素的引用正确的是(D) A、cp+1B、*(cp+3)C、*(cp+1)+3D、*(*cp+2) 75、若已定义; inta[4][3]={1,2,3,4,5,6,7,8,9,10,11,12},(*prt)[3]=a,*p=a[0]; 则能够正确表示数组元素a[1][2]的表达式是(D) A、*((*PRT+1)[2])B、*(*(p+5))C、(*prt+1)+2D、*(*(a+1)+2) 76、以下程序的输出结果是(C) A、1,5,9,B、1,4,7C、3,5,7,D、3,6,9, 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]);} 77、以下程序的运行结果是(A) #include“stdio.h“ main() {structdate {intyear,month,day; }today; printf(“%d\n”,sizeof(structdate)); } A、6B、8C、10D、12 78、若有以下说明和语句(D) structstudent {intage; intnum; }std,*p; p=&std; 则以下对结构体变量std中成员age的引用方式不正确的是(D) A、std.ageB、p->ageC、(*p).ageD、*p,age 79、设有以下语句 structst {intn; structst*next; }; staticstructsta[3]={5,&a[1],7,&a[2],9‘\0’},*p; p=&a[0]; 则以下表达式的值为6的是(B) A、p++->nB、p->n++C、(*p).n++D、++p->n 80、以下程序的运行结果是() #include“stdio.h” main() {union{longa; intb; charc; }m; printf(“%d\n”,sizeof(m)); } A、2B、4C、6D、8 81、C语言中最简单的数据类型包括(B) A、整型、实型、逻辑型B、整型、实型、字符型 C、整型、字符型、逻辑型D、整型、实型、逻辑型、字符型 82、若要求在if后的一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为(D) A、A<>0B、! aC、a=0D、a 83、以下程序段的输出结果是(C) intx=3; do {printf("%3d",x-=2);} while(! (--x)); A、1B、30C、1-2D、死循环 84、两次运行下面程序,如果从键盘上分别输入6和4,则输出结果是(A) A、7和5B、6和3C、7和4D、6和4 85、一下说法中正确的是(C) A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main()函数中定义 C、C语言程序总是从main()函数开始执行 D、C语言程序中的main()函数必须放在程序的开始部分 86、下列变量名中合法的是(C) A、B.C.TomB、3a6bC、_6a7bD、$ABC 87、下列说法中错误的是(B) A、一个数组只允许存储同种类型的变量 B、如果在对数组进行初始化时,给定的数据元素个数比数组元素个数少时,多余的数组元素会被自动初始化为最后一个给定元素的值 C、数组的名称其实是数组在内存中的首地址 D、当数组名作为参数被传递给某个函数时,原数组中的元素的值可能被修改 88、为判断字符串s1是否大于s2,正确的语句是(C) A、if(s1>s2)B、if(strlen(s1)>strlen(s2))C、
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 习题