中国农业大学 (C程序设计部分样题) 选择题 请在答案A、B、CD中选出一个正确的答案。 l.执行输出语句printf(%%d”,a')将输出【】 A)%97 B)%a 0)%97 D)语法出错 2.要判断字符变量c的值在数字0~至'9时返回1,否则返回0,用表达式【】 表示 一个根大根小的实数可以用料学计数法表品面四个实数表示中,天。】是错 误的 A)1.9e1.0 B)921e6 C1.39e+7 D)5.68e-4 么你6-2=1达式P沙的果为,】 A)4 D11 5.若有以下定义:char c;inti;float f:doubled:则表达式r=c+i*i-(int)(d/D中r 变量定义的类型应为【】 A)char B)int f1oat 的值是【 D)double 执行话句for(i=:i3:i):后变写 D)不定 7.表达式291&80的值是【】 A3 B0 390 n)1 8.C语言定义变量时,若无变量存储类型说明,则变量的默认存储类型是【】 A)static B)register C)auto D)unsign 9.逻辑运算符”!”的运算优先级别低于【】 A)赋值运算符B)关系运算符 C)算术运算符 D)括号运算符 10.设宏定义为#define F9(m)(n*n)/2+3,调用FQ(2+3)后的获值是【】 A8 59 C)10 D功11 1山.定义说明语句为inta02]=,2,3,纱:则a数组的行数为【】 12.getchar函数可以从班盘输入获取一个【 不确定 A)逻辑变量值 符由 13.执行下面程序,屏幕输出的值是【】 int i. printf(“%d八n”,(i=2,i++,i+2,++i)): A)3 B)4 C)5 D)6 14.在用户自定义函数中,可以通过【】语句,带出函数值。 A)赋值 B)局部变量 C)return D)输出函数 15,变量a,b,k为整型,赋值后有语句if(a>-b)k=:else k=0:可等 16.下面程序段的 行结架是,06: 9ka:D以上均不是 r S- ”12345”; rintf(“%sn”,s): A)12345 B)2345 C)345 D)3 17.若有以下定义,则数组str占用内存的字节数实际是【】 char str[]="I am a boy!" A)9 B)10C)11 D)12 路月为crsr向e,o:执行priar.:后输出的 A)abcd B)abe C)ab D)ad 19.表达式(a=6,a<2,a+1)的值是【】
1 中国农业大学 (C 程序设计部分样题) 选择题——请在答案 A、B、C、D 中选出一个正确的答案。 1.执行输出语句 printf(“%%%d”, ‘a’)将输出【 】 A) %%97 B) %%a C) %97 D)语法出错 2.要判断字符变量 c 的值在数字’0’至’9’时返回 1,否则返回 0,用表达式【 】 表示 A) ‘0’<=c<=‘9’ B) ‘0’<=c&&c<=‘9’ C) ‘0’<=c||c<= ‘9’ D)均不是 3.一个很大或很小的实数可以用科学计数法表示,下面四个实数表示中,只有【 】 是错 误的。 A)1.9e1.0 B) .921e6 C) 1.39e+7 D) 5.68e-4 4.设 a=4,b=5,c=2,d=1,则表达式 a>b?c:d>a?b:c 的结果为【 】 A)4 B)3 C) 2 D)1 5.若有以下定义:char c; int i; float f; double d;则表达式 r=c+i*i-(int)(d/f)中 r 变量定义的类型应为【 】 A) char B)int C) float D)double 6.执行语句 for(i=1;++i<3;i++);后变量 i 的值是【 】 A)3 B) 4 C)5 D)不定 7.表达式 29||1&&8&&0 的值是【 】 A)3 B)0 C)29 D)1 8.C 语言定义变量时,若无变量存储类型说明,则变量的默认存储类型是【 】 A)static B)register C)auto D)unsign 9.逻辑运算符”!”的运算优先级别低于【 】 A)赋值运算符 B)关系运算符 C)算术运算符 D)括号运算符 10.设宏定义为#define FQ(n) (n*n)/2+3 ,调用 FQ(2+3)后的获值是【 】 A) 8 B)9 C)10 D) 11 11.定义说明语句为 int a[][2]={1,2,3,4}; 则 a 数组的行数为 【 】 A)1 B)2 C)3 D) 不确定 12.getchar 函数可以从键盘输入获取一个【】 。 A)逻辑变量值 B)控制变量值 C)字符串 D)键盘字符值 13.执行下面程序,屏幕输出的值是【 】 int i; printf(“%d\n”,(i=2,i++,i+2,++i)); A)3 B)4 C)5 D)6 14.在用户自定义函数中,可以通过【 】 语句,带出函数值。 A) 赋值 B) 局部变量 C) return D)输出函数 15.变量 a, b, k 为整型,赋值后有语句 if(a>=b) k=1; else k=0;可等效于【 】 A) k=(a>b)?1:0; B) k=a>b; C) k=a>=b; D) 以上均不是 16.下面程序段的运行结果是 【 】 char *s=”12345”; s+=2; printf(“%s\n”,s); A)12345 B)2345 C)345 D)3 17.若有以下定义,则数组 str 占用内存的字节数实际是【 】 char str[]=”I am a boy!” A)9 B)10 C)11 D)12 18.定义数组为 char str[6]={‘a’,’b’,’c’,’\0’,’d’,’\0’};执行 printf(“%s”,str);后输出的 结果是【 】 A)abcd B)abc C)ab D)ad 19.表达式 (a=6,a<2,a+1)的值是【 】
A)6 B)7 C)8 D)9 20.如下程序段,其输出应为【】 intc={2,4,6}: int款: printf(the nextkis) k=c; D)均不为 21。在以下组运算符中,优先级最低的运算符是【】 A)= 2.在循环语句的循环体中执行break语句,其作用是【】 A)跳出该循环体,提前结束循环 B)继续执行break语句之后的循环体各语句 C)结束本次循环,进行下次循环 D)终止程序运行 23。C语言规定:简单变量做实参时,它和对应形参之间的数据传递方式是【】 A)地址传递 B)单向值传速 C)由实参传给形参,再由形参传回给实参 D)由用户指定传递方式 24表达式(a=4,2) 1的值是 25,如果要以只读方 开-个文米文件,空 的打开方式是【】 26、构成C语言程序的基本模块单位是【”》 A)过积 C)语句 D)命今 27.若定义如下变量和数组: inti,p;static int a[10]-{l,2,3,4,5,6,7,8,9,10}: p=a 则执行下面的语句输出结果是【】 fori=5:i9:i+)printf(“g ,*(pti)): A)5678 B)6789 C)78910 28. 63: 可: printf(%d”,(ab)&(6=2):的输出结果是【】 2 N 数ab 为 ,则函数 id的含义是【 数不再返回 30.不属于C程序设计关键字的是【】 A)case B)byte C)do D)float 3L.设x,y,z,t均为it型变量,则执行以下语句后,t的值为【】 x=y=Z=1 t=xy&&z A)不定值 )2 函数可以调用。还可先词用再定义 C)1 D)0 32C语程设计中,用 3.若用 名作为函最调递店 时 递给形参的是 34.下面程序运行时的翰出结架是个素的 )组中全部元素的值D)数组元素的个数 =5 printf("\na=%d",++a+2): A)a=6 B)8 C)a=5 D)a=8 35.如果有char a[10]:则只可以用【】对所有数组元素输入字符。 A)scanf(%s”,a: B)scanf(%s”,*a: C)scanf(%s”,a[i]): D)scanf (s" a[10]): 6.变量x、y、z均为doub1e类型且己正确赋值,以下不正确的C语言表达式是【】 A)x/yz B)x*y*Z C)x/y*5.0 D)x+y+(int)z
2 A)6 B)7 C)8 D)9 20. 如下程序段, 其输出应为【 】 int c[]={2, 4, 6}; int *k; k=c; printf("the next k is %d",*++k); A) 2 B)4 C) 6 D)均不对 21. 在以下一组运算符中,优先级最低的运算符是【 】 A)== B)= C)% D)&& 22. 在循环语句的循环体中执行 break 语句,其作用是【 】 A)跳出该循环体,提前结束循环 B)继续执行 break 语句之后的循环体各语句 C)结束本次循环,进行下次循环 D)终止程序运行 23. C 语言规定:简单变量做实参时,它和对应形参之间的数据传递方式是【 】 A)地址传递 B)单向值传递 C)由实参传给形参,再由形参传回给实参 D)由用户指定传递方式 24 表达式(a=4,2) , a+1 的值是【 】 A)4 B)2 C)6 D)0 25.如果要以只读方式打开一个文本文件,应使用的打开方式是【 】 A)rw B)wr C)r D)rb 26. 构成 C 语言程序的基本模块单位是【】 A)过程 B)函数 C)语句 D)命令 27.若定义如下变量和数组: int i,*p;static int a[10] ={1,2,3,4,5,6,7,8,9,10}; p=a; 则执行下面的语句输出结果是【 】 。 for(i=5;i<9;i++) printf(“%d”,*(p+i)); A) 5 6 7 8 B) 6 7 8 9 C) 7 8 9 10 D) 6 7 8 28. 若 a=2, b=3; 则语句:printf(“%d”,(a<b)&&(b=2));的输出结果是【 】 A)无输出 B)结果不确定 C)0 D)1 29. 已知函数 abc 的定义为 void abc(){.},则函数中 void 的含义是【】 A)执行函数 abc()后,函数没有返回值 B)执行函数 abc()后,函数不再返回 C)执行函数 abc()后,可以返回任意类型 D)以上三个答案全是错误的 30.不属于 C 程序设计关键字的是【 】 A)case B)byte C)do D)float 31. 设 x,y,z,t 均为 int 型变量,则执行以下语句后,t 的值为【 】 x=y=z=1; t=x||y&&z; A)不定值 B)2 C)1 D)0 32. C 语言程序设计中,用户定义的函数可以嵌套调用, 还可以【 】 A)宏调用 B)递归调用 C)嵌套创建 D)先调用再定义 33. 若用数组名作为函数调用的实参,则执行时传递给形参的是【 】 A)数组的首地址 B)数组第一个元素的值 C)组中全部元素的值 D)数组元素的个数 34. 下面程序运行时的输出结果是【 】 main(){int a=5; printf("\na=%d", ++a+2);} A) a=6 B) 8 C) a=5 D) a=8 35. 如果有 char a[10]; 则只可以用【 】 对所有数组元素输入字符。 A)scanf(“%s”, a); B)scanf(“%s”,*a); C)scanf(“%s”,a[i]); D)scanf(“%s”, a[10]); 36.变量 x、y、z 均为 double 类型且已正确赋值,以下不正确的 C 语言表达式是【 】 A)x/y%z B) x*y*z C) x/y*5.0 D) x+y+(int)z
37,若有定义inta[5],p=a:则对a数组元素的正确引用是【】 A)*a[5] 38.C语言中 D)*(a+5) 类型 】 为 C)无值类型 长度是否相 以使用P行针类型 】 D)if (strlen(s1)==strlen(s2)) 40.设有以下定义,则下面正确的叙述是【】 int i=10 float f=(float)i A)f所占内存长度等于i所占的内存长度 B)f所占内存长小于i所占的内存长度 C)f所占内存长度不等于i所占的内存长度D)f取决于i所占的内存长度 41.C语言中,数字0X26是一个【】进制数 B)八 C) )60 表达式【】 A)( n) 44.下面程序在屏幕输出的值是【】 int x. printf(%d小n”,(x=3*5,x+5): A)10 B)15 C)20 D)5 45.判断字符类型变量c是否为大写字母的正确表达式是【】 AA'<=c<=ZB)(c>=A)&(c<=Z) 47.在以下 "\0 组运算符中,优先级最高 C)'ab 符是【】 D- 越 48.表达式(a=23》, a+1的值是【】 A)0 p12 C)3 D)4 49.执行printf(%dn",strlen("a\n\"\x41)语句其输出结果是【】 A)8B)7C)6 D)4 50.如果定义一个整型变量ita:,使该变量字节不变,而正数值的表示范围扩大一倍的方 式用【】 A)signed B)long C)unsigned 5l,intx=l0:则表达式x+(char) A)int 0位的类型是【}at Bdoub1e 2以下不属于C语言关键字的是!】1md 5双C语言中,以下【不是正确的常量.D10 4) A)543210L B)05078C)-0x41D)12345 54.C语言中的实数可以用多种形式表示,以下四种表示中,只有【】是错误的。 A)1)23e+6 B)2)13e-4 C0.3el.2 D),1234 55.在下面选项中【】不是正确的转义字符 A B)\ 0 D)0 56.如果已定义:f1 oat aa=1234.5678:则执行printf(%6.2f%d/a”,aa,(int)(a):则输 出是【】 A)1234.561234 B)1234.571235C)1234.561235 D)1234.571234 3
3 37. 若有定义 int a[5],*p=a; 则对 a 数组元素的正确引用是【 】 A) *&a[5] B) a+2 C) *(p+2) D) *(a+5) 38. C 语言中,若对用户定义函数作”*”类型说明,则函数值的类型是【 】 A)整型 B)默认 C)无值类型 D)指针类型 39. 为了判断两个字符串 s1 和 s2 长度是否相等,可以使用【 】 A)if (strlen(s1)= strlen(s2)) B) if (s1=s2) C)if (strlen(s1,s2) D) if (strlen(s1)= = strlen(s2)) 40.设有以下定义,则下面正确的叙述是【 】 int i=10; float f=(float)i; A)f 所占内存长度等于 i 所占的内存长度 B) f 所占内存长小于 i 所占的内存长度 C)f 所占内存长度不等于 i 所占的内存长度 D) f 取决于 i 所占的内存长度 41.C 语言中,数字 0X26 是一个【 】 进制数 A)二 B)八 C)十 D)十六 42.定义说明为 int a=10; 执行语句 a*=1+2+3;后 a 的值是【 】 A) 15 B) 24 C) 33 D) 60 43.示关系 x≥y≥z,应使用 C 语言表达式【 】 A) (x>=y>=z) B)(x>=y)AND(y>=z) C) (x>=y)&&(y>=z) D)(x>=y)&(y>=z) 44.下面程序在屏幕输出的值是【 】 int x; printf(“%d\n”,(x=3*5,x+5)); A)10 B)15 C)20 D)5 45.判断字符类型变量 c 是否为大写字母的正确表达式是【 】 A)’A’<=c<=’Z’ B)(c>=’A’) & (c<=’Z’) C)(c>=’A’) && (c<=’Z’) D)(‘A’<=c) AND (‘Z’>=c) 46.C 语言中,合法的字符常量是【 】 A)'\084' B)'\x43' C)'ab' D)"\0" 47.在以下一组运算符中,优先级最高的运算符是【 】 A)<= B)= C)% D)&& 48.表达式(a=2,3) , a+1 的值是【 】 A)0 B)2 C)3 D)4 49.执行 printf("%d\n", strlen("a\n\"\x41"))语句其输出结果是【】 。 A)8 B)7 C)6 D)4 50.如果定义一个整型变量 int a;,使该变量字节不变,而正数值的表示范围扩大一倍的方 式用【 】 A)signed B)long C)unsigned D)float 51.int x=10;则表达式 x+(char)1/2.0 值的类型是【 】 A) int B) double C) float D) unsigned 52.以下不属于 C 语言关键字的是【 】 A)case B)byte C)do D)float 53.C 语言中,以下【 】 不是正确的常量。 A)543210L B)05078 C)-0x41 D)12345 54.C 语言中的实数可以用多种形式表示,以下四种表示中,只有【 】 是错误的。 A) 1)23e+6 B)2)13e-4 C)0.3e1.2 D) .1234 55.在下面选项中【 】 不是正确的转义字符 A)’\\’ B)’\’ C)’081’ D)’\0’ 56.如果已定义:float aa=1234.5678; 则执行 printf(“%6.2f%d/n”,aa,(int)(aa));则输 出是【 】 A)1234.56 1234 B)1234.57 1235 C)1234.56 1235 D)1234.57 1234
57.C语言中,char型数据在内存中是以【】形式存储的。 A)原码B)补码C)ASCII码 D)反码 58.以下运算符中优先级最低的是【】 H)&&B)& C) D)I E)?:F): 59.若x为it型变量,则执行以下语句后,x的值为【】 X6 36 B)-60 c60 D)-2 0若1x2,3.4,则条件表达式ryz的结果为【】 B)3 C)2 D)1 61.假设定义:itx=3,y=3:则复合赋值表达式x/=1+y的值为【】 A)0 B)0.75 C)6 D)以上都错 62.表达式:3>5&-11川6<3-!-1的值是【】 A)0 B勖1 C)表达式不合法D)均不对 63.对于inta=l,则表达式1<=a<=5值是【】 B1 )个 D 有中,一个更欢有有神2个行茶时锅的取值泡 10955 C13 D)15 66.若有以下类型说明语句,则表达式*x+2-y的结果为【】类型。 char w:int x:float y:double z; A)float B)char C)int D)double 67.有以下程序,程序运行后的输出结果是【】 main( int i i<3:i++) printf("d",i): asa 2. f("%d i) default:printf(di):}} A0022111 B)021021C)000122 D)012 68.若x和y代表整型数,以下表达式中不能正确表示数学关系x-y<10的是【】 A)abs (x-y)<I( Bx-y>-10k&X-y<10 C)(x-y)(-10I(y-x)>10D)(x-y)*(x-y)<100 69.有以下程序,程序运行后的输出结果是【】 nta=3,b=4,c=5,d-2: if(a>b) if(b>c) printf("%d",d+++1): else printf("%d",++d +1) printf("%d\n",d); A2 B)3 C)43 D)44 4
4 57.C 语言中,char 型数据在内存中是以【 】 形式存储的。 A)原码 B)补码 C)ASCII 码 D)反码 58.以下运算符中优先级最低的是【 】 A)&& B)& C)|= D)|| E)?: F)!= 59.若 x 为 int 型变量,则执行以下语句后,x 的值为【 】 x=6; x+=x-=x*x; A)36 B)-60 C)60 D)-24 60.若 w=1;x=2,y=3,z=4,则条件表达式 w<x?w:y<z?y:z 的结果为【 】 A)4 B)3 C)2 D)1 61.假设定义:int x = 3, y = 3; 则复合赋值表达式 x /= 1+y 的值为【 】 A)0 B)0.75 C)6 D) 以上都错 62.表达式: 3>5 && -1 || 6 < 3 - !-1 的值是【 】 A) 0 B) 1 C) 表达式不合法 D) 均不对 63.对于 int a=1,则表达式 1<=a<=5 值是【 】 A) 0 B) 1 C) 不定 D) 表达式语法有错 64.设 C 语言中,一个 int 型数据在内存中占 2 个字节,则 unsigned int 型数据的取值范围 为【 】 A)0~255 B)0~32767 C)0~65535 D)0~2147483647 65.若有说明语句 int i,j;且 i 值为 6,则执行语句 j=(++i)+(i++)后 j 的值是【 】 A)4 B)14 C)13 D)15 66.若有以下类型说明语句,则表达式 w*x+z-y 的结果为【 】 类型。 char w; int x; float y; double z; A)float B)char C)int D)double 67.有以下程序,程序运行后的输出结果是【 】 main() { int i; for(i=0;i<3;i++) switch(i) {case 0:printf("%d",i); case 2:printf("%d",i); default:printf("%d",i); }} A)022111 B)021021 C)000122 D)012 68.若 x 和 y 代表整型数,以下表达式中不能正确表示数学关系|x-y|<10 的是【 】 A)abs(x-y)<10 B)x-y>-10&& x-y<10 C)(x-y)<-10||!(y-x)>10 D)(x-y)*(x-y)<100 69.有以下程序,程序运行后的输出结果是【 】 main() { int a=3,b=4,c=5,d=2; if(a>b) if(b>c) printf("%d",d++ +1); else printf("%d",++d +1); printf("%d\n",d); } A)2 B)3 C)43 D)44
70.下列语句中,功能与其他语句不同的是【】 A)if(a)printf(%d\n",x);else printf("%d\n",y) B)if(a==0)printf("%d\n",y);else printf("d\n",x) 71.有以下程序,程序运行后的输出结果是【】 intx[0=1,3,5,7,2,4,6,0l,i,j,tp for(i=1:i<8:i++) 【for(j0:j8-i:jt+) if(x[j]>x[j+1]) tmp=x[j]:x[j]=x[j+1]:x[j+1]=tmp: A)75310246B)01234567 C)76310462D)13570246 72.以下程序段中与语句k=a>b?(b>c?1:0):0:功能等价的是【】 A)if((a)b)&&b)c))k=1: B)if((a>b)(b>c))k=1;else k=0; C)if(a<=b)k=0; D)if(a>b)k=1; 73.有以下程序,运行时从键盘输入:01<回车>,程序执行后的输出结果是【】 {char k:int I: for(i=1:i<3:i++) {k=getchar(; switch(k) {case‘o':printf(“another\n"): case'1':printf(“number\n"):)} A)another B)another number C)another number number D)another another number number 74。有以下程序,程序的执行结果是【】 n(cha ifo r x char y) return y: main() 9 ,b=’8,c=’7” i(,fun(fun(,b)fu(b ) int a
5 70.下列语句中,功能与其他语句不同的是 【 】 A) if(a) printf("%d\n",x); else printf("%d\n",y); B) if(a==0) printf("%d\n",y); else printf("%d\n",x); C) if (a!=0) printf("%d\n",x); else printf("%d\n",y); D) if(a==0) printf("%d\n",x); else printf("%d\n",y); 71.有以下程序,程序运行后的输出结果是【 】 main() { int x[]={1,3,5,7,2,4,6,0},i,j,tmp; for(i=1;i<8;i++) { for (j=0;j<8-i;j++) if(x[j]>x[j+1]) { tmp=x[j];x[j]=x[j+1];x[j+1]=tmp; } } for (i=0;i<8;i++) printf("%d",x[i]); printf("\n"); } A)75310246 B)01234567 C)76310462 D)13570246 72. 以下程序段中与语句 k=a>b?(b>c?1:0):0;功能等价的是 【】 A) if((a>b) &&(b>c) ) k=1; B) if((a>b) ||(b>c) ) k=1;else k=0; C) if(a<=b) k=0; D) if(a>b) k=1; else if(b<=c) k=1; else if(b>c) k=1; else k=0; 73. 有以下程序,运行时从键盘输入:01<回车>,程序执行后的输出结果是【 】 main( ) { char k; int I; for(i=1;i<3;i++) { k=getchar(); switch(k) { case ‘0’: printf(“another\n”); case ‘1’: printf(“number\n”); } }} A) another B) another number C) another number number D) another another number number 74. 有以下程序,程序的执行结果是【 】 char fun(char x , char y) { if(x) return y; } main( ) { int a=’9’,b=’8’,c=’7’; printf(“%c\n”,fun(fun(a,b) ,fun(b,c) )); }