




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言期末练习题各位老师:这些题来自其他大学非计算机专业的考试试卷,期末考试试题完全出自此套练习题,为了防止学生做成纸条作弊,请提醒学生,期末试题可能要改变某些程序的数据。长江大学试卷 院(系、部) 专业 班级 姓名 学号 .密封.线.一、选择题1 _是C语言合法的常量。 (A).45 (B)078 (C)25.6e3.4 (D)xy2 一个程序的执行是从 。 (A)本程序的main函数开始,到main函数结束 (B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结 束。 (C)本程序的main函数开始,到本程序文件的最后一个函数结束。 (D)本程序文件的第一个函数开始,到main函数结束。3 以下叙述正确的是 。 (A)在C程序中,main函数必须位于程序的最前面。 (B)C程序每行中只能写一条语句。 (C)C语言本是没有输入输出语句。 (D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误。4 以下叙述不正确的是 。 (A)逗号运算符的运算级最低。 (B)ABC和abc是两个不同的变量。 (C)若a和b类型相同,在执行a=b后,b的自身值不变。 (D)a和“a”是完全等价的常量。5 int x=3,y=2;则表达式x+=x*=y+8的值为 。 (A)28 (B)30 (C)60 (D)176 设x=2.7,a=8,y=4.9,算术表达式x+a%3*(int)(x+y)%5/3的值为 。 (A)2.7 (B)3.7 (C)4.7 (D)4.037 执行下面两个语句后,输出的结果为_。char c1=98;printf(“%d %c”,c1,c1-32); (A)97 66 (B)98 b (C)b 66 (D)98 B8 执行下面语句后的结果为 。y=10;x=y+; (A)x=10,y=10 (B)x=11,y=11 (C)x=10,y=11 (D)x=11,y=109 Char w;int x;float y;double z;则表达式w*x+z-y值的数据类型是 。 (A)double (B)char (C)int (D)float10 C语言中要求操作数必须是整数的运算符是 。 (A)/ (B)% (C)!= (D)=11 用scanf(“%d,%d”,&a,&b)输入数据时,下面输入法中正确的是 。 (A)123,4 (B)123 4 (C)123;4 (D)12 以下关于运算符优先顺序的描述中正确的是_ (A)关系运算符算术运算符赋值运算符逻辑与运算符 (B)逻辑与运算符关系运算符算术运算符赋值运算符 (C)赋值运算符逻辑与运算符关系运算符算术运算符 (D)算术运算符关系运算符赋值运算符逻辑与运算符13 下列程序段中,功能与其它程序段不同的是 。 (A)for(i=1,p=1;i=5;i+) p*=i; (B)for(i=1;i=5;) p=1;p*=i;i+; (C)i=1;p=1;while(i=5) p*=i;i+; (D)i=1;p=1;do p*=i;i+; while(i=5);14 C语言规定else总是与 配对。 (A)缩进位置相同的if (B)同一行上的if (C)其之前最近的if (D)其之后最近的if15 以下程序的运行结果为_。main() int n; for( n1;n10;n+) if( n%3=0) continue; printf(“%d”,n); (A)12457810 (B)369 (C)12 (D)1234567891016 设x和y均为int型变量,则语句x+=y;y=xy;x=y;的功能是 。 (A)把x和y按从大到小排列 (B)把x和y按从小到大排列 (C)无确定结果 (D)交换x和y中的值17 变量的指针,其含义是指该变量的 _ (A)值 (B)地址 (C)名 (D)一个标志18 以下函数调用语句中含有 个实参。 func(e1,e2),(e3,e4,e5);(A)2 (B)3 (C)5 (D)语法错误19 以下正确的描述是_(A)continue语句的作用是结束整个循环的执行(B)只能在循环体内和switch语句体内使用break语句(C)在循环体内使用break语句或continue语句的作用相同(D)goto语句只能用于退出多层循环20 以下程序运行的结果是 。 main()int a=2,b=3,c=2; if(ab) if(ac) c-; else c+=1; printf(“%dn”,c); (A)0 (B)1 (C)2 (D)321 int a4=2,3,4,I;i=a0*a1+a2*a3;i的值为 。 (A)2 (B)4 (C)6 (D)1022 以下正确的函数定义形式是 。 (A)double fun(int x,int y); (B)double fun(int x;int y) (C)double fun(int x,int y) (D)double fun(int x,y)23 C语言允许函数值类型缺省定义,此时该函数值隐含的类型是 。 (A)float型 (B)int型 (C)long型 (D)double型24 若有定义int a4=1,2,3;请问aaa0的值是 。 (A)1 (B)2 (C)3 (D)425 以下正确的描述是_ (A)函数的定义可以嵌套,函数的调用不可以嵌套 (B)函数的定义不可以嵌套,函数的调用可以嵌套 (C)函数的定义和函数的调用均不可以嵌套 (D)函数的定义和函数的调用均可以嵌套26 以下不正确的说法是_ (A)在函数内的复合语句中定义的变量在本函数范围内有效 (B)在不同函数中可以使用相同名字的变量 (C)形参是局部变量 (D)函数调用结束后,静态局部变量的值仍然保留。27 已有定义:int x=3,y=4,z=5;则表达式!(x+y)+z-1&y+z/2的值是 。 (A)6 (B)0 (C)2 (D)128 main()int n4=1,2,3,4,k; for(k=0;k4;k+) if(k/2) break; nk+; printf(“%dn”,n+k); 执行后输出的结果是 。 (A)2 (B)3 (C)4 (D)529 判断字符串是否相等,应当使用 。 (A)if(a=b) (B)if(a=b) (C)if(strcpy(a,b) (D)if(!strcmp(a,b)30 以下程序运行结果是 。void sub(int x,int y,int *z)*z=y-x;main()int a,b,c; sub(11,7,&a);sub(5,a,&b);sub(a,b,&c); printf(“%d,%d,%dn”,a,b,c); (A)-4,-9,-5 (B)-4,9,5 (C)4,-9,-5 (D)-4,9,-531 以下程序运行结果是 。 main()int a23=1,3,5,4,7,6,i,j,b=a00; for(i=0;i2;i+) for(j=0;j3;j+) if(baij) b=aij; printf(“%dn”,b); (A)5 (B)7 (C)4 (D)132 以下程序运行结果是 。main()char s50=”I am a student”,c; int i,num=0,word=0; for(i=0;c=si;i+) if(c=) word=0; else if(word=0) word=1;num+; printf(“%dn”,num); (A)2 (B)3 (C)4 (D)533 以下程序运行结果是 。#include main()char s50=”1234567”,*p=s; int i; i=*(p+5)-*(p+2); printf(“%dn”,i*strlen(s); (A)21 (B)24 (C)14 (D)2834 以下程序运行结果是 。 main()int a=1,2,3,4,5,6,7,8,9,i,j,k; for(i=0,j=8;ij;i+,j-) k=ai;ai=aj;aj=k; printf(“%dn”,a1+a5); (A)11 (B)12 (C)13 (D)1435 以下程序运行结果是 。 main()int x=1,2,3,s,*p=x,i; for(i=0,s=1;i3;i+,p+) s*=*p; printf(“%dn”,s); (A)2 (B)4 (C)6 (D)836 设有语句:int a10=0,1,2,3,4,5,6,7,8,9,*p=a;以下对数组a 中的数组元素的不正确引用是( D )。A ap-a B *(&ai) C pi D *(&(a+i) 37. 下列程序的输出结果是( A )#include #define MIN(x,y) (x)0?1:x0) y=1; B if(x)else if(x0) y=1; else y=0; else if(x=0) if(x0) y=1; if(x0) y=1; else if(x=0)y=0; else y=-1; else y=-1;42. 下列程序输出的结果是( A )。main() int a=0,i; for(i=1;i5;i+) switch(i) case 0: case 3: a+=2; case 1: case 2: a+=3; default: a+=5; printf(“%dn”,a);A 31 B 13 C 10 D 20 43下列程序中,while循环次数是( D )。 main() int i=0; while(i10) if(i1)continue; if(i=5)break; i+;A 1 B 10 C 6 D 死循环,不能确定次数44. 以下说法中正确的是( C )。A C语言程序总是从第一个函数开始执行B 在C语言程序中,要调用的函数必须在main()函数中定义 C C语言程序总是从main()函数开始执行D C语言程序中的main()函数必须放在程序的开始部分45. C语言规定,调用一个函数时,实参变量和形参变量之间的数据传递方式是( B )。A 地址传递 B 值传递 C 由用户指定传递方式D 由实参传给形参,并由形参传回来给实参46设有:int10,i=5;,以下对数组元素引用不正确的是( D )。A a9 B A0 C ai D ai+547. 若有定义:int i,j,*p=&i,则与i=j等价的语句是( B )。 A i=*p; B *p=*&j; C i=&j; D i=*p;48. 设a,b和c都是整型变量,且a=3,b=4,c=5;则以下表达式中,值为0的表达式是( D )。 A a&b B a=b C a|b+c&b-c D !(ab)&!c|1)49、下面标识符中,不合法的用户标识符为 ( D ) A) Pad B) a_10 C) _12ab D) int50、调用scanf(“%d,%d”,&a,&b);时,正确的键盘输入是 ( A ) A) 10,20 B) a=10,b=20 C) 10:20 D) 10 2051、能表示条件0x 100的表达式是 ( D ) A) 0= x =0, x=0& xb) & (n=cd) 后n的值为 ( C ) A) 0 B) 1 C) 2 D) 353、下面不正确的字符串常量是 ( A ) A) abc B) 1212 C) 0 D) 54、对字符串“Cat”进行完整赋值的操作是 ( B ) A) char s3 = C, a, t; B) char s = Cat; C) char s3 = Cat; D) char s3; s= Cat;55、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是 ( C ) A) 3 B) 9 C) 12 D) 656、设x、y均为整型变量,且x=10,y=3,则以下语句的输出结果是printf(“%d,%dn”,x-,-y); ( D ) A)10,3 B)9,3 C)9,2 D)10,257、在Turbo C中,设int a10;假设数组a开始于内存2000单元,则a2的存储始于 ( B ) A) 2002 B) 2004 C) 2006 D)200858、在C语言中,引用数组元素时,其数组下标的数据类型允许是 ( C )A) 整型常量 B) 整型表达式 C)整型常量或整型表达式 D)任何类型的表达式59、若有int s4 = 1,2,3,4;,则ss0+2*s2-s3 的值是( D ) A) 1 B) 2 C) 3 D) 460、用数组名作为函数的实参时,传递给形参的是( A ) A) 数组的首地址 B) 数组的第1个元素 C) 数组中的全部元素 D) 数组的元素个数61、以下程序的输出结果是 ( B ) main() char ch35= AAAA,BBB,CC; printf(“%s”,ch1); A) AAAA B) BBB C) BBBCC D) CC62、有以下程序段 int k=0; while(k=1) k+; while循环执行的次数是 ( A ) A) 无限次 B)有语法错,不能执行 C) 一次也不执行 D) 执行1次63、设有以下说明语句 struct stu int a; float b; stutype;则下面的叙述不正确的是 ( C )A) struct是结构体类型的关键字 B) struct stu是用户定义的结构体类型C) stutype是用户定义的结构体类型名 D) a和b都是结构体成员名二、填空题 1、C语言程序的三种基本结构是 顺序结构 、选择结构 、 循环结构 。2、一个C程序有且仅有一个 main( ) 函数。3、C语言描述“x和y都大于或等于z”的表达式是 x=z & y=z 。4、C语言可以用来实现循环的结构化语句是 while 、 do while 、for。5、数组名表示数组在内存的 首地址。6、int a=3,*p=&a;*p+2的值是 5 。7、 变量的作用域是指变量的有效范围,在作用域内可以引用该变量。按作用域来说,变量可以分为_局部_变量和_全局_变量。8、 如果程序中已有定义:int k;通过指针变量,将数值10赋值给k的句是_*p=10;_。9、设a,b,c,d,m,n均为int型变量,且a=5,b=6,c=7,d=8,m=2,n=2,则 逻辑表达式(m=ab)&(n=cd)运算后,m,n的值分别为_1,1_。10、 当函数的返回值的类型与函数定义的类型不一致时,系统自动将其转换为函数定义时的类。11、C语言中,变量是指在程序运行过程中其值可在一定范围内变化的量。12、 指针变量是把内存中另一个数据的_首地址_作为其值的变量。13、C语言源程序文件的后缀是.c,经过编译后,生成文件的后缀是.obj,经过连接后,生成文件的后缀是.exe。三、阅读题(每小题5分,共20分)1. 写出下列程序的运行结果( 1 )。 main() int a=100; if(a=50)printf(“%dn”,a50) printf(“%dn”,a50); 2. 写出下列程序的输出结果( good )。 main() int n=b; switch(n) default : printf(“errorn”);break; case a:case b printf(“goodn”);break; case c : printf(“passn”);break; case d : printf(“warnn”);break;3. 写出下列程序的运行结果( 3 )。 #include main() int i,s=0; for(i=1;i3;i+) s+=i; printf(“%dn”,s);6有下面程序段,请写出运行结果main() int sum, j; for(j=1;j=100;j+)sum=0;sum =sum +j; printf(“sum is %d”, sum);输出: sum is 1007有下面程序段,请写出运行结果main() float a = 3.4; int b; b = a * 3; printf(“%d”,b);输出: 1010.运行以下程序片段,输出的结果是: ( 5,13 )#includemain() int a=1,b=2;printf(%d,func(a,b);printf(%d,func(a,b);func(int x,y) static int a=0,b=1;a=b*2;b=a+x+y;return(b);11.下面程序的输出结果是: ( 0246802468 )#define MAX 5int aMAX,k;main() fun1();fun3();fun2();fun3();printf(n);fun1() for(k=0;kMAX;k+) ak=k+k;fun2() int aMAX,k;for(k=0;k5;k+) ak=k;fun3() int k;for(k=0;kMAX;k+) printf(%d,*(a+k);12.请写出以下程序的输出结果: ( 0 0 0 0 )#icludemain() int a=1,2,3,4,i;int x=0;for(i=0;i4;i+) sub(a,x);printf(%d,x);printf(n);sub(s,x)int *s,x; static int t=3;x=st;t-;return(x);四、改错题(每处4分,共12分)请把/*.*/内的错误改正。写在旁边的横线上。1.以下程序用来统计字符串s中的空格的个数,改正其中的错误。#include/* Main( ) */ main( ) char str255; gets(str); printf(“空格个数为:%dn”,fun(str);int fun(char *s) int n=0; char *p=s; while(*(p+) if(*p= = ) n+; retuen n; 2 求1到10的和。改正其中的错误。main() /* int i;s=0; */ int i,s=0; for(i=1;i=10;i+) s=s+i; /* printf(“%f”,s); */ printf(“%d”,s); 3:将一个字符串中的大写字母转换成小写字母。 例如:输入aSdFG输出为asdfg。-#include/*FOUND*/cha fun(char *c) if(*c=A)*c-=A-a;/*FOUND*/ return c;main()/*FOUND*/char s81,*p=s; gets(s); while(*p) *p=fun(p);/*FOUND*/ printf(%c,p); p+; putchar(n);-错误答案: 1 char fun(char *c) 2 return *c; 或 return (*c); 或 return(*c); 3 char s81,*p=s; 4 putchar(*p); 或 printf(%c,*p);4:下列给定程序中,函数fun的功能是:判断m是否为素数, 若是返回1,否则返回0。主函数的功能是:按每行5个输 出1-100之间的全部素数。 请改正程序中的4个错误,使它能得出正确的结果。-注意:不可以增加或删除程序行,也不可以更改程序的结构。-*/main() int m,k=0; for(m=1;m100;m+) if(fun(m)=1) printf(%4d,m);k+; if(k%5=0)printf(n); /*FOUND*/void fun( int m) int
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 魅力女性的课件
- 济南市2024-2025学年八年级上学期语文月考测试试卷
- 高速路安全知识培训心得
- 高速业务知识培训课件要求
- 医院保洁、中央运输服务方案
- 高血压基本知识培训总结课件
- 建设项目可行性研究技术服务合同
- 抽水蓄能电站移民安置监理评估合同
- 电脑培训知识付费平台课件
- 电脑主机知识培训课件
- 股权代持协议英文版10篇
- 酒吧消防火灾应急预案(3篇)
- 国企物业面试题目及答案
- 2024年会计法规综合考查试题及答案
- 鉴定机构运营管理制度
- 医院不良事件上报制度
- 双馈风机送出线路的暂态响应特性及保护适应性分析
- 2025年江苏东台市国有资产经营有限公司招聘笔试参考题库含答案解析
- 信息技术(基础模块)课件 第5章-新一代信息技术概述
- “教联体”在家校社协同育人中的实践
- 商业装修工程合同样本范本
评论
0/150
提交评论