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

下载本文档

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

文档简介

C语言上机考试试题-6一、选择题 ( 评分标准 20 分,每小题2分 )1. 数组定义为,int a1111; 则数组a有_个数组元素。(A)12 (B)144 (C)100 (D)1212. 不正确的赋值或赋初值的方式是_。(A)char str =”string”; (B)char str10; str=”string”; (C)char *p=”string”; (D)char *p; p=”string”;3. 下列运算中,优先级最低的是_。(A)0|y0)等价于_。(A)!(x0)&!(y0) (B)!x0&!y0 (C)!x0|!y0 (D)!(x0)|!(y0)6. 表达式_的值不是0.(A)1/2 (B)!0 (C)!EOF (D)NULL7. 若x是浮点型变量,表达式 (x=10/4) 的值是_。(A)2.5 (B)2.0 (C)3 (D)28. 若变量已正确定义并赋值,表达式_不正确。(A)a&b (B)ab (C)&x (D)a,b9. 对于变量定义int a10,*p=a; 表达式_是不正确的。(A)a9 (B)p5 (C)*p+ (D)a+10. 不正确的赋值或赋初值的方式是_。(A)char str10; str=”string”; (B)char str =”string”; (C)char *p=”string”; (D)char *p; p=”string”;套数号答案61.D 2.B 3.D 4.D 5.A 6.B 7.B 8.C 9.D 10.A二、判断题 ( 评分标准 20 分,每小题2分)1. 在C中,指针不可以作为函数参数。2. 局部变量的作用范围是:定义该变量的函数内部。3. 在C函数中,实际参数对形式参数的传送都是“单向值传递”。4. 设变量定义为char s=“hello”,则数组s中有6个元素。5. C函数不可以嵌套定义,但可以递归调用。6. 如果函数值的类型与return返回值的类型不一致,则以函数值类型为准。7. 表达式!(x0y0)等价于!(x0&!(y0)。8. 表达式( 0x191)&0x7的值是3。9. 在C源程序中将语句“if(x=5) y+;”误写成“if(x=5) y+;”,将导致编译错误。10. 在C语言中,int、char和short三种类型数据在内存中所占的字节数都是2个字节。套数号答案61. F 2. T 3. T 4. T 5. T 6. T 7. T 8. F 9. F 10. F三、填空题 ( 评分标准 10 分,每小题2分)1. 在C函数中,实际参数对形式参数的传递都是 。2. 执行完下列语句段后, i值为: 。int i, j;j=10*(i=5);i+=j*=i+2;3. 对于char c; 若已知其值为小写字母, 将其转换为相应大写字母的表达式为(用字符) 。4. 已知字母a的ASCII码为97,字母A的ASCII码为65。以下程序的结果为 。main()unsigned int a=32, b=66;printf(%cn, a|b);5. 4.4 设x和y均为int型变量,且x=1,y=2,则表达式1.0+x/y的值为_。第 6套(1)值传递(2)355(3)c a + A(4)b(5)1.0四、程序改错题 ( 评分标准 20 分,每小题 5分 )1. 本程序执行完下列语句段后, i的正确值为: 4 。#includeint f(int x)int k = 0; /*$1*/x+=k+;return x;main()int i ;i=f(2);i=f(3);printf(%d,i);操作说明:在考生目录的*子目录下,有*.c文件,该文件中“/*$1*/”行中的语句 int k = 0; 有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:通过调用函数来输出。程序运行结果:4 答案:static int k = 0;运行样例1行运行样例1: 结果:42. 以下程序求n个数中的最大数、最小数和平均数。float max=0,min=0;float average(float a, int n) int i; float sum=0; max=a0; min=a0; for(i=1;imax) max = ai; else min = ai; /*$1*/ sum = sum + ai; return(sum/n); int main() float score10,ave; int j; for(j=0;j10;j+) scanf(%f, &scorej); ave = average(score,10); printf(max=%6.2f min=%6.2f average=%6.2fn,max,min,ave);操作说明:在考生目录的*子目录下,有*.c文件,该文件中“/*$1*/”行中的语句else有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:求出n个数中的最大数、最小数和平均数。例如:在程序中输入:1 2 3 4 5 6 7 8 9 10 结果:max=10.00 min= 1.00 average=5.40。答案:if (aimin) min = ai;运行样例2行运行样例1: 1 2 3 4 5 6 7 8 9 10 结果:max=10.00 min= 1.00 average=5.403. 打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方5的三次方3的三次方。#include void main()int i,j,k,n;printf(water flowernumber is:);for(n=100;n1000;n+)i=n/100; j=n/10%10; k=n/10;/*$1*/if(i*100+j*10+k=i*i*i+j*j*j+k*k*k)printf(%-5d,n);printf(n);操作说明:在考生目录的*子目录下,有*.c文件,该文件中“/*$1*/”行中的语句 k=n/10;有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。本程序功能:打印出1000内的“水仙花数”。程序运行结果:153 370 371 407答案:k=n%10;运行样例1行运行样例1: 结果:water flowernumber is: 153 370 371 4074. 题目:求s=a+aa+aaa+aaaa+aa.a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘输入控制。#include void main()int a,n,count=1;long int sn=0,tn=0;printf(please input a and nn);scanf(%d %d ,&a,&n);printf(a=%d,n=%dn,a,n);while(count=n)tn=tn+a;sn=sn+tn;a=a*tn; /*$1*/+count;printf(a+aa+.=%ldn,sn);操作说明:在考生目录的*子目录下,有*.c文件,该文件中“/*$1*/”行中的语句a=a*tn; 有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:求s=a+aa+aaa+aaaa+aa.a的值,其中a是一个数。例如:在程序中输入:2 3, 结果: a=2,n=3 a+aa+=246答案:a=a*10;运行样例4行运行样例1:please input a and n2 3 结果:a=2,n=3 a+aa+=246五、程序填空( 评分标准 10 分,每小题5分)1. 下列函数strcmp(s1, s2)是字符串比较函数, 根据s1,s2大小分别返回负数(s1s2). 请将缺少的部分补上。#include int strcmp(char *s1, char *s2) for(; (*s1)!=0; s1+, s2+) if (*s1!= *s2) break; return ( /*$1*/ ) ;void main() int i=0,j=0;char c,s1100,s2100;gets(s1); while (c=getchar()!=n)s2j+=c;s2j=0;printf(%d,strcmp(s1,s2);操作说明:在考生目录的*子目录下,有*.c文件,该文件中“/*$1*/”行是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:比较两个字符串的大小。假设程序输入:ab(回车) aba 结果:-97 或程序输入: ab(回车) ab 结果: 0答案:*s1-*s2运行样例9行运行样例1:输入ab aba 输出-97运行样例2:输入 ab ab 输出0运行样例3:输入 aba ab 输出972. 以下程序中,fun函数的功能是求3行4列二维数组每行元素中的最大值,放在数组br中,主函数完成输出3行中的最大值元素,请填空。#include stdio.hvoid fun(int ar4,int *br)int i,j,x;for(i=0;i3;i+)x=ari0; for(j=1;j4;j+) if( /*$1*/ ) x=arij; bri=x; void main() int a34=12,41,36,28,19,33,15,27,3,27,19,1; int b3,i; fun(a,b) ; for(i=0;ix运行样例1行运行样例1 : 输出结果 41 33 27六、程序设计 ( 评分标准 20 分,每小题10分)1. 设计程序:从键盘输入一些字符,逐个把它们送到磁盘文件上,直到输入一个#为止,同时将输入的字符输出。#include #includemain() FILE *fp;char ch,filename10;scanf(%s,filename);if(fp=fopen(filename,w)=NULL) printf(cannot open filen); exit(0); ch=getchar();ch=getchar();while(ch!=#) fputc(ch,fp); putchar(ch); ch=getchar();fclose(fp);运行样例3行运行样例1:输入 filename aaaaa# 输出 aaaaa 并可在文件 filename中看到aaaaa2. 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?#include stdio.hmain(

温馨提示

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

评论

0/150

提交评论