《2022年第学期《计算机C语言程序设计》试卷A .pdf》由会员分享,可在线阅读,更多相关《2022年第学期《计算机C语言程序设计》试卷A .pdf(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2011-2012第 1 学期 C 语言程序设计试卷A 一、选择题(每小题2 分,共计40 分)题号1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 得分答案1、以下能正确定义且赋初值的语句是()。A)int n1=n2=10;B)char c=32;C)float f=f+1.1;D)double x=12.3e2.5;2、在 C语言中,表达式_的值是整数类型。A)25.0 B)34.5+0.5 C)12.3*10 D)3%10 3、以下叙述不正确的是()。A)一个 C 源程序可由一个或多个函数组成。B)一个 C 源程序必须包含一个main
2、 函数。C)在 C 程序中,注释说明只能位于一条语句的后面。D)C 程序的基本组成单位是函数。4、当 a=1、b=3、c=5、d=4 时,执行以下程序段后x 的值是。if(ab)if(cd)x=1;else if(ac)if(bd)x=2;else x=3;else x=6;else x=7;A)1 B)2 C)3 D)6 5、执行下列程序段:for(i=0;i5;i+)for(j=1;j6;j+)x+=3;其中表达式“x+=3”共执行 _ _次。名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 12 页 -1 A)30 B)24 C)25 D)20 6、C 语言中 switch
3、语句形式如下所示,关键字 switch 后一对圆括号中表达式exp 的类型()。switch(exp)case 常量表达式1:语句 1;.case 常量表达式n:语句 n;default:语句 n+1;A)可以是整型或字符型B)只能是int 类型C)只能是字符型D)只能是整型或实型7、C 语言规定,函数返回值的类型是由()。A)调用该函数时系统临时决定B)return 语句中的表达式类型所决定C)调用该函数时的主调函数类型所决定D)在定义该函数时所制定的函数类型所决定8、以下叙述中不正确的是:()。A)在不同的函数中可以使用相同名字的变量。B)形式参数是局部变量。C)在函数内定义的变量只在本函
4、数范围内有效。D)在函数内的复合语句中定义的变量在本函数范围内有效。9、以下正确的函数声明形式是。A)double fun(int x,int y)B)double fun(int x;int y)C)double fun(int x,int y);C)double fun(int x,y)10、以下程序的运行结果是。#define MIN(x,y)(x)(y)?(x):(y)main()int i=10,j=15,k;k=10*MIN(i,j);printf(“%dn”,k);A)10 B)15 C)100 D)150 名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 12 页
5、-2 11、以下对二维数组a 的正确说明是。A)int a 3 B)float a(3,4)C)double a 4 D)float a(3)(4)12、以下关于结构体的叙述中,错误的是()。A)结构体是一种可由用户构造的数据类型B)结构体中的成员可以具有不同的数据类型C)结构体中的成员不可以与结构体变量同名D)结构体中的成员可以是指向自身结构的指针类型13、判断字符串s1 和 s2 是否相等,应使用下面哪种形式_。A)if(s1=s2)B)if(s1=s2)C)if(strlen(s1)=strlen(s2)D)if(strcmp(s1,s2)=0)14、已定义 c 为字符型变量,则下列语句
6、中正确的是()。A)c=97 B)c=”97”C)c=97 D)c=”a”15、以下程序的正确运行结果是。#include void num()extern int x,y;int a=15,b=10;x=a-b;y=a+b;int x,y;main()int a=7,b=5;x=a+b;y=a-b;num()printf(“%d,%dn”),x,y);A)5,25 B)不确定C)12,2 D)1,12 16 在一个源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是。A)extern B)register C)auto D)static 17、变量的
7、指针,其含义是指该变量的。名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 12 页 -3 A)值B)名C)地址D)一个标识18、已有定义int i,a10,*p;,则下面赋值语句中合法 的是()。A)p=100;B)p=a5;C)p=a2+2;D)p=a+2;19、若有如下定义:struct person int id;char name2 0;per,*s=&per;则以下对结构体成员的引用错误 的是()。A)per.name B)s-name C)(*per).name D)(*s).id 20、利用 fopen()函数打开文件,如果打开失败,其返回值为_。A)NULL B)
8、EOF C)0 D)不确定得分二、填空题(每空2 分,共 20 分)1、一个 C 程序必定从 _函数开始执行。2、C 语言的源程序必须通过和后,才能被计算机执行。3、采 用 结 构 化 程 序 设 计 方 法 编 写 的 程 序 一 般 有 三 种 基 本 结 构:顺 序 结构、和。4、若有定义float a23;则 a 数组所含数组元素个数是,a数组所占的字节数是。5、C 语言中的标识符只能由三种字符组成,它们是字母、和数字。6、以下程序的功能是用递归方法计算学生的年龄,已知第一位学生年龄最小,为10 岁,其余学生一个比一个大两岁,求第5 个学生的年龄。请填空。递归公式为:#include
9、int age(int n)int c;if(n=1)c=10;)1(2)1()1(01)(nnagennage名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 12 页 -4 else c=;return(c);void main()printf(“age:%dn”,);得分三、写出下列程序的运行结果。(在书写结果的表格中,假定每一格代表屏幕上一个字符的位置,请在表格内书写运行结果。每题4 分,共 5 题,共计20 分)1、void main()float x=8.7,y=10.5;int i,j;i=x+y;j=(int)x+(int)y;printf(x=%f,ny=%f,n
10、i=%d,nj=%dn,x,y,i,j);运行结果为:2、void main()int i=0;char st=1234567;while(i6)switch(sti)case 1:putchar(1);case 2:putchar(2);break;case 3:putchar(3);case 4:putchar(4+1);default:printf(%s,56);putchar(n);i+;名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 12 页 -5 运行结果为:3、#include int fb(int n)int i,t=1;for(i=1;i=n;i+)t=t*i;
11、return t;void main()int j=1;for(;j5;j+)printf(“j=%d,fb(%d)=%dn”,j,j,fb(j);运行结果为:4、void swap(int*p1,int*p2)int m;m=*p1;*p1=*p2;*p2=m;名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 12 页 -6 void main()int a=5,b=7,*ptr1,*ptr2;ptr1=&a,ptr2=&b;swap(ptr1,ptr2);printf(“*ptr1=%d,*ptr2=%dn”,*ptr1,*ptr2);printf(“a=%d,b=%d”,a,
12、b);运行结果为:5、void main()int i,f10;f0=f1=1;for(i=2;i10;i+)fi=fi-2+fi-1;for(i=0;i10;i+)if(i%4=0)printf(“n”);printf(“%3d”,fi);得分四、编程题(第一题8 分,第二题12 分,共 20 分)1、求 1+2+3+100。请编写程序。名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 12 页 -7 2、从键盘读入N 个整数,存入一个一维数组中,输出这N 个数,对这N 个数排序后重新输出,请编写程序。编程要求:1)输出排序前后的数据对比排序效果,一行输出5 个数;2)排序后为
13、升序,即 由小到大;3)程序框架采用函数调用 的形式,要求定义函数inpput、sort、output 分别实现数据输入、排序、输出功能;4)N 的大小可自由定义。名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 12 页 -10-11 第 1 学期 C 语言程序设计试卷A 参考答案一、单项选择题。(每道选择题只有一个正确答案,请将答案填在题前的括号内,填写其它地方无效。每题2 分,共 20 题,共计40 分。)1-5 BDCBC 6-7 ADDCB 11-15 CCDCA 16-20 DCDCA 二填空题(每空2 分,共 20 分)1.main 2.编译链接 3.选择(或分支)结
14、构循环结构4.16 24 5.下划线 6.age(n-1)+2 age(5)三、写出下列程序的运行结果。(在书写结果的表格中,假定每一格代表屏幕上一个字符的位置,请在表格内书写运行结果。每题4 分,共 5 题,共计 20 分)1、(4 分)运行结果为:x=8.7 0 0 0 0 0,Y=1 0.5 0 0 0 0,i=1 9,j=1 8 2、(4 分)运行结果为:1 2 2 3 5 5 6 5 5 6 5 6 5 6 3、(4 分)运行结果为:j=1,f b(1)=1 j=2,f b(2)=2 j=3,f b(3)=6 名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 12 页 -
15、1 j=4,f b(4)=2 4 4、(4 分)运行结果为:5、(4 分)运行结果为:四、编程题(第一题8 分,第二题12 分,共 20 分)1、求 1+2+3+100。请编写程序。2、从键盘读入N 个整数,存入一个一维数组中,输出这N 个数,对这N 个数排序后重新输出,请编写程序。编程要求:1)输出排序前后的数据对比排序效果,一行输出5 个数;2)排序后为 升序,即 由小到大;3)程序框架采用函数调用 的形式,要求定义函数inpput、sort、output 分别实现数据输入、排序、输出功能;4)N 的大小可自由定义。参考代码#include#define N 100 void main()
16、void input(int array,int n);void output(int array,int n);void sort(int array ,int n);int aN,m;m=N;input(a,m);output(a,m);sort(a,m);*p t r 1=7,*p t r 2=5 a=7,b=5 1 1 2 3 5 8 1 3 2 1 3 4 5 5 名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 12 页 -2 output(a,m);void input(int array,int n)/*输入函数*/int i;printf(“Please inp
17、ut the data.n”);for(i=0;in;i+)printf(“the array%d is:n”,i);scanf(“%d”,&arrayi);printf(“The inputing has been completed.n”);void output(int array,int n)/*输出函数*/int i;printf(“the array is:n”);for(i=0;in;i+)printf(“%8d”,arrayi);if(i+1)%5)=0)printf(“n”);void sort(int array,int)/*排序函数,顺序选择法*/int i,j,k,t;for(i;in1;i);for(ji;jn;j)if(arrayj arrayk)k=j;t=arrayk;arrayk=arrayi;arrayi=t void sort2(int array,int n)/*排序函数,泡泡法*/int j,i;名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 12 页 -3 for(j=0;jn-1;j+)/*排序的趟数*/for(i=0;iai+1)t=ai;ai=ai+1;ai+1=t;名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 12 页 -
限制150内