C语言习题讲解_c语言习题讲解
C语言习题讲解由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c语言习题讲解”。
练习题 2015-2016(2)重修)判断
1.C 语言源程序文件通过了编译、连接之后 , 生成一个后缀为.BAK 的文件。()2.在 C 程序中, APH 和 aph 代表不同的变量。()3.C语言中数据类型只有整型、实型和字符型。()4.int i=20;switch(i/10){case 2:printf(“A”);case 1:printf(“B”);}的输出结果为A。()5.Break语句用在循环体中,可结束本层循环,continue语句用在循环体中,可结束本次循环。()6.函数strlen(“ASDFGn”)的值是7。()7.结构体类型只有一种。()
8.构成数组的各个元素可以有不同的数据类型。()9.C语言中字符串的结束符是' '。()10.数组名代表数组的首地址。()11.函数的递归调用不过是一个函数直接或间接地调用它自身。()12.通过return语句,函数可以带回一个或一个以上的返回值。()
13.Char *p=“girl”;的含义是定义字符型指针变量p,p的值是字符串“girl”。()14.若有定义:char *p(char a[10]);则p是函数名。()
15.用fopen(“file”,“r+”);打开的文件“file”可以进行修改。()
C概述,数据类型,运算符,表达式,选择结构
1.以下叙述中正确的是()。
A.程序设计的任务就是编写程序代码并上机调试 B.程序设计的任务就是确定所用数据结构 C.程序设计的任务就是确定所用算法 D.以上三种说法都不完整 2.C语言源程序的基本单位是()。A.过程 B.函数 C.子程序 D.标识符
3.C语言规定,在一个源程序中main函数的位置()。
A.必须在最开始 B.必须在最后 C.必须在预处理命令的后面 D.可以在其他函数之前或之后 4.以下叙述中正确的是()。
A.C语言系统以函数为单位编译源程序 B.main函数必须放在程序开始
C.用户定义的函数可以被一个或多个函数调用任意多次 D.在一个函数体内可以定义另外一个函数 5.C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符()A.必须为字母 B.必须为下划线 C.必须为字母或下划线 D.可以是字母,数字和下划线中任一种字符
6.下面四个选项中,均是合法转义字符的选项是()
A.''' '' 'n' B.'' ' 17' '“' C.' 18' 'f' 'xab' D.' ' '101' 'xlf' 7.下面四个选项中,均是不合法的用户标识符的选项是()
A.A P_0 do B.float la0 _A C.b-a goto int D._123 temp INT 8.已知有声明 char c='1';int x=300;float t=35000;double d=3.1234567e10;,则以下表达式求值时除()外其结果都可能是不准确的。A.x=t/c B.t=d/x C.t=d/le5f D.t=x+c
9.已知有声明”int n;float x,y;“,则执行语句”y=n=x=3.89;“后,y的值为()。A.3 B.3.0 C.3.89 D.4.0 10.已知有声明”int a=3,b=4,c=5;“,以下表达式中值为0的是()。
A.a&&b B.a=1)w=y;else if(x++&&z>1)w=z;A.0、1 B.1、1 C.2、1 D.3、2 13.寺
14.已知有声明”long x,y;“且x中整数的十进制表示有n位数字(4 A.y=x/(10*(n-1))B.y=x%(10*(n-1))C.y=x%(long)pow(10,n-1)D.y=x%(10^(n-1))15.下列程序的输出结果是()。main(){ int a=7,b=5;printf(”%dn“,b=b/a);} A.5 B.1 C.0 D.不确定值 16.假设变量a,b均为整型,表达式(a=5,b=2,a>b?a++:b++,a+b)的值是()。A.7 B.8 C.9 D.2 17.设a为int型变量,执行下列赋值语句后,a的取值分别是()。a=125.534;a=(int)125.521%4;a=5>1);输出结果是()。A.16 B.8 C.4 D.2 19.若有声明: int k,a,b;unsigned long y=5;Double x=1.23;则以下表达式中正确的是()。 A.x%(-5)B.x=y[6] C.k=(a=l,b=2,&a+&b)D.a+=a-=(b=2)*(a=3) 20.若num、a、b和c都是int型变量,则执行表达式num=(a=4,b=16,c=32)后num的值为() A.4 B.16 C.32 D.52 21.已知a、b、c为int类型变量,若有输入语句:scanf(”a=%db=%dc=%d“,&a,&b,&c);为使a值为1,b值为3,c值为2,从键盘输入数据的正确形式应当是() A.132 B.a=1b=3c=2 C.132 D.a=1b=3c=2 22.已知ch是字符型变量,则不正确的赋值语句是()A.ch=5+9; B.ch=' '; C.ch='7'+'9'; D.ch='a+b'; 23.判断char型变量c1是否为大写字母的正确表达式是() A.'A'='A')&(c1='A')&&(c1=c1)24.若希望当num的值为奇数时,表达式的值为“真”,num的值为偶数时,表达式的值为“假”。则以 2 下不能满足要求的表达式是() A.num%2==1 B.!(num%2==0)C.!(num%2)D.num%2 25.若有定义:int k=7;float a=2.5,b=4.7;则表达式a+k%3*(int)(a+b)%2/4的值是()A.2.500000 B.2.7500000 C.3.500000 D.0.000000 26.设变量y为float类型,x为int类型,则以下能实现将y中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是() A.y=(y*100+0.5)/100.0 B.x=y*100+0.5,y=x/100.0 C.y=y*100+0.5/100.0 D.y=(y/100+0.5)*100.0 27.以下正确的if语句是() A.if(n>0)printf(”%f“,n)printf(”%f“,-n); B.if(n>0){ n=n+m;printf(”%f“,n);}else printf(”%f“,-n); C.if(n>0){ n=n+m;printf(”%f“,n);};else printf(”%f“,-n); D.if(n>0){ n=n+m;printf(”%f“,n)};else printf(”%f“,-n); 28.以下程序运行的结果是()#include int main(){ int x1=3,x2=0,x3=0;if(x1=x2+x3)printf(”****“);else printf(”####“);} A.输出:**** B.输出:#### C.存在语法错误 D.无输出结果 29.语句while(!y)中的表达式!y 等价于() A.y==0 B.y!=1 C.y!=0 D.y==1 30.若有定义语句:int x=10;,则表达式 x-=x+x 的值为()。A.-20 B.-10 C.0 D.10 31.以下程序段中,与语句:k=a>b?(b>c ? 1 : 0): 0;功能相同的是()。 A.if((a>b)&&(b>c))k=l;else k=0;B.if((a>b)||(b>c))k=l;else k=0;C.if(ab)k=l;else if(b>c)k=1;else k=0;32.已知某程序如下: float p=1.5;#define p 2.5 main(){printf(”%f“,p);} 则main函数中标识符p代表的操作数是()。 A.float型变量 B.double型变量 C.float型常量 D.double型常量 33.逻辑”异或“运算可描述为”a xor b“,其中a和b为参加运算的两个操作数,运算结果为当且仅当a、b两个操作数中只有一个为真时才为真,其他情况下均为假。以下表达式中()可以正确表示逻辑”异或“运算。 A.a||b B.a&&b C.(a&&b)&&!(a||b)D.(a||b)&&!(a&&b)34.以下选项中,()是C语言关键字。A.printf B.include C.fun D.default 35.已知有声明”int a=3,b=4;“,下列表达式中合法的是()。A.a+b=7 B.a=|b| C.a=b=0 D.(a++)++ 3 36.以下选项中,不能用作c语言标识符的是()。A.print B.FOR C.&a D._00 37.已知int类型数据在内存中存储长度为2个字节,以下语句中能正确输出整数32768的是()。A.printf(”%d“,32768);B.printf(”%ld“,32768);C.printf(”%f“,32768);D.printf(”%c“,32768);38.已知有声明”int a=3,b=4,c=5;“,以下表达式中值为0的是()。A.a&&b B.a A.char a='a';B.char a='n';C.char a='aa';D.char a='x2d';40.已有预处理命令和声明如下: #define N 10 int a=2,c=1;double b=1.2;下述程序段正确的是()。 A.switch(a){case C.a--;break;Case c+1:a++;break;} B.switch(a){case N>0:a=1;break;Case 1:a=O;break;} C.switch(a){case 2: b++;break;Case '0': b=3;} D.switch(b){case 1.0: b++;break;Case 1.2: b=1;break;} 41.阅读以下程序 #include main(){int case;float printF;printf(”请输入 2 个数:“);scanf(”%d %f“, &case, &printF);printf(”%d %fn“, case, printF);} 该程序在编译时产生错误,其出错原因是()。 A.定义语句出错,case 是关键字,不能用作用户自定义标识符 B.定义语句出错,printF 不能用作用户自定义标识符 C.定义语句无错,scanf 不能作为输入函数使用 D.定义语句无错,printf 不能输出 case 的值 42.设 int x=2,y=3,z=(++x A.3,0,1 B.2,0,0 C.3,1,1 D.2,2,1 43.一个用c语言编写的程序,()是必不可少的。 A.取名为main的函数定义 B.#include C.变量声明 D.注释 44.以下单目运算符均只需一个操作数,其中要求操作数的类型只能是指针型的是()。A.& B.++ C.!D.* 45.有以下程序 #include main(){ char c1,c2;C1='A'+'8'-'4';C2='A'+'8'-'5';printf(”%c,%dn“,c1,c2);} 已知字母 A 的 ASCII 码为 65,程序运行后的输出结果是()。 A.E,68 B.D,69 C.E,D D.输出无定值 46.以下选项中,能用作用户标识符的是()。A.void B.8_8 C._0_ D.unsigned 47.有以下程序 #include main(){ int a=1, b=0;printf(”%d,“, b=a+b);printf(”%dn“, a=2*b);} 程序运行后的输出结果是()。A.0,0 B.1,0 C.3,2 D.1,2 48.设有定义:int a=l, b=2, c=3;,以下语句中执行效果与其它三个不同的是()。 A.if(a>b)c=a,a=b,b=c;B.if(a>b){c=a,a=b,b=c;} C.if(a>b)c=a;a=b;b=c;D.if(a>b){c=a;a=b;b=c;} 49.有以下程序 #include main(){ int c=0, k;for(k=1;k A.3 B.5 C.7 D.9 50.已有声明语句”unsigned char ch;“,与表达式”ch='B'“的值不相同的表达式是()。(注释:字符A的Ascii码以十进制表示为65)A.ch=0x42 B.ch=0102 C.ch='102' D.ch=066 51.已知有声明”int a=3,b=4,c;“,则执行语句”c=1/2*(a+b);“后,c的值为()。 A.0 B.3 C.3.5 D.4 52.表达式:(int)((double)9/2)-(9)%2 的值是()。A.0 B.3 C.4 D.5 53.r 54.已知有声明”int a=3,b=4,c=5;“,以下表达式中值为0的是()。A.a&&b B.a 55.若有语句 double x=17;int y;,当执行 y=(int)(x/5)%2;之后 y 的值为_______。1 56.若有定义语句:int a=5;,则表达式:a++的值是_____________。5 57.以下程序运行后的输出结果是_____________。10 #include main(){int x=20;printf(”%d“,0 } 58.若有定义:int y=7;float x=2.5,z=4.7;,则表达式x+(int)(y/3*(int)(x+z)/2)%4的值为________。5.5 59.设x、y、z均为int类型变量,请用C语言的表达式描述以下命题。 x或y中有一个小于z _________ x 60.设x、y、z均为int类型变量,请用C语言的表达式描述以下命题。 x、y和z中只有两个为负数________ x=0||y=0||x=0 61.设x、y、z均为int类型变量,请用C语言的表达式描述以下命题。 y是奇数 _________________________ y%2 y%2==1 62.设x、y、z均为int型变量,且x=3, y=-4, z=5,请写出下面每个表达式对应的结果。 (x&&y)==(x||z)_______ 1 63.27.设x、y、z均为int型变量,且x=3, y=-4, z=5,请写出下面每个表达式对应的结果。 !(x>y)+(y!=z)||(x+y)&&(y-z)______ 1 64.若a是int型变量,且a的初值为6,则计算表达式a+=a-=a*a后a的值为________-60 65.若s是int型变量,且s=6,则下面表达式s%2+(s+1)%2的值为______ 1 66.已知有变量定义:int x=4;float y=3.5;则执行 x+=y+2 之后,x的值为____ 9 C语言规定,可执行程序的开始执行点是____ 主函数 main 67.有int a=3,b=4,c=5;则以下表达式!(a+b)+c-1&&b+c/2的值是___________ 1 68.若采用十进制数的表示形式,则077为______,0111为____,0x29为____,0xab为______。 63,73,41,171 69.若x和n均是int型变量,且x和n的初值均为5,则计算表达式x+=n++后x的值为_____,n的值为_____ 10,6 70.设有说明:int a=1,b=0; 则执行以下语句后的输出结果是_______________ **0****2** switch(a){ case 1:switch(b){ case 0: printf(”**0**“);break;Case 1: printf(”**1**“);break;} Case 2: printf(”**2**“);break;} 71.当a=1, b=3, c=5, d=4 时,执行完下面一段程序后x的值是_____ 2 if(a #include main(){char a[20]=”How are you?“,b[20];scanf(”%s“,b);printf(”%s %s“,a,b);} 程序运行时从键盘输入:How are you? 6 则输出结果为________________。How are you? How 循环结构,数组,指针 73.以下对于break语句使用的正确描述是()。 A.可以出现在程序中的任何位置 B.只能出现在循环或switch结构中 C.只能出现在switch结构中 D.只能出现在循环结构中 74.已知有声明”char s[20]=“Hello”;“,在程序运行过程中,若要想使数组s中的内容修改为”Good“,则以下语句中能够实现此功能的是()。 A.s=”Good“;B.s[20]=”Good“;C.strcat(s,”Good“);D.strcpy(s,”Good“);75.有以下程序 #include main(){int m=1, n=2, *p=&m, *q=&n, *r;r=p;p=q;q=r;printf(”%d,%d,%d,%dn“,m,n,*p,*q);} 程序运行后的输出结果是()。 A.1,2,1,2 B.1,2,2,1 C.2,1,2,1 D.2,1,1,2 76.? 77.?;78.设有如下程序段,下面描述中正确的是()。 int k=10;while(k=0)k=k-1;A.循环执行一次 B.循环是无限循环 C.循环体语句一次也不执行 D.循环体语句执行一次 79.若有定义语句:int a[4][10],*p,*q[4];且 0≤i A.p=a B.q[i]=a[i] C.p=a[i] D.p=&a[2][1] 80.有以下程序 #include #include main(){char a[10]=”abcd“;printf(”%d,%dn“,strlen(a),sizeof(a));} 程序运行后的输出结果是()。A.7,4 B.4,10 C.8,8 D.10,10 81.设有程序段如下,则描述正确的是()int x=10;while(x=0)x=x-1; A.while循环执行10次 B.循环是无限循环 C.循环体语句一次也不执行 D.循环体语句只执行一次 82.设x、y均是int类型变量,且x值为100,则关于以下for循环的正确判断是____ for(y=100;x!=y;++x,y++)printf(”****n“); A.循环体只执行一次 B.是无限循环 C.循环体一次都不执行 D.for语句中存在语法错误 83.若有声明语句”int a=5,b=4,c=3,*p=&a;“,则下列()表达式语句是正确的。 A.(*p)++=c;B.printf(a%4==0?”%3dn“:”%3d“,*p);7 C.*(*p)++;D.a>20?return *p-20:return *p-1;84.若有声明”int a [5],*b=a,(*c)[3],*d[3];“,则在以下表达式中有语法错误的是()。A.a[0]=0 B.b[0]=0 C.c[0]=0 D.d[0]=0 85.以下跳转语句中,只有()可以选择不唯一的跳转目的地。A.continue;B.break;C.goto 标识符;D.return;86.以下声明中正确的是()。 A.int n=2,a[n]={10};B.int n=10,*p[2]=&n;C.int n=10,a[2]={n};D.int a[2][2]={10},(*p)[2]=a+1;87.已知有声明”int a[4][4]={{1,2,3,4},{5,6,7,8), {9,10,11,12},{13,14,15,16)};“,若需要引用值为12的数组元素,则下列选项中错误的是()。 A.*(a+2)+3 B.*(*(a+2)+3)C.*(a[2]+3)D.a[2][3] 88.已知有声明”int a=12,b=15,c;“,则执行表达式”c=(a||(b-=a))“后,变量b和c的值分别为()。A.3,1 B.15,12 C.15,1 D.3,12 89.已知有声明 int i,a[10],*p=a;,现需要将1到l0保存到元素a[0]到a[9]中,以下程序段中不能实现这一功能的是()。 A.for(i=0;i A.p=”abcd“;B.a=”abcd“;C.*p=”abcd“;D.*a=”abcd“;91.有以下程序 #include main(){int n=2,k=0;while(k++ &&n++>2);printf(”%d %dn“,k,n);} 程序运行后的输出结果是()。A.0 2 B.1 3 C.5 7 D.l 2 92.有以下程序 #include #include main(){char str[][20]={”One*World“,”One*Dream!“},*p=str[1];printf(”%d,“,strlen(p));printf(”%sn“,p);} 程序运行后的输出结果是()。 A.9,One*World B.9,One*Dream!C.10,One*Dream!D.10,One*World 93.有以下程序 #include main(){int a[]={2, 3, 5, 4}, i;for(i=0;i }break;Case 1 : a[i]=0;} for(i=0;i A.3 3 4 4 B.2 0 5 0 C.3 0 4 0 D.0 3 0 4 94.设指针变量占2个字节的内存空间,若有声明”char *p=“123”;int c;“,则执行语句”c=sizeof(p);“后,c的值为()。 A.1 B.2 C.3 D.4 95.已知有声明”int m[]={5,4,3,2,1},i=0;“,下列对m数组元素的引用中,错误是()。A.m[++i] B.m[5] C.m[2*2] D.m[m[4]] 96.有以下程序 #include main(){char s[]={”012xy“};int i, n=0;for(i=0;s[i]!=0;i++)if(s[i]>='a' &&s[i] A.不可以用赋值语句给字符数组名赋字符串 B.可以用输入语句把字符串整体输入给字符数组 C.字符数组中的内容不一定是字符串 D.字符数组只能存放字符串 98.设有定义:char *c;,以下选项中能够使字符型指针 c 正确指向一个字符串的是()。 A.char str[]=”string“;c=str;B.scanf(”%s“,c);C.c=getchar();D.c=*string”;99.已知有声明 char s[80];,若需要将键盘输入的一个不含空格的字符串保存到数组中,则下列语句中正确的是()。 A.scanf(“%s”,s);B.scanf(“%s”,s[0]);C.s=gets();D.s=getchar();100.若要对a进行++运算,则a应具有以下说明()。 A.int a[3][2];B.char *a[]={“12”,“ab”};C.int b[10],*a=b;D.char(*a)(char);101.已有声明“int s[2][3]”,以下选项中()正确地引用了数组s中的基本元素。A.s[1>2][!1] B.s[2][0] C.s[1] D.s 102.以下程序运行后的输出结果是__________。 #include main(){int a=1,b=7;Do { B=b/2;a+=b;} while(b>1);printf(“%d”,a);} 5 103.有以下程序 #include main(){int f,f1,f2,i;f1=0;f2=1;printf(“%d,%d”, f1,f2);9 for(i=3;i for(a=1,b=5,c=0;a k=1;n=263; Do{ k*=n%10;n/=10;}while(n); 106.下面程序的输出结果是_________ a=16,y=60 #include “stdio.h” main(){int a,y;a=10;y=0;Do{ a+=2;y+=a;if(y>50)break;}while(a=14);printf(“a=%d,y=%d”,a,y);} 107.下面程序的输出结果是________ 7 #include void main(){ int k=1;long sum=0;Do{ k=k*(k+1)/2;sum+=k;}while(sum%7);printf(“%d”,sum);} 函数 108.以下程序的输出结果为()。 int i;void prt(){ for(i=5;i int x: int f(int y)10 {return 标识符;} #include int w: main(){int z=2;f(z);…} 则在函数f中return语句后允许出现的标识符是()。A.x或w B.x或y C.z或w D.NULL 110.在C语言程序中,以下说法正确的是()。 A.函数的定义可以嵌套,但函数的调用不可以嵌套 B.函数的定义不可以嵌套,但函数的调用可以嵌套 C.函数的定义和函数的调用都不可以嵌套 D.函数的定义和函数的调用都可以嵌套 111.下列函数的功能是()。 fun(char *a,char *b){while((*b=*a)!=' '){a++;b++;} } A.将 a 所指字符串赋给 b 所指空间 B.使指针 b 指向 a 所指字符串 C.将 a 所指字符串和 b 所指字符串进行比较 D.检查 a 和 b 所指字符串中是否有' ' 112.设有以下函数: void fun(int n,char *s){……} 则下面对函数指针的定义和赋值均正确的是()。A.void(*pf)();pf=fun;B.void *pf();pf=fun;C.void *pf();*pf=fun;D.void(*pf)(int,char);pf=&fun; 113.以下程序的输出结果为()。 #include “stdio.h” void xy(int *x,int *y){ int *t;t=x;x=y;y=t;} int main(){ int a=7,b=8,*x=&a,*y=&b;xy(x,y);printf(“%d,%d,%d,%d”,a,b,*x,*y);} A.7,8,7,8 B.7,8,8,7 C.8,7,7,8 D.8,7,8,7 114.在定义任何一个函数时,下列选项中,()是不可缺少的。 A.函数名之前的数据类型 B.函数名之后的一对圆括号 C.形式参数声明 D.函数体内的语句 115.若有函数fun的定义为 void fun(…){static int a=1;… } 则下列叙述中不正确的是()。 A.在每次调用fun函数时,变量a的值是上次调用结束时a的值 B.在fun函数之外,可以用变量名a直接引用a的值 C.在其他函数中,可以出现声明double a=2.5;D.fun函数的形式参数不能取名为a 116.若函数调用时的实参为变量,则以下关于函数形参和实参的叙述中正确的是()。 A.实参和其对应的形参占用同一存储单元 B.形参不占用存储单元 C.同名的实参和形参占用同一存储单元 D.形参和实参占用不同的存储单元 117.以下函数调用语句中含有()个实参。 func((e1,e2),(e3,e4,e5));A.2 B.3 C.5 D.语法错误 118.有以下程序 #include void fun(int p){int d=2;p=d++;printf(“%d”,p);} main(){int a=1;fun(a);printf(“%dn”,a);} 程序运行后的输出结果是()。A.32 B.12 C.21 D.22 119.以下函数 findmax 拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能。 #define MIN-2147483647 int findmax(int x[],int n){int i,max;for(i=0;i A.定义语句 int i,max;中 max 未赋初值 B.赋值语句 max=MIN;中,不应给 max 赋 MIN 值 C.语句 if(max A.f(c,s);B.f(c[i],s[i]);C.f(*(c+i),&s[i]);D.f(c+i,s+i);121.当需要定义一个函数时,以下标识符中,()不能用作函数名。A.scanf B.for C._sum D.F2 122.有以下程序 # include int f(int n);main(){int a=3,s;s=f(a);s=s+f(a);printf(“%dn”,s);} int f(int n){static int a=1;n+=a++;return n;} 程序运行后的输出结果是()。A.7 B.8 C.9 D.10 123.有以下程序 # include # define f(x)x*x*x main(){int a=3,s,t;s=f(a+1);t=f((a+1));printf(“%d,%dn”,s,t);} 程序运行后的输出结果是()。 A.10,64 B.10,10 C.64,10 D.64,64 124.若有以下声明和定义: void fun(int c){printf(“%d”,c);} main(){void(*a)(int)=fun,*b(int),(*c)(int);/*调用fun函数语句位置*/ } void *b(int c){} 如果在main函数中需要调用fun函数,以下调用语句中错误的是()。A.fun(1);B.(*a)(1);C.b=fun;(*b)(1);D.c=a;(*c)(1);125.有以下程序 #include int a=5;void fun(int b){int a=10;a+=b;printf(“%d”,a);} main(){int c=20;fun(c);a+=c;printf(“%d”,a);} 程序运行后的输出结果是________________。3025 126.有以下程序: #include 13 fun(int x){if(x/2>0)fun(x/2);printf(“%d”, x);} main(){fun(6);} 程序运行后的输出结果是___________________。136 结构体 127.设有以下定义,值为5的枚举常量是()。 enum week{sun,mon=4,tue,wed,thu,fri,sat} w; A.tue B.sat C.fri D.thu 128.有以下程序 #include #include struct A {int a;char b[10];double c;};struct A f(struct A t);main(){struct A a={1001,“ZhangDa”,1098.0};a=f(a);printf(“%d,%s,%6.1fn”,a.a,a.b,a.c);} struct A f(struct A t){t.a=1002;strcpy(t.b,“ChangRong”);t.c=1202.0;return t;} 程序运行后的输出结果是()。 A.1001,ZhangDa,1098.0 B.1002,ZhangDa,1202.0 C.1001,ChangRong,1098.0 D.1002,ChangRong,1202.0 129.下面结构体的定义语句中,错误的是()。 A.struct ord {int x;int y;int z;};struct ord a;B.struct ord {int x;int y;int z;} struct ord a;C.struct ord {int x;int y;int z;}a;D.struct {int x;int y;int z;} a;130.下列程序段执行后的结果为()。 main(){ static int a[3][3]={1,3,5,7,9,11,13,15,17},y,x,*p=&a[2][2];for(x=0;x struct sk {int a;float b;} data[2],*p;若有p=data,则以下对data[0]中成员a的引用中错误的是()。 A.data[0]->a B.data->a C.p->a D.(*p).a 132.已有数据类型定义和变量声明如下: struct person {int num;Char name[20],sex;strrut{int cla;char prof[20];}in;}a={20,“Li ning”,'M',{5,“computer”}},*p=&a;下列语句中正确的是()。 A.printf(“%s”,a->name);B.printf(“%s”,p->in.prof);C.printf(“%s”,*p.name);D.printf(“%s”,p->in->prof);133.设有定义如下;typedef stuct{int x,y;}pOINT;typedef enum{RED,YELLOW,BLUE,GREEN}COLOR;struct {pOINT xy;COLOR c;}pixel,*p=&pixel;以下对变量pixel的赋值操作中正确的是()。 A.pixel={1,2,BLUE};B.p->xy.x=1;p->xy.y=2;p->c=BLUE; C.scanf(“%d%d%d”,p->xy.x,p->xy.y,&pixel.c);D.pixel.color=2;134.以下程序的输出结果为()。 #define ADD(x)x*x main(){ int a=4,b=6,c=7,d=ADD(a+b)*c;printf(“d=%d”,d);} A.d=70 B.d=80 C.d=140 D.d=700 135.设有以下程序段,则值为6的表达式是()。 struct st { int n;struct st *next;};static struct st a[3]={5,&a[1],7,&a[2],9,0 },*p;p=&a[0];A.p++->n B.++p->n C.p->n++ D.(*p).n++ 136.有以下程序 #include #include struct A {int a;char b[10];double c;};struct A f(struct A t);main(){struct A a={1001,“ZhangDa”,1098.0};a=f(a);printf(“%d,%s,%6.1fn”,a.a,a.b,a.c);} struct A f(struct A t){t.a=1002;strcpy(t.b,“ChangRong”);t.c=1202.0;return t;} 程序运行后的输出结果是()。 A.1001,ZhangDa,1098.0 B.1002,ZhangDa,1202.0 C.1001,ChangRong,1098.0 D.1002,ChangRong,1202.0 137.设有定义: struct person {int ID;char name[12];}p;请将 scanf(“%d”,______________);语句补充完整,使其能够为结构体变量 p 的成员 ID 正确读入数据。p.ID 138.有以下程序 #include typedef struct { int num;double s;} REC;void funl(REC x){x.num=23;x.s=88.5;} main(){REC a={16,90.0};funl(a);printf(“%d”,a.num);} 程序运行后的输出结果是____________________。16 文件 139.下列关于 C 语言文件的叙述中正确的是()。 A.文件由一系列数据依次排列组成,只能构成二进制文件 B.文件由结构序列组成,可以构成二进制文件或文本文件 C.文件由数据序列组成,可以构成二进制文件或文本文件 D.文件由字符序列组成,其类型只能是文本文件 140.在缺省情况下,标准C的编译系统中预定义的标准输出流stdout直接连接的设备是()。A.软盘 B.硬盘 C.键盘 D.显示器 141.下列叙述中,正确的是()。 A.C语言中的文件是流式文件,因此只能顺序存取文件中的数据 B.调用fopen函数时若用“r”或“r+”模式打开一个文件,该文件必须在指定存储位置或默认存储位置处存在C.当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到该文件中的第1个数据 D.无论以何种模式打开一个已存在的文件,在进行了写操作后,原有文件中的全部数据必定被覆盖 142.C语言中的文件类型只有()。 A.索引文件和文本文件两种 B.文本文件一种 C.二进制文件一种 D.ASCII码文件和二进制文件两种