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

下载本文档

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

文档简介

C 语言上机考试试题-12一、选择题 ( 评分标准 20 分,每小题2分 )1. 在定义一个结构体变量时系统分配给它的存储空间是_。(A) 该结构体中的第一个成员所需存储空间 (B) 该结构体中的最后一个成员所需存储空间(C) 该结构体中占用最大存储空间的成员所需存储空间(D) 该结构体中所有成员所需存储空间的和2. 执行语句for(s=0,k=1; s20|kx=point.y5. fseek函数可以实现的操作是_。(A) 改变文件的位置指针的当前位置 (B) 文件的顺序读写(C) 文件的随机读写 (D) 以上都不对6. 在说明一个共用体变量时系统分配给它的存储空间是_。(A) 该共用体中的第一个成员所需存储空间 (B) 该共用体中的最后一个成员所需存储空间(C) 该共用体中占用最大存储空间的成员所需存储空间(D) 该共用体中所有成员所需存储空间的和7. 以下程序段输出字符串str,其中循环条件stri!=0 还可以写成_。char str80;for(i=0; stri!=0;i+)putchar(strii);(A) stri != NULL (B) i 80 (C) !(stri=0) (D) i=808. 设变量定义如下,则对其中的结构分量num正确的引用是_。 struct student int num ; char name20; float score; stud10; (A) stud1.num=10; (B) student.stu(D) num=10; (C) struct stud.num=10; (D) struct student.num=10;9. 函数f定义如下,执行语句m=f(5); 后,m的值应为_。 int f(int k) if(k=0|k=1) return 1; else return f(k-1)+f(k-2); (A) 3 (B) 8 (C) 5 (D) 13 10. 以“只读”方式打开文本文件c:xy.txt,下列语句中哪一个是正确的_。 (A) fp=fopen(c:xy.txt,a); (B) fp=fopen(c:xy.txt,r); (C) fp=fopen(c:xy.txt,wb); (D) fp=fopen(c:xy.txt,r);套数号答案121.D 2.B 3.C 4.B 5.A 6.C 7.B 8.A 9.B 10.B二、判断题 ( 评分标准 20 分,每小题2分)1. 若一个函数的定义处于调用它的函数之前,则在程序开始可以省去该函数的声明语句。2. 在C 语言程序中,在main()函数中定义的变量称为全局变量 。3. 执行循环语句for(i=1;i10;i=i+2) s+=i; 后,i的当前值为11。4. P为指向字符串hello!的指针变量,*P表示字符h。5. 表达式(15|0)&2 的值是2。6. 当函数参数表用int保留字表示时,则表示该参数表为空。7. 链表是动态地进行存储分配的一种结构。8. 链表的一个结点中只可以存储数据。9. 全局变量就是在main函数中定义的变量。10. 共用体变量所占内存长度等于最长的成员的长度。套数号答案131.T 2. F 3. T 4. T 5. T 6. F 7. T 8. F 9. F 10. T三、填空题 ( 评分标准 10 分,每小题2分)1.下列程序段的输出结果是_(注意字符的大小写)。main( ) char b=Hello,you;b5=0;printf(%s, b );2. 若有定义语句:char s12,d12; int j=0, i=0;,且s中已赋字符串,请填空以实现字符串拷贝。while(si) dj= _;j+;dj=0;3. 有如下函数调用语句func(rec1,rec2+rec3,(rec4,rec5,rec6);该函数调用语句中,含有的实参个数是 。4 当调用函数时,实参是一个数组名,则向函数传送的是 的首地址。5. 存储A要占用_个字节。第4套(1)Hello(2)si+(3)3(4)数组(5)1四、程序改错题 ( 评分标准 20 分,每小题 5分 )1. 以下程序用于统计字符串中各个元音字母(a,e,i,o,u)的个数,要求只统计小写字母,改正下面程序中的错误。#include void main( )char s100;int i,j,num5;gets(s);for(j=0;j=0) numi+;for(j=0;j=4;j+)printf(%d,numj);操作说明:在考生目录的*子目录下,有*.c文件,该文件中“/*$1*/”行中的语句switch(s)有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:此程序用于统计字符串中各个元音字母(a,e,i,o,u)的个数,要求只统计小写字母。例如: 输入abcdef 输出11000 。答案:sj测试样例1:输入aabeediou 输出 221112. 以下程序要求实现:计算1+1/2+1/4+.+1/100的值。#include void main() int i;float sum=1;for (i=2;i100;)sum+=1/(float)i;i*=2; /* $ */printf(%2.5f,sum);操作说明:在考生目录的*子目录下,有*.c文件,该文件中“/*$1*/”行中的语句i*=2; 有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:计算1+1/2+1/4+.+1/100的值。答案:i+=2;测试样例1: 输出结果:3.239603. 以下程序把一个整数中每一位上为奇数的数字取出,并依次排列成一个新数,请改正程序中的错误。#include void f( long s, long *p)int k=0;long d=1;*p=0;while(s0)k=s%10;if(k%2=0)*p=k*d+*p; d*=10; /* $ */s/=10;void main()long s,d=0; scanf(%ld,&s);f(s,&d);printf(%ld,d);操作说明:在考生目录的*子目录下,有*.c文件,该文件中“/*$1*/”行中的语句if(k%2=0)*p=k*d+*p;d*=10; 有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:把一个整数中每一位上为奇数的数字取出,并依次排列成一个新数。例如:输入:45678 输出:57答案:k%2!=0测试样例1:输入:45678 输出:574. 在主函数中用键盘输入两个数,将这两个数作为形参传递给fun函数,fun函数对传递过来的两个参数求和与差,并在主函数中输出这两个参数的和与差。#includevoid fun(int a,int b,int sum,int min) /* $ */ *sum=a+b; *min=a-b;void main()int a,b,sum=0,min=0;scanf(%d%d,&a,&b);fun(a,b,&sum,&min);printf(%d %d,sum,min);在考生目录的*子目录下,有*.c文件,该文件中“/*$1*/”行中的语句void fun(int a,int b,int sum,int min)有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:在主函数中用键盘输入两个数,将这两个数作为形参传递给fun函数,fun函数对传递过来的两个参数求和与差,并在主函数中输出这两个参数的和与差。例如:输入:4 5,输出结果:9 -1。参考答案: void fun(int a,int b,int *sum,int *min)测试样例1: 输入:4 5 输出结果:9 -1五、程序填空( 评分标准 10 分,每小题5分)1下面程序可以求出矩阵a的主对角线上的元素之和,请进行程序填空 。#include void main()int a33=2,3,3,4,5,6,7,8,9,sum=0,m,n;for(m=0;m3;m+)for(n=0;n3;n+)if(m=n) /* $ */printf(%d,sum);操作说明:在考生目录的*子目录下,有*.c文件,该文件中“/*$1*/”行是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:求出矩阵a的主对角线上的元素之和。答案: sum += amn;测试样例1: 输出结果 :162以下函数fun的功能是:依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串输出。#include void fun (char s ) int i,j; for (i=0,j=0; si!=0; i+) if (si=0 & si=9) sj=si; /* $ */ sj=0;void main() char a=fs4455dfsd45667ab; fun(a); printf(%s,a);操作说明:在考生目录的*子目录下,有*.c文件,该文件中“/*$1*/”行是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串输出。参考答案: j+;测试样例1: 输出结果: 445545667 六、程序设计 ( 评分标准 20 分,每小题10分)1. 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13.求出这个数列的前20项之和。要求保留小数点后六位数。参考答案:#include void main() int n,number=20;float a=2,b=1,s=0,t;for(n=1;n=number;n+)s=s+a/b;t=a;a=a+b;b=t;printf(%9.6f,s);测试样例1: 输出结果: 32.6602592. 编写一程序,从键盘输入6个整数并保存到数组,求出这6个数的最大值、最小值以及平均值(提示:输出值的顺序规定为:最大值 最小值 平均值(保留2位小数),用空格间隔)。参考答案:#include void main()int

温馨提示

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

评论

0/150

提交评论