大学C语言考试题库(答案)

上传人:灯火****19 文档编号:31945063 上传时间:2021-10-13 格式:DOCX 页数:56 大小:83.02KB
收藏 版权申诉 举报 下载
大学C语言考试题库(答案)_第1页
第1页 / 共56页
大学C语言考试题库(答案)_第2页
第2页 / 共56页
大学C语言考试题库(答案)_第3页
第3页 / 共56页
资源描述:

《大学C语言考试题库(答案)》由会员分享,可在线阅读,更多相关《大学C语言考试题库(答案)(56页珍藏版)》请在装配图网上搜索。

1、单项选择题号:1482执行以下程序段后,输出结果和a的值是()。int a=10; printf(%d,a+);A、 11 和 10B、 11 和 11C 10 和 11D、10 和 10答案:C题号:2100已知字符A的ASCII代码值是65,字符变量c1的值是A,c2的值是D.执行语句printf(%d,%d,c1,c2-2)后,输出结果是A、65,66B、A,BC 65,68D、A,68答案:A题号:5055相同结构体类型的变量之间,可以()。A、比较大小B、地址相同C赋值D、相加答案:C题号:3217int a10;合法的数组元素的最小下标值为()。A、1B、0C 10D、9答案:B题

2、号:45能正确表示逻辑关系:a10或a00 的C语言表达式是A、a=0 | a=10 or a=10 & a=10 | a=0答案:D题号:157main()int x=1,a=0,b=0;switch (x) case 0: b+;case 1: a+;case 2: a+;b+;printf(a=%d,b=%d,a,b);该程序的输出结果是()A、2,2B、2,1C、1,1D、1,0答案:B题号:4784设变量a是整型,f是实型,i是双精度型,则表达式10+a+i*f值的数据类型为()oA、不确定B、doubleC、intD、float答案:B题号:1647以下程序中,while循环的循环

3、次数是main()int i=0;while(i10)if(ib)=c的值为真。答案:正确题号:66若有 # define S(a,b) a*b 语句 area=S(3,2); area的值为 6。答案:正确题号:758若有宏定义:#define S(a,b) t=a;a=b;b=t由于变量t没定义,所以此宏定义是错误的。答案:错误题号:2158#define和printf都不是C语句。答案:正确题号:5102关系运算符 100) printf( %dn,a 100);elseprintf( %dn,a = 100);答案:空1:1题号:3255表达式(int) ( (double) (5/2

4、) +2.5)的值是答案:空1:4题号:2472阅读下面程序,程序执行后的输出结果为 #include stdio.h main () char a,b;for (a= 0 ,b= 9;ab;a+,b-) printf (%c%c,a,b ;printf (n);答案:空1:0918273645题号:937以下程序段的输出结果是 int i = 0, sum = 1;do sum += i+; while( i y)if (xz) printf (%d”,X);else printf (%d, ; printf (%dn,z);)答案:空1:3程序设计题号:2660/*【程序设计】功能:计算出

5、k以内最大的10个能被13或17整除的自然数之 和。(k3000)。*/#include #includeconio.h void bky();int fun(int k)/*Begin*/*End*/main()int m;printf(Enter m:);scanf(%d, &m);printf(nThe result is %dn, fun(m);bky();void bky()FILE *IN,*OUT;int s ;int t;int o;IN=fopen(in.dat,r);if(IN=NULL)printf(Read FILE Error);OUT=fopen(out.dat,w

6、);if(OUT=NULL)printf(Write FILE Error);for(s=1;s=2)&(b10)if(k%13=0)|(k%17=0) a=a+k;b+; k-; return a;题号:5854C语言中不可以嵌套的是()A、选择语句B、循环语句C、函数调用D、函数定义答案:D题号:1957C语言中,逻辑“真”等价于A、非零的整数B、大于零的整数C、非零的数D、大于零的数答案:C题号:3786用户定义的函数不可以调用的函数是()。A、本文件外的B、main函数C、本函数下面定义的D、非整型返回值的答案:B题号:1764以下叙述中正确的是()。A、C程序中注释部分可以出现在程序

7、中任意合适的地方B、分号是C语句之间的分隔符,不是语句的一部分C、花括号f和“只能作为函数体的定界符D、构成C程序的基本单位是函数,所有函数名都可以由用户命名 答案:A题号:299下面四个选项中,均是不合法的浮点数的选项是()oA、-e3 .2341e3B、160. 0.12 e3C、123 2e4.2 .e5D、-.18 123e40.0答案:C题号:6131假定所有变量均已正确定义,下列程序段运行后x的值是()。k1=1;k2=2;k3=3;x=15;if(!k1)x-;else if(k2) x=4;else x=3;A、15B、14C、3D、4答案:D题号:3208若变量已正确定义,以

8、下程序段的输出结果是 x=5.16894;printf( %fn,(int)(x*1000+0.5)/(float)1000);A、5.17000B、输出格式说明与输出项不匹配,输出无定值C、5.168000D、5.169000答案:D题号:5043以下选项中合法的实型常数是()oA、5E2.0B、1.3EC、E-3D、.2E0答案:D题号:5608有以下程序main() int i;for(i=0; ib)=c的值为真。答案:正确题号:2316while和do while循环不论什么条件下它们的结果都是相同的答案:错误题号:2989char c=Very Good;是一个合法的为字符串数组赋

9、值的语句答案:正确 题号:5034语句scanf(%7.2f,&a)是一个合法的scanf函数。答案:错误题号:2067如果想使一个数组中全部元素的值为0,可以写成int a10=0*10;答案:错误题号:5263x*=y+8 等价于 x=x*(y+8)。答案:正确题号:3862如果函数值的类型和return语句中表达式的值不一致,则以 函数类型为准。答案:正确题号:3558整数-32100可以赋值给int型和long int型变量。答案:正确填空题号:551请写出以下程序的输出结果 main() int a = 100;if( a 100) printf( %dn”, a 100);else

10、printf( %dn,a = 100);答案:空1:1题号:1575对以下数学式,写出三个等价的C语言表达式是ab?c答案:空1:a/c/b【或】a/(b*c)【或】a/b/c空2:a/c/b【或】a/b/c 【或】a/(b*c)空3:a/b/c【或】a/c/b 【或】a/(b*c)题号:1076表达式3.5 + 1 / 2的计算结果是答案:空1:3.5题号:2758和变量的值若x为double型变量,请写出运算x = 3.2, +x后表达式的值答案:空1:4.2空2:4.2题号:582以下程序的执行结果是main ()int k=8;switch (k)case 9: k+=1;case

11、10: k+=1;case 11: k+=1; break;default: k+=1;printf (%dn,k);答案:空1:9题号:2868若要通过以下语句给a、b、c、d分别输入字符A、B、C、D,给w、x、y、z分别输10、20、30、40,正确的输入形式是 请用代表Enter键。scanf( %d%c%d%c%d%c%d&wc &a, &x,&b, &y, &c, &z, &d);答案:空1:10A20B30C40D题号:4063以下程序段的输出结果是 L double a = 513.789215;printf( a = %8.6f, a = %8.2f, a = %14.8f,

12、 a = %14.8lfn a, a, a, a);答案:空1:a = 513.789215空2:a =513.79空3:a =513.78921500空4:a =513.78921500题号:5076以下程序的输出结果是 main () int a=0;a+= (a=8);printf (%dn,a) ; 答案:空1:16题号:5410以下程序的执行结果是main()(int a, b, *p = &a, *q = &b;a = 10;b = 20;*p = b;*q = a;printf( a = %d, b = %dn,a, b);)答案:空1:a = 20, b = 20题号:6975

13、以下程序的输出结果是 main() int x = 2;while ( x-);printf( %dn”, x);)答案:空1:-1程序设计题号:58/*【程序设计】功能:将字符串中的小写字母转换为对应的大写字母, 其它字符不变。*/ #include string.h#include void bky();void change(char str口)/*Begin*/*End*/main()void change();char str40;gets(str);change(str);puts(str);bky(); void bky() FILE *IN,*OUT;char i200;IN=

14、fopen(in.dat,r);if(IN=NULL)printf(Read FILE Error);OUT=fopen(out.dat,w);if(OUT=NULL)printf(Write FILE Error);fscanf(IN,%s,i);change(i);fprintf(OUT,%sn,i);fclose(IN); fclose(OUT);示例代码:int i;for(i=0;stri!=0;i+) if(stri=a & stri=0 | a=10 or a=10 & a=10 | a=0答案:D题号:53若已定义x为int类型变量,下列语句中说明指针变量p的正确语句是()A、

15、int *p=&x;B、int p=&x;C、*p=*x;D、int *p=x;答案:A题号:2244字符串指针变量中存入的是A、第一个字符B、字符串C、字符串的首地址D、字符串变量答案:C题号:3722下列字符数组长度为5的是A、char c10= h,a,b,c,d;B、char b= h, a, b, c, d, 0;C、char a=h, a, b, c, d;D、char d6= h, a, b, c, 0;答案:C题号:2703从键盘上输入某字符串时,不可使用的函数是()A、getchar()B、scanf()C fread()D、gets()答案:A题号:3402以下对整型数组a

16、的正确说明是:A、int n = 10, an;B、 int n; scanf fcn); int a.nC、 ffdefins SIZE 10+int a SIZE;.D、int a(10);答案:C题号:130若char a10;已正确定义,以下语句中不能从键盘上给a数组的所有元素输入值的语句是()。A、scanf(%s,a);B、for(i=0;i c) b = a; a = c; c = b;答案:空1:3空2:2空3:2题号:3925阅读下面程序,则执行后程序的结果为 #include stdio.h main () int a=0,b=0;while (a15) a+;while

17、(b+15 ); printf (%d,%dn,a,b);答案:空1:15, 16题号:4473有以下程序段:s = 1.0;for(k = 1; k = n; k+)s = s + 1.0 / (k * (k + 1);printf( %fn,s);请填空,使下面的程序段的功能完全与之等同。s = 0.0;_;k = 0; do s += d;_;d = 1.0 / (k * (k + 1);while();printf( %fn”, s);答案:空1:d = 1.0空2:k+空3: k = n题号:6975以下程序的输出结果是 main() int x = 2;while ( x-); p

18、rintf( %dn”, x);答案:空1:-1题号:4423下列程序的功能是输入一个整数,判断其是否是素数,若为素数输出 1,否则输出0.请填空。main () int i, x, y=1;scanf (%d”, &x ;for (i=2; i=; i+)if y=0; break;printf (%dn, y);答案:空1:x / 2空2:【或】x % i = 0!(x % i)程序设计题号:788/*【程序设计】题目:用while语句求1100的累计和*/void bky();int fun(int n)/*Begin*/*End*/void main()int sum = 0;sum=

19、fun(100);printf (sum = %dn, sum);bky();void bky()FILE *IN,*OUT;int i;int iIN,iOUT;IN=fopen(in.dat,r);if(IN=NULL)printf(Please Verify The Currernt Dir.it May Be Changed);OUT=fopen(out.dat,w);if(OUT=NULL)printf(Please Verify The Current Dir. it May Be Changed);for(i=0;i5;i+)fscanf(IN,%d,&iIN);iOUT=fun

20、(iIN);fprintf(OUT,%dn,iOUT);fclose(IN);fclose(OUT);示例代码:int i=1,sum=0;while(ic)b=a;a=c;c=b;贝Uc的值为 ()。A、3B、2C、不一定D、1答案:B题号:961C语言中while和do-while 循环的主要区别是()。A、while的循环控制条件比do-while的循环控制条件更严格B、do-while的循环体至少无条件执行一次C、do-while的循环体不能是复合语句D、do-while允许从外部转到循环体内答案:B判断题号:3927两个字符串中的字符个数相同时才能进行字符串大小的比较答案:错误题号:

21、51247&3+12的值是15。答案:错误题号:3721语句 printf(%f%,1.0/3B出为 0.333333。答案:错误题号:3862如果函数值的类型和return语句中表达式的值不一致,则以 函数类型为准。答案:正确题号:6755若i =3,则 printf(%d,-i+);输出的值为-4。答案:错误题号:4579通过return语句,函数可以带回一个或一个以上的返回值。答案:错误题号:2440int i,*p=&i;是正确的C说明。答案:正确题号:4678a=(b=4)+(c=6)是一个合法的赋值表达式。答案:正确题号:6288十进制数15的二进制数是1111.答案:正确题号:4

22、64若a=3,b=2,c=1则关系表达式(ab)=c的值为真。答案:正确填空题号:2713以下程序段的输出结果是 printf( %dn”, strlen( sn0160end );答案:空1:3题号:2758若x为double型变量,请写出运算x = 3.2, +x后表达式的值 和变量的值答案:空1:4.2空2:4.2题号:3121若有定义:int a=8 , b=5 , c执行语句c=a/b+0.4后,c的值为 答案:空1: 1题号:4474当计算机用两个字节存放一个整数时,其中能存放的最大十进制整数是 L最小 十进制整数是它它们的二进制形式是 答案:空1:65535空2:-32768空3

23、:1111 1111 1111 1111,1000 0000 0000 0000题号:4683若从键盘输入58,则以下程序输出的结果是 main () int a;scanf%d,&a);if (a50) printf (%d,a ;if (a40) printf (%d,a ;if (a30) printf (%d,a ; 答案:空1:585858题号:1262请写出与以下表达式等价的表达式是A) BA)! (x0)B)! 0答案:空1:x 2题号:2211在C语言程序中,用关键字 定义基本整型变量,用关键字 定义单精度实型变量,用关键字 定义双精度实型变量。答案:空1:int空2:floa

24、t空3:double程序设计题号:4003/*【程序设计】功能:求一个四位数的各位数字的立方和*/#include void VV();int fun(int n) /* Begin */* End */ main()int k;k=fun(1234);printf(k=%dn,k);VV(); void VV()FILE *IN,*OUT;int iIN,iOUT,i;IN=fopen(22.IN,r);if(IN=NULL)printf(Please Verify The Currernt Dir.it May Be Changed);OUT=fopen(22.out,w);if(OUT=

25、NULL)printf(Please Verify The Current Dir. it May Be Changed);for(i=0;i0)d=n%10;s+=d*d*d;n/=10;return s;题号:6991以下程序的执行结果是main() int w = 1, x = 2, y = 3, z = 4; w =( w x ) ? x : w;w =( w y ) ? y : w;w =( w z ) ? z : w;printf( %d , w );A、2B、4C、3D、1答案:B题号:5467若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是()A、n=*

26、q;B、p=q;C、p=n;D、*p=*q;答案:C题号:5820以下程序的输出结果是void prtv(int *x) printf( %dn,+*x);main() int a = 25;prtv(&a);A、24B、26C、23D、25答案:B题号:6988以下程序的输出结果是main() int a = 2, b =5;printf( a=%d,b=%d”na, b);A、a=%2,b=%5B、a=%d,b=%dC、a=%d,b=%dD、a=2,b=5答案C题号:6976语句 printf(abrehiyboun); 的输出结果是(说明:b是退格符)()。A、abrehiybouB、r

27、ehiyouC、abrehiybouD、abrehiybou答案:B题号:166以下关于运算符优先顺序的描述中正确的是()。A、关系运算符 算术运算符 赋值运算符 逻辑运算符B、赋值运算符 逻辑运算符 关系运算符 算术运算符C、算术运算符 关系运算符 赋值运算符 逻辑运算符D、逻辑运算符 关系运算符 算术运算符 赋值运算符答案:B题号:333下列语句的结果是()。main() int j;j=3;printf(%d,+j);printf(%d”,j+);A、3,4B、4,4C、4,3D、3,3答案:B题号:457设a和b均为double型变量,且a=5.5、b=2.5 ,则表达式(int)a+

28、b/b的值是A、6.000000B、5.500000C、6D、6.500000答案:A题号:523若有定义:int a=7;float x=2.5,y=4.7;则表达式 x+a%3*(int)(x+y)%2/4勺值是()。A、3.500000B、0.000000C、2.750000D、2.500000答案:D题号:855若有以下程序段:int a=3,b=4; a=aAb;b=bAa;a=aAb;则执行以上 语句后,a和b的值分别是()。A、a=4,b=4B、a=3,b=3C、a=3,b=4D、a=4,b=3答案:D判断题号:1325若有说明int c;则while(c=getchar();是

29、正确的C语句。答案:正确题号:478C语言中这算符的运算对象必须是整型.答案:正确题号:2998c程序总是从程序的第一条语句开始执行.答案:错误题号:3246假设有 int a10, *pMp=&a0与p=a 等价答案:正确题号:2158#define和printf都不是C语句。答案:正确题号:1498C语言本身不提供输入输出语句,输入和输出操作是由函数来 实现的。答案:正确题号:6288十进制数15的二进制数是1111.答案:正确题号:5263x*=y+8 等价于 x=x*(y+8)。答案:正确题号:2691若有int i=10,j=2;则执行完i*=j+8;后i的值为28。答案:错误题号:

30、5102关系运算符 =与=的优先级相同。答案:错误填空题号:937以下程序段的输出结果是 int i = 0, sum = 1; do sum += i+; while( i 5); printf( %dn,sum);答案:空1:11题号:1076表达式3.5 + 1 / 2的计算结果是答案:空1:3.5题号:1797以下程序段,要求通过scant句给变量赋值,然后输出变量的值。写出运行时给k输入100,给a输入25.81,给x输入1.89234时的三种可能的输入形式 int k; flaot a; double x;scanf( %d%f%lf &k, &a, &x);printf( k =

31、 %d, a = %f, x = %fn, k, a, x);答案:空1:100 25.81 1.8923空2:100 25.81 1.8923空3:100 25.81 1.8923题号:2472阅读下面程序,程序执行后的输出结果为 #include stdio.h main () char a,b;for (a= 0 ,b= 9;ab;a+,b-) printf (%c%c,a,b ;printf (n);答案:空1:0918273645题号:2797以下程序的输出结果是 unsigned fun6(unsigned num) unsigned k = 1;do k *= num % 10;

32、num /= 10; while( num);return k;main() unsigned n = 26;printf( %dn,fun6(n);答案:空1:12题号:4423下列程序的功能是输入一个整数,判断其是否是素数,若为素数输出 1,否则输出 0.请填空。main () int i, x, y=1;scanf (%d”, &X ;for (i=2; ic2&b! =5|! (1/2)中,a、b、c的定义和赋值为Int a=3 , b=4 , c=2;则表达式的值为答案:空1:1程序设计题号:1124/*请编写一个函数fun,它的功能是:找出一维整型数组元素中最大的值和它所在的下标,

33、最大的值和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在 元素的下标。注意:部分源程序存在文件prog.c中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入 你编写的若干语句。*/#include #include #include void fun(int a口, int n , int *max, int *d ) /*Begin*/*End*/void NONO ()/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/FILE *fp, *wf ;in

34、t i, x20, max , index, n = 10, j ;fp = fopen(bc06.in,r);if(fp = NULL) printf(数据文件bc06.in不存在!);return ;wf = fopen(bc06.out,w);for(i = 0 ; i 10 ; i+) for(j = 0 ; j n ; j+) fscanf(fp, %d, &xj);fun( x, n , &max, &index);fprintf(wf, Max=%d,Index=%dn, max, index);fclose(fp);fclose(wf);main() int i, x20, m

35、ax , index, n = 10;srand(time(0);for (i=0;i n;i+) xi = rand()%50; printf(%4d, xi) ; printf(n);fun( x, n , &max, &index);printf(Max =%5d , Index =%4dn,max, index );NONO();示例代码:int i,base,subscript;base=a0; /*假定第一个元素的值最大*/subscript=0; subscript用于存放数组下标*/for(i=1;ibase) /*将数组中的其他元素与变量base作比较,如果大于它则交换 两者

36、的值*/subscript=i;base=ai;*max=base;/*将最大值元素的值赋给*max*/*d=subscript; /*将最大值元素的下标赋给*d*/题号:5537有定义:char*p1,*p2;则下列表达式中正确合理的是A、p1/=5B、 p1+=5C p1=&p2D、 p1*=p2答案:C题号:5257若有定义:int *p3;,则以下叙述中正确的是()。A、定义了一个名为*p的整型数组,该数组含有三个int类型元素B、定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素 C、定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针

37、D、定义了一个基类型为int的指针变量p,该变量具有三个指针 答案:C题号:6968C语言中,定义结构体的保留字是()。A、structB、unionC、enumD、typedef答案:A题号:1468设char *s=ta017bc;则指针变量s指向的字符串所占的字节数是()。A、7B、6C、9D、5答案:B题号:5300以下程序的输出结果是main() int a口 = 1,2, 3, 4, i, x = 0;for(i = 0; i 4; i+) sub(a, &x); printf( %d , x);pritnf( h);sub(int *s, int *y) static int t = 3;*y = st; t-;A、 4 44 4B、0 0 0 0C、 1 2 3 4D、4 32 1答案:D题号:1700以下叙述正确的是:A、用do-while构成循环时,只有在while后的表达式为非零时结束循环B、do-while语句构成的循环不能用其它语句构成的循环来代替。C、用do-while构成循环时,只有在while后的表达式为零时结束循环D、do-while语句构成的循环只能用break语句退出。答案:C题号:2823

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!