7-19-C语言上机考试试题14.doc_第1页
7-19-C语言上机考试试题14.doc_第2页
7-19-C语言上机考试试题14.doc_第3页
7-19-C语言上机考试试题14.doc_第4页
7-19-C语言上机考试试题14.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C 语言上机考试试题-141. 选择题 ( 评分标准 20 分,每小题2分 )1若有以下定义和语句,且0i10,则对数组元素的错误引用是_。 int a=0,1,2,3,4,5,6,7,8,9;int *p,i; p=a;(A) *(a+i) (B) *p+i (C) *(p+i) (D) *(&ai)2. 若有下列定义,则对a数组元素地址的正确引用是_。int a5,*p=a; (A) &a5 (B) *(p+3) (C) a+ (D) &a 3. 若有以下定义和语句,则输出结果是_。char s12=book!; printf(d,strlen(s); (A) 12 (B) 8 (C) 5 (D) 6 4. 以下叙述中不正确的是_。 (A) 在C函数中,只能通过return语句传回函数值。 (B) 在C函数中,可以有多条return语句。 (C) 在C函数中,可以没有return语句。 (D) 在C中,调用函数可以用一条独立的函数语句完成。 5. 以下叙述中正确的是_。 (A) 一个源程序只能含有一个函数。 (B) C函数可以嵌套定义。 (C) C函数不可以嵌套定义,但可以递归调用。 (D) C程序是以函数为单位编译的。 6. 以下叙述中不正确的是_。 (A) 在C函数中,可以没有形式参数。 (B) 在C函数中,实际参数和形式参数一般应该一一对应。 (C) 若被调函数的定义在后,则在主调函数中一般应给出被调函数的声明。 (D) 在C中,指针不可以作为函数参数。 7、全局变量的作用范围是:_。(A) 整个源文件 (B) 主函数内部 (C) 整个程序 (D) 从定义位置开始到本源文件结束8、局部变量的作用范围是:_。(A) 整个本源文件 (B) 定义该变量的函数内部 (C) 主函数以及定义该变量的函数内部 (D) 从定义位置开始本源文件结束9、以下程序的结果是_。#include main()unsigned int a=3, b=20; printf(%d ,a3|b );(A) 26 (B) 8 (C) 28 (D) 1810、已知字母a的ASCII码为97,字母A的ASCII码为65。以下程序的结果为_。 #include main() unsigned int a=33,b=66; printf(%c ,a|b ); (A) 67 (B) 99 (C) C (D) c套数号答案1. B 2. B 3. C 4. A 5. C 6. D 7. D 8. B 9. C 10. D2. 判断题 ( 评分标准 20 分,每小题2分)1. int是合法的标识符。2.函数的定义在main()之后,必须先声明后使用。3.按位“异或”的特点是参与运算的两个二进制同号,则结果为假。4.若文件型指针FP已指向某文件的末尾,则函数FEOF(FP)的返回值是0。5.不能用“r”方式打开一个并不存在的文件。6.在C语言的while语句中,当用于判断循环结束条件的表达式的值为非0时,将不执行while语句中的内嵌语句。7. 3.2E1.5是合法的C表达式。8. C语言中,注释语句不可以出现在程序中任意的地方。9. C语言的源程序中至少有一个也只有一个main函数。10. 若有int a5,b5=1,2,3,4,5; 则a=b; 是合法的。套数号答案151.T 2. T 3. T 4. F 5. T 6. F 7. F 8. F 9. T 10. F3. 填空题(4) ( 评分标准 10 分,每小题2分)1. 无符号基本整型的数据类型符为_(用字母表示)。2. 右边二个式子301 、3|2的值分别为_、_。3. 在C语言中十六进制数100转换为十进制数为_。4. 编写程序语句:以只读方式打开文件名为file.c的文件(路径不要求)_。5. 定义:int x=13,y=5; 执行语句:x-=x+-y ; 后x的值为_。参考答案:第6套(1)unsigned(2)1、1(3)256(4)fopen(file.c,r);(5)64. 程序改错题 ( 评分标准 20 分,每小题 5分 )1. 下列程序实现:对输入的10个整数,找出其中的最小值并指出其是第几个数。#include void main() int a10;int i,n,min;for(i=0;i10;i+)scanf(%d,&ai);min= a0; n=0;for(i=0;i10;i+) if(aimin ) min=ai ; n=i;printf(%d, %d ,min,n); /* $1 */ 操作说明:在考生目录的*子目录下,有*.c文件,该文件中“/*$1*/”行中的语句printf(%d, %d ,min,n);有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:在程序中输入n位整型数值,得到输入数值的位数。例如:在程序中输入:15 4 3 2 -1 20 8 7 5 10 结果:-1 5答案:printf(%d, %d ,min,n+1);运行样例1行运行样例1:15 4 3 2 -1 20 8 7 5 10 结果:-1 52. 以下程序计算数组a5中的奇数之和,例如输入:2 3 4 5 11,运行程序后输出结果:19。#include int main()int a;int i,sum=0;for(i=0;i;i+)scanf(%d,&ai);for(i=0;i5;i+)if(ai/2!=0) /* $1 */ sum+=ai; printf(%d ,sum);操作说明:在考生目录的*子目录下,有*.c文件,该文件中“/*$1*/”行中的语句if(ai/2!=0) 有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:计算数组a5中的奇数之和,例如输入:2 3 4 5 11,运行程序后输出结果:19。答案: if(ai%2!=0) 运行样例1行运行样例1: 3 4 5 6 11 结果:193. 以下程序的功能是把输入的数据按降序排序,并输出。设输入5个数字:1 5 -1 4 7,程序运行后输出:7 5 4 1 -1。#include int main()int temp,a5;int i,j;for(i=0;i5;i+)scanf(%d,&ai);for(i=1;i5;i+)for(j=0;jaj-1) /* $1 */ temp=aj; aj=aj+1; aj+1=temp; for(i=0;iaj-1) 有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:对输入的数字按照降序排序并输出。例如输入:1 5 -1 4 7 输出:7 5 4 1 -1答案:if(ajaj+1) 运行样例1行运行样例1:1 5 -1 4 7 输出:7 5 4 1 -14. 以下程序的功能是实现输入数值的两两交换,例如输入:1 2 3 4 ,输出结果为:2 1 4 3。#include #include void swap1(int a);void swap2(int b0,int b1);void main() int a2,b2; scanf(%d%d%d%d,&a0,&a1,&b0,&b1); swap1(a); swap2(b0,b1); /*$1*/ printf(%d %d %d %d ,a0,a1,b0,b1);void swap1(int a) int temp;temp=a0;a0=a1;a1=temp;void swap2(int c0,int c1) int temp;temp=c0;c0=c1;c1=temp;操作说明:在考生目录的*子目录下,有*.c文件,该文件中“/*$1*/”行中的语句 swap2(b0,b1); 有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:实现输入数值的两两交换,例如输入:1 2 3 4 ,输出结果为:2 1 4 3。答案:swap1(b); 运行样例1行运行样例1:1 2 3 4 输出结果:2 1 4 35. 程序填空( 评分标准 10 分,每小题5分)1. 下列函数scmp()的功能是返回两个形参指针中所指向字符串中较小字符串的首地址,当程序输入字符串:abc 、abb、acc 时候,程序输出:abb。#include #include char *scmp(char *s1,char *s2);void main()char str10=;char a310=abc,abb,acc;strcpy(str,scmp(a0,a1); /* $1 */ printf(%s,str);char *scmp(char *s1,char *s2) if(strcmp(s1,s2)0) return(s1); else return(s2);操作说明:在考生目录的*子目录下,有*.c文件,该文件中“/*$1*/”行是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:对输入程序的三个字符串进行判断,找出它们中最小的字符串并输出。输入:abc 、abb、acc 结果:abb答案:strcpy(str,scmp(str,a2); 运行样例1行运行样例1: 输出结果:abb2. 以下程序中f( )函数功能为:计算一个二维数组各个元素的和,程序运行结果为:16。#include int f(int *b,int m,int n);main() int i;int a34=0,1,2,1,1,2,0,3,0,1,0,5; i=f(a,3,4);printf(%d ,i);int f(int *b,int m,int n ) int sum=0; int i,j;for(i=0;im;i+) for(j=0;jn;j+) /* $1 */ return sum;操作说明:在考生目录的*子目录下,有*.c文件,该文件中“/*$1*/”行是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:计算一个二维数组各个元素的和,程序运行结果为:16。参考答案:sum=sum+*b+; 运行样例1行运行样例1: 输出结果:16 6. 程序设计 ( 评分标准 20 分,每小题10分)1. 操作说明:设计程序:从键盘上输入一串字符:2008beijing#,统计出该字符串中大写字母、小写字母、数字和其他字符各出现了多少个(规定输出格式为:大写字母数 小写字母数 数字数 其他字符数)。参考答案:#include void main()char c;int cUchar=0,cLchar=0,cDigit=0,cOthers=0;while (c=getchar()!=n) if (c=A & c=a & c=0 & c=9) cDigit+;else cOthers+;printf(%d %d %d %d ,cUchar,cLchar,cDigit,cOthers); 运行样例1行运行样例1: 运行结果:0 7 4 12. 操作说明:设计程序:设现在有3位学生,他们的信息用一条记录来表示。现在要求在程序中输入这3位学生的信息(规定在定义时赋值:david,52.6,jim,85.4,victor,100;),并对3位学生信息按照他们的成绩score降序排序来输出(规定分行输出每位同学的姓名 成绩) 。学生信息记录结构如下:struct student char name20; float score;降序排序输出为:victor 100 jim 85.4 david 52.6参考答案:#include struct student char name20; float score;void sort(struct student *s);int main() int i; struct student stu3=david,52.6,jim,85.4,victor,100; struct student *s; s=stu; sort(stu); for(i=0;iname,(s+i)-score)

温馨提示

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

评论

0/150

提交评论