2022年C语言上机考试试题 2.pdf

上传人:C****o 文档编号:32499097 上传时间:2022-08-09 格式:PDF 页数:7 大小:70.64KB
返回 下载 相关 举报
2022年C语言上机考试试题 2.pdf_第1页
第1页 / 共7页
2022年C语言上机考试试题 2.pdf_第2页
第2页 / 共7页
点击查看更多>>
资源描述

《2022年C语言上机考试试题 2.pdf》由会员分享,可在线阅读,更多相关《2022年C语言上机考试试题 2.pdf(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、1 C 语言上机考试试题-3 2008.1.31 一、选择题( 评分标准20 分,每小题 2 分 )1. 以下选项中可作为C 语言合法常量的是_。(A) -80. ( B) -080 (C) -8e1.0 (D) -80.0e 2. 以下叙述中正确的是_。(A) 用 C 程序实现的算法必须要有输入和输出操作(B) 用 C 程序实现的算法可以没有输出但必须要输入(C) 用 C 程序实现的算法可以没有输入但必须要有输出(D) 用 C 程序实现的算法可以既没有输入也没有输出3. 已有定义: char a=xyz,b=x,y,z;,以下叙述中正确的是_。(A) 数组 a和 b 的长度相同(B) a 数

2、组长度小于b 数组长度(C) a 数组长度大于b 数组长度(D) 上述说法都不对4. 以下叙述中错误的是_。(A) 数组名代表的是数组所占存储区的首地址,其值不可改变。(B) 当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“ 下标越界 ” 的出错信息。(C) 对于 double 类型数组,不可以直接用数组名对数组进行整体输入或输出。(D) 可以通过赋初值的方式确定数组元素的个数。5. 以下叙述中正确的是_。(A) 预处理命令行必须位于源文件的开头(B) 在源文件的一行上可以有多条预处理命令(C) 宏名必须用大写字母表示(D) 宏替换不占用程序的运行时间6. 表达式strlen(

3、”hello ”) 的值是 _。(A)4 (B)5 (C)6 (D)7 7. 设变量定义为“int a, b;”,执行语句scanf( “a=%d, b=%d”,&a, &b);时,输入 _,则 a和 b 的值都是 10。(A)10 10 (B) 10, 10 (C)a=10 b=10 (D)a=10, b=10 8. 以下与函数fseek(fp,0L,SEEK_SET) 有相同作用的是_。(A) feof(fp) (B) ftell(fp) (C) fgetc(fp) (D) rewind(fp) 9. 以下语句或语句组中,能正确进行字符串赋值的是_。(A) char *sp=right!;

4、 (B) char s10;s=right!; (C) char s10;*s=right!; (D) char *sp;*sp=right!; 10. 设变量定义为 “int a4;”,则表达式 _不符合 C 语言语法。(A)*a ( B)a0 (C) a (D)a+ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 7 页 - - - - - - - - - 2 套数号答案3 1.A2.C 3.C 4.B 5.D 6.B 7.D 8.D 9.A10.D 二、判断题( 评

5、分标准 20 分,每小题 2 分)1. 一个 C 程序的执行是从本程序文件的第一个函数开始,到main 函数结束。2. 在 C 程序中,用整数0 表示逻辑值 “ 假” 。3. C 语言中while 和 do-while 循环的主要区别是do-while 的循环体至少无条件执行一次。4. 设变量定义为char s=“hello ”,则数组s 中有 6 个元素。5. 对以下语句的正确理解是将5 个初值依次赋给a6 到 a10。int a10 = 6, 7, 8, 9, 10; 6. 若变量已正确定义,表达式x=y=1 符合 C 语言语法。7. 表达式 !(x0 y0)等价于 !(x0&!(y0)。

6、8. C 语言规定简单变量作实参时,它与对应形参之间的数据传递方式是实参和形参间来回传递。9. 在 C 源程序中将语句“if(x=5) y+;”误写成 “if(x=5) y+;”,将导致编译错误。10. fscanf 函数的正确调用格式为:fscanf (fp, 格式字符串,输出表列); 。套数号答案2 1. F 2. T 3. T 4. T 5. F 6. T 7. T 8. F 9. F 10. T 三、填空题( 评分标准 10 分,每小题 2 分)1. 标识符是用户自定义的一种_,通常用来表示程序中需要辨认的对象。2. C 语言的语句主要分为:变量定义语句、赋值语句、函数调用语句、表达式

7、语句、_语句、复合语句、空语句和其他语句等8 类。3. C 程序是由函数构成的。其中有并且只能有_个主函数。4. 在内存中存储“A”要占用 _个字节。5. 若定义: int a=88,*b=&a ; ,则 printf(%dn ,*b) ;的输出结果为。第 2 套(1)字符序列(2)流程控制(3)1 (4)2 (5)88 四、程序改错题(评分标准20 分,每小题 5 分)1. 假设该程序输入10 个数字: 1 2 3 4 5 6 7 8 9 10,则程序运行结果:1-3-5-7-9- 。#include void main() int i; int a10; 名师资料总结 - - -精品资料欢

8、迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 7 页 - - - - - - - - - 3 for(i=0;i10;i+) scanf(%d,&ai); for(i=0;i10;i+) if (ai%2=0) /*$*/ continue; else printf(%d-,ai); 操作说明:在考生目录的 * 子目录下,有 *.c 文件,该文件中“/*$1*/ ”行中的语句if (ai%2=0) 有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:该程序输入10 个数字:1

9、2 3 4 5 6 7 8 9 10。程序运行后输出结果为:1-3-5-7-9- 。答案: if(ai%2=0) 运行样例1 行运行样例1:1 3 2 6 10 20 8 12 5 3 运行结果: 1-3-5-3- 2. 以下程序的功能是输入一个正整数,判断是否是素数,若为素数输出1,否则输出0。#include void main() int i, x, y=1; scanf(%d, &x); for(i=2; ix/2; i+) /*$1*/ if(x%i=0) y=0; break; printf(%dn,y); 操作说明:在考生目录的 * 子目录下,有 *.c 文件,该文件中“/*$1

10、*/ ”行中的语句for(i=2; ix/2; i+) 有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:输入一个正整数,判断是否是素数,若为素数输出1,否则输出0。答案: for(i=2; i=x/2; i+) 运行样例1 行运行样例1:7 运行结果: 1 3. 假设该程序输入两个数据:2 3,程序运行结果为:2。#include stdio.h int *fun(int *a,int *b) int m; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第

11、 3 页,共 7 页 - - - - - - - - - 4 m=*a; m+=*b-3; return(m); /*$*/ void main() int x,y; int *a=&x,*b=&y; int *k; scanf(%d%d,&x,&y); k=fun(a,b); printf(%dn,*k); 操作说明:在考生目录的 * 子目录下,有 *.c 文件,该文件中“/*$1*/ ”行中的语句return(m); 有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:假设该程序输入两个数据:2 3,则程序运行结果为:2。答案: return(&m); 运行样例1

12、 行运行样例1:5 4 运行结果: 6 4. 本程序功能:实现对字符数组的倒序。输入字符串:hg25DA, 输出结果:str now is AD52gh #include #include #include int main() char str50 ; int length = strlen(str); char * p1 = str; char * p2; scanf(%s,str); length = strlen(str); p2 = str + length; /*$*/ while(p1 p2) char c = *p1; *p1 = *p2; *p2 = c; +p1; -p2;

13、 printf(str now is :%sn,str); return 0; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 7 页 - - - - - - - - - 5 操作说明:在考生目录的 * 子目录下,有 *.c 文件,该文件中“/*$1*/ ”行中的语句p2 = str + length; 有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:实现字符串的逆转功能。例如:该程序输入:hg25DA,程序输出结果:str now is :

14、AD52gh 答案:p2 = str + length 1; 运行样例1 行运行样例1:SH87ch 运行结果: str now is :hc78HS 五、程序填空(评分标准10 分,每小题 5分)1. 阅读以下程序,假设输入为it6y7hh9e,请写出运行后的结果。#include #include #include void f(char *s) int i=0; while(si!=0) if(isdigit(si) /*$*/ else i+; void main() char str80; gets(str); f(str); puts(str); 操作说明:在考生目录的 * 子目录

15、下, 有*.c 文件, 该文件中 “/*$1*/ ”行是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:删除字符串中的数字字符。这里用到isdigit()函数,所以需要在前加#include 。答案: strcpy (s+i,s+i+1) 。运行样例1 行运行样例1:i52love89y793ou 运行结果: iloveyou 2. 以下程序对test.txt 进行读操作,并将读出的文本输出到屏幕上。#include stdio.h void main() FILE *fp; char ch; fp = fopen(test.txt, r

16、); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 7 页 - - - - - - - - - 6 if (fp = NULL) printf(can not open testn); exit(0); ch = fgetc(fp); while(/ *$* /) putchar(ch); ch = fgetc(fp); fclose(fp); 操作说明:在考生目录的 * 子目录下,有 *.c文件,该文件中“/*$1*/ ”行是根据程序功能需要填充部分,请完成程序填充(

17、注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能对test.txt 进行读操作,并将读出的文本输出到屏幕上。删除:将test.txt 文件放在考生目录下,并在其中存入“hello,welcome to the world of C!”字样。答案: ch != EOF 运行样例1 行运行结果1:hello,welcome to the world of C! 六、程序设计(评分标准20 分,每小题 10 分)1. 编制函数,其功能是在float 类型一维数组中查找最大值、最小值,并将它们返回到调用程序,并输出 ,一维数组的数值要求在主函数中输入。参考答案:#include #incl

18、ude void find(float num,int n,float *min,float *max); void main() float min=1000000.0,max=0,num5; int i; for(i=0;i5;i+) scanf( “%f”,&numi);find(num,5,&min,&max); printf(%.1f %.1f,max,min); getchar(); void find(float num,int n,float *min,float *max) int i; for(i=0;in;i+) if(numi*max) *max = numi; 名师资

19、料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 7 页 - - - - - - - - - 7 运行样例2 行运行样例1:1.5 12.3 42.2 0.7 14.5(输入 5 个数)运行结果1:42.2 0.7 运行样例2:1.2 15.4 83.7 0.1 28.2(输入 5 个数)运行结果2:83.7 0.1 2. 某一电脑外设批发店经营品牌无线键盘鼠标套装。如果成套购买(键盘+鼠标) ,一次买的数量多于 50 套,每套 450 元;如果一次买的数量不足50 套,每套 5

20、00 元;如果只买键盘,每个250 元,如果只买鼠标,每个300 元。 编写程序:要求在键盘中输入需要买的无线键盘和鼠标的数量,计算应付金额。参考答案:#include void main() int c,t; int m; printf(please input the number of c and t:); scanf(%d%d,&c,&t); if (c=t) if (c=50) m=c*450; else m=c*500; else if (ct) if (t=50) m=t*450+(c-t)*250; else m=t*500+(c-t)*250; else if (c50) m=c*450+(t-c)*300; else m=c*500+(t-c)*300; printf(the money you need to pay is: %dn,m); 运行样例2 行运行样例1:please input the number of c and t: 5 6 结果 1: the money you need to pay is :2800 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 7 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁