C语言习题讲解_c语言习题讲解

2020-02-26 其他范文 下载本文

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码文件和二进制文件两种

《C语言习题讲解.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
C语言习题讲解
点击下载文档
相关专题 c语言习题讲解 习题 语言 c语言习题讲解 习题 语言
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文