2009级C语言程序设计试卷_A(带答案,自动化2009级)
- 格式:doc
- 大小:144.00 KB
- 文档页数:11
09年C语言试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言的描述中,错误的是:A. C语言是一种高级语言B. C语言的源代码不能直接在计算机上运行C. C语言支持结构化编程D. C语言不支持面向对象编程答案:D2. 在C语言中,用于定义一个结构体的关键字是:A. structB. unionC. enumD. typedef答案:A3. 下列关于指针的描述中,正确的是:A. 指针可以存储地址B. 指针可以存储数据C. 指针不能存储地址D. 指针不能存储数据答案:A4. 在C语言中,用于定义一个函数的关键字是:A. intB. voidC. returnD. function答案:A5. 下列关于数组的描述中,错误的是:A. 数组可以存储相同类型的元素B. 数组的索引从0开始C. 数组的大小在定义时确定D. 数组的大小可以在运行时改变答案:D6. 在C语言中,用于控制循环的关键字是:A. ifB. whileC. forD. switch答案:C7. 下列关于文件操作的描述中,错误的是:A. 文件操作需要使用文件指针B. 文件操作需要包含stdio.h头文件C. 文件操作不需要使用文件指针D. 文件操作需要使用fclose函数关闭文件答案:C8. 在C语言中,用于定义一个枚举类型的关键字是:A. enumB. structC. unionD. typedef答案:A9. 下列关于函数参数的描述中,错误的是:A. 函数参数可以是常量B. 函数参数可以是变量C. 函数参数可以是数组D. 函数参数不可以是指针答案:D10. 在C语言中,用于定义一个联合体的关键字是:A. unionB. structC. enumD. typedef答案:A二、填空题(每题2分,共10分)1. C语言中,用于定义变量的关键字是________。
答案:int2. 在C语言中,用于定义一个宏的预处理命令是________。
北京理工大学珠海学院2009 ~ 2010学年第二学期《C语言程序设计(B)》期末试卷(A)适用年级专业:2009级机械电子工程、车辆工程、机械与自动化试卷说明:闭卷,考试时间120分钟注意:请将答案填写在答题纸上一、选择题(每题1分,共20分)1. C语言程序的执行,总是起始于_____。
A.程序中的第一条可执行语句B.main函数C.程序中的第一个函数D.包含文件中的第一个函数2. C 语言程序中可以对程序进行注释,注释部分必须用符号_____括起来。
A.‘{‘ 和’}’B.‘[‘和’]’C.“/*”和”*/”D.“*/”和”/*”3. 以下不能定义为用户标识符是。
A. MainB. _0C. _intD.sizeof4. 在C语言中,字符型数据在内存中以形式存放。
A.原码B.BCD码C.反码D.ASCII码5. 下列运算符中,要求运算对象必须是整数的是。
A. /B.*C. %D.!6. 多重if_else语句嵌套使用时,寻找与else配套的if方法是。
A. 上面最近的的ifB. 其上最近的没有其他else配对的ifC. 下面最近的ifD. 同行上的if7. 下述表达式中,可以正确表示x≤0或x≥1的关系。
A.(x>=1) | | (x<=0)B.x>=1 | x<=0C.x>=1 && x<=0D.(x>=1) && (x<=0)8. 有以下程序void main(){ char a='a',b;printf("%c,",++a);printf("%c\n",b=a++);}后的输出结果是A. b,bB. b,cC. a,bD. a,c9. 逗号表达式(a=3*5,a*4),a+15的值是。
A.15B.60C.30D.不确定10. 有如下程序void main(){ int i,sum;for(i=1;i<=3;sum++)sum+=i;printf(“%d\n”,sum);}该程序的执行结果是。
2009级C语言程序设计期末考试试题答案一、选择题(15分,每题1分)1—5、C A A A A 6-10、 B C A D D11-15 B A D D C二、判断题(正确的打√,错误的打×,每题1分,共10分)1、√2、×3、×4、√5、√6、×7、×8、√9、×10、√三、阅读程序,写出程序的执行结果(10个小题,每题2。
5分,共25分)1、hello2、2, 2,23、p=104、4,35、a1=1 x1=3 x2=3 x3=46、t=10,row=2,column=17、007.58、12 15 189、1,210、10,2020,10四、程序填空,(每空2分,共30分)【1】〈.stdio.h>【2】x>0【3】x<amin【4】<0【5】i【6】float item,sum【7】&n【8】item=item/i【9】return (1)【10】n*fac(n—1)【11】math。
h【12】m〈200;m++【13】j〈=root【14】break【15】k%10==0五、编程题(2个小题,共20分)1、#include <stdio。
h〉#include <math。
h>int main(){int i;for(i=100;i〈1000;i++)if(flower(i)==1)printf(“%d is a flower—number”, i);return 0;}int flower( int n){int a,b,c,s;a=n/100;b=(n-100*a)/10;c=n%10;s=pow(a,3.0)+pow(b,3。
0)+pow(c,3。
0);if(s==n)rerutn(1);else return (0);}2、选择排序main(){int i;int a[10];for(i=0;i<10;i++)scanf(“%d" &a[i]);selectsort(a,10);for(i=0;i<10;i++)printf(“%d" a[i]);}void selectsort(int s[ ],int n){int i,j,k,t;for(i=0;i〈n—1;i++){ k=i;for(j=i+1;j〈n;j++)if(s[j]〈s[k]) k=j;if(k!=i){t=s[k]; s[k]=s[i];s[i]=t;}}}冒泡排序#include <stdio。
机密★启用前2009年3月全国计算机等级考试二级笔试试卷C语言程序设计(考试时间90分钟,满分100分)一、选择题((1)-(10)、(21)-(40)每题2分,(11)-(20)每题1分,共70分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应的位置上,答在试卷上不得分。
(1)下列叙述中正确的是A)栈是“先进先出”的线性表B)队伍是“先进先出”的线性表C)循环队列是非线性结构D)有序线性表既可以采用顺序存储结构,也可以采用链式存储结构(2)支持子程序调用的数据结构是A)栈 B)树 C)队列 D)二叉树(3)某二叉树有5个度为2的结点,则该二叉树的叶子结点数是A)10 B)8 C)6 D)4(4)下列排序方法中,最坏情况下比较次数最少的是A)冒牌排序 B)操作系统 C)直接插入排序 D)堆排序(5)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件),下面属于应用软件的是A)编译程序 B)操作系统 C)教务管理系统 D)汇编程序(6)下面叙述中错误的是A)软件测试的目的是发现错误并改正错误B)对被调试的程序进行“错误定位”是程序调试的必要步骤、C)程序调试通常也成为DebugD)软件测试应严格执行测试计划,排除测试的随意性(7)耦合性和内聚性是对模块独立性度量的两个标准。
下列叙述中正确的是A)提高耦合性降低内聚性有利于提高模块的独立性B)降低耦合性提高内聚性有利益提高模块的独立性C)耦合性是指一个模块内部各个元素间彼此结合的紧密程度D)内聚性是指模块间互相连接的紧密程度(8)数据库应用系统中的核心问题是A)数据库设计 B)数据库系统设计C)数据库维护 D)数据库管理员培训(9)有两个关系R、S如下:有关系R通过运算得到关系S,则所使用的运算为A)选择 B)投影C)插入 D)连接(10)将E-R图转换为关系模式时,实体和联系都可以表示为A)属性 B)键 C)关系 D)域(11)以下选项中合法的标识符是A)l_l B)l-l C)_ll D)l_ _(12)若函数中有定义语句:int k;,则A)系统将自动给k赋初值0 B)这时k中的值无定义C)系统将自动给k赋初值-1 D)这时k中无任何值(13)以下选项中,能用作数据常量的是A)o115 B)0118 C)1.5e1.5 D)115L(14)设有定义:int x=2;,以下表达式中,值不为6的是A)x*=x+1 B)x++,2*x C)x*=(1+x) D)2*x,x+=2(15)程序段:int x=12;double y=3.;printf(“%d%8.6f”,x,y);的输出结果是:A)123. B)12 3. C)12,3. D)123.(16)若有定义语句:double x,y,*px,*py;执行了px=&x;py=&y;之后,正确的输入语句是A)scanf(“%f%f”,x,y); B)scanf(“%f%f”,&x,&y);C)scanf(“%1f%1e”,px,py); D)scanf(“%1f%1f”,x,y);(17)以下是if语句的基本形式:if(表达式) 语句其中“表达式”A)必须是逻辑表达式 B)必须是关系表达式C)必须是逻辑表达式或关系表达式 D)可以是任意合法的表达式(18)有以下程序#include <stdio.h>main(){ int x;scanf(“%d”,&x);if(x<=3) ; elseif(x!=10) printf(“%d\n”,x);}程序运行时,输入的值在哪个范围才会有输出结果A)不等于10的整数 B)大于3且不等于10的整数C)大于3或等于10的整数 D)小于3的整数(19)有以下程序#include <stdio.h>main(){ int a=1,b=2,c=3,d=0;if (a==1 && b++==2)if (b!=2||c==!=3)printf(“%d,%d,%d\n”,a,b,c);else printf(“%d,%d,%d\n”,a,b,c);else printf(“%d,%d,%d\n”,a,b,c);}程序运行后输出的结果是A)1,2,3 B)1,3,2 C)1,3,3 D)3,2,1(20)以下程序段中的变量已正确定义for(i=0;i<4;i++,i++)for(k=1;k<3;k++);printf(“*”);程序段输出的结果是A)******** B)**** C)** D)*(21)有以下程序#include <stdio.h>main(){ char *s={“ABC”};do{ printf(“%d”,*s%10); s++;}while(*s);}注意:字母A的ASCⅡ码值为65。
桂林电子科技大学试卷2009-2010 学年第 2 学期课号0921306等课程名称C语言程序设计A (A卷; 闭卷)适用班级(或年级、专业)7院09级考试时间120 分钟班级学号姓名第一部分:基础知识(20题,共20分)1、表达式18/4*2/8值的数据类型为()A)int B)float C)double D)不确定2、在C语言中,int, char和short int三种类型变量所占用的内存大小是()。
A)均为2个字节 B)由用户自己定义 C)由所用机器的字长决定 D)是任意的3、C语言中函数返回值的类型是()A)return语句中的表达式类型 B)调用函数的类型C)总是int型 D)定义函数时所指定的函数类型4、凡是在函数中未指定存储类别的变量,其隐含的存储类别是()A)自动B)静态C)外部D)寄存器5、以下不正确的描述是()A)break语句只能用于循环语句和switch语句B)在switch语句中,break语句的作用也可用continue语句来替代C)在循环语句中,使用continue语句是为了结束本次循环,而不是终止循环的执行D)在循环语句中,使用break语句是为了使流程跳出循环体,提前结束循环6、以下说法正确的是()A)输入项可以为一实型常量,如scanf("%f",3.5);B)只有格式控制,没有输入项,也能进行正确输入,如scanf("a=%d,b=%d”);C)当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf (“%4.2f",&f);D)当输入数据时,必须指明变量的地址,如scan f(“%f",&f);7、己知各变量的类型说明如下:int i=8,k,a,b;unsigned long w=55;double x=1.42,y=5.2;则以下符合c语言语法的表达式是()A)a+=a-=(b=4)*(a=3) B)a=a*3=2C)x%(-3) D)y=float(i)8、已知ch是字符型变量,下面不正确的赋值语句是()A)ch=‟a+b‟; B) ch=‟\0‟; C)ch=‟7‟+‟9‟; D)ch=5+99、有输入语句:scanf("a=%d,b=%d,c=%d",&a,&b,&c),为使变量a的值为1,b为3,c为2,从键盘输入数据的正确形式应当是______。
一、单项选择题(1’×40=40分)1.下面哪种方法不能用来描述算法:【】A)自然语言 B) 流程图 C)数据结构 D)计算机语言编写的程序2.以下叙述中错误的是【】A)C语言源程序经编译后生成后缀为.obj的目标程序B)C程序经过编译、连接之后才能形成一个真正可执行的二进制机器指令文件C)用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中D)C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令3.按照C语言规定的用户标识符命名规则,不能出现在标识符中的是【】A)大写字母B)连接符C)数字字符D)下划线4.以下不合法的用户标识符是【】A)j2_KEY B)double C)f4d D)_8_5.以下叙述中错误的是【】A)C程序必须由一个或一个以上的函数组成B)函数调用可以作为一个独立的语句存在C)若函数有返回值,必须通过return语句返回D)函数形参的值也可以传回给对应的实参6.对于一个正常运行的C程序,以下叙述中正确的是【】A)程序的执行总是从main函数开始,在main函数结束B)程序的执行总是从程序的第一个函数开始,在main函数结束C)程序的执行总是从main函数开始,在程序的最后一个函数中结束D)程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束7.以下叙述中正确的是【】A)预处理命令行必须位于C源程序的起始位置B)在C语言中,预处理命令行都以"#"开头C)每个C程序必须在开头包含预处理命令行:#include<stdio.h>D)C语言的预处理不能实现宏定义和条件编译的功能8.以下叙述不正确的是【】A)分号是C语言的必要组成部分B)C程序的注释可以写在语句的后面C)函数是C程序的基本单位D)主函数的名字不一定用main表示9.下列说法不正确的是【】A) 定义变量必须要有数据类型B)任何变量必须先定义后使用C)所有的变量定义时系统并不分配相应的内存,而是在使用的时候才分配D) 常量可以赋值给一个变量10.设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式执行后k值不相同的是【】A)k++ B)k+=1 C)++k D)k+111.以下叙述中正确的是【】A)break语句只能用于switch语句体中B) continue语句的作用是:使程序的执行流程跳出包含它的所有循环C) break 语句只能用在循环体内和switch语句体内D) 在循环体内使用break语句和continue语句的作用相同12.在C语言中,函数返回值的类型最终取决于【】A)函数定义时在函数首部所说明的函数类型B)return语句中表达式值的类型C)调用函数时主函数所传递的实参类型D)函数定义时形参的类型13.已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,以下不能将变量c中大写字母转换为对应小写字母的语句是【】A) c=tolower(c) /* tolower( )是将大写字母转换为小写字母的函数 */B) c=c+32C) c=c-‘A’+‘a’D) c=(‘A’+c)-‘a’14.下面结构体的定义语句中,错误的是:【】A) struct student{ char name[20]; char sex; int age;}; struct student s1;B) struct student{ char name[20]; char sex; int age;} struct student s1;C) struct student{ char name[20]; char sex; int age;} s1;D) struct { char name[20]; char sex; int age;} s1;15.设有定义:char *p; 以下选项中能够使字符型指针p正确指向一个字符串的是:【】A) char str[ ]=”China”; p=str[0]; B) scanf(“%s”, p);C) p=getchar(); D) p=”string”;16.阅读以下程序#include <stdio.h>void main(){ int case; float printF;printf(“请输入2个数:”);scanf(“%d%f”, &case, &printF);printf(“%d %f”, case, printF);}该程序在编译时出现错误,其出错原因是:【】A)定义语句出错,case是关键字,不能用作用户自定义标识符B)定义语句出错,printF不能用作用户自定义标识符C)定义语句无错,scanf不能作为输入函数使用D)定义语句无错,printf不能输出case的值17.表达式3.6-5/2+1.2+5%2的值是【】A)4.3 B)4.8 C)3.3 D)3.818.sacnf(“%s%d,%f”,s,&i,&f),要想s=“Cumtb”, i=30, f=5.0;下面哪种输入方式能使变量得到正确的结果:【】A) cumtb 30 5 B) Cumtb 30 5.0 C) Cumtb 30,5 D) cumtb 30.0 5.019.以下数组定义中错误的是【】A)int x[][3]={0};B)int x[2][3]={{l,2},{3,4},{5,6}};C)int x[][3]={{l,2,3},{4,5,6}};D)int x[2][3]={l,2,3,4,5,6};20.定义数组int a[10],若整型类型变量长度是2个字节,数组a的首地址是0,则&a[5]的值是:【】A) 5 B) 10 C) 6 D) 1221.要求通过while循环不断读入字符,当读入字母N时结束循环。
2009-2010-2《C语言程式设计》参考答案(A卷)一、单项选择题(本题共30个小题,每题1分,共30分)1.C2.D3.D4.B5.C6.A7.C8.D9.D 10.A 11.B 12.D 13.D 14.B 15.D 16.B 17.C 18.C 19. D 20.B 21.A 22.A 23.A 24.B 25.B26.C 27.A 28.C 29.A 30.D二、程序填空题(本题共10个空,每空3分,共30分)三、读出下列程序,写出程序的运行结果(每题2分,共20分)1) 2 2) 143) accbbxxxyy,bbxxxyy(写对一个得1分) 4) 555) 29 6) 147) 3000 8) 329) 24 10) 4四、程序设计(共2题,第一题10分,第二题10分,共20分)编程题的统改基本思想要求:1.基本结构和算法完全正确,语法有误的统一扣2分;例如:31题的编程题s+=1.0/t;如果写为1/t也扣2分。
2.如果基本结构和算法都不正确的,但语法格式写的符合C语言的语法格式要求的给3分。
(即辛苦分)3. 算法正确,语法不正确的给6分。
31. 编程实现求和:1111......121231234 (21)s=+++++++++++main(){double s=0;int i,j,t;for(i=1;i<=21;i++){ t=0;for(j=1;j<=i;j++)t=t+j;s+=1.0/t;}printf("%f",s);}32.请编写函数fun,该函数的功能是:移动一维数组中的内容;若数组中有m个整数,要求把下标从0到t(t≤m-1)的数组元素平移到数组的最后。
int i,j,w;for(i=t;i<=m-1;i++){w=s[m-1];for(j=m-2;j>=0;j--)s[j+1]=s[j];s[0]=w;}。
天津工业大学200 9 ~201 0 学年第 2 学期高级语言程序设计(C语言) 试卷(A卷答案)学院班级学号姓名注意事项:1、本试卷共12 页,满分为100 分,考试时间为110 分钟。
2、标准答题卡使用2B铅笔涂写;文字题答题时请使用蓝、黑钢笔或圆珠笔,不得使用红颜色墨水笔。
一、单项选择题:(每题 1 分,共40 分)一、单项选择题:(每题 1 分,共40 分)(说明:请将正确答案按照题干上【】内的序号涂写“标准答题卡”)1.根据C语言的规定,为变量取名时,不能使用的符号是【1】。
A) 数字字符B) 大写字母C) 下划线D) 减号2.一个C语言程序的执行是【2】。
A) 从第一个函数开始,到最后一个函数结束B) 从main()函数开始,到最后一个函数结束C) 从main()函数开始,到main()函数结束D) 从第一个语句开始,到最后一个语句结束3.执行下列程序段后,输出结果是【3】。
int m=013;printf("%d,%o,%x\n",m,m,m);A) 19,23,13 B) 11,13,b C) 13,15,d D) 13,13,134.表达式sizeof(double)的值是【4】。
A) 1 B) 2 C) 4 D) 85.设有变量定义语句char ch; 则能够正确地为变量ch输入数据的是【5】。
A) scanf("%c",&ch); B) getchar(ch);C) scanf("%c",ch); D) putchar(ch);6.设变量a是int型、f是float型、d是double型、c是char型,则表达式c+a-f/d的数据类型是【6】。
A) char型B) int型C) float型D) double型7.有变量定义语句int k=4,m; 执行语句m=k--; 后,变量m、k的值是【7】。
A) m=3,k=3 B) m=4, k=3 C) m=3,k=4 D) m=4,k=48.设int i=2,j=1,k=3,则表达式i&&(i+j)&k|i+j的值是【8】。
华东师范大学期末试卷(A)2008 —2009学年第二学期课程名称:C语言程序设计学生姓名:学号:______________专业:年级/班级 2007级课程性质:专业必修一二三四五六总分阅卷人签名(请将所有答案写在答题纸上)一、填空题(每空1分,共10分)1. 设x和y均为int型变量,且x=2,y=3,则表达式1.0+x/y的值为1.0。
2. 有如下输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式应是a=1,b=3,c=2 。
3. 变量y满足以下两条件中的任意一个:①能被4整除,但不能被100整除;②能被400整除。
请用逻辑表达式表示所给条件:___(y%4==0&&y%100!=0)||(y%400==0)_ __4. 在内存中存储“A”要占用 2 个字节,存储‘A’要占用 1 个字节。
5. C语言编译系统在判断一个量是否为“真”时,以0代表“假”,以非0代表“真”。
6. 结构化程序设计方法规定程序或程序段的结构有三种:顺序结构、选择结构和循环结构。
7. 设有“int x=1;”,则“x>0 ? 2*x+1 : 0”表达式的值是___3_______。
8. C语言的表达式与语句的区别在于 C语言的语句是以分号结束的,而表达式是没有分号的。
二、选择题(每小题1分,共20分)1. 以下关于C程序执行叙述正确的是( A )A)程序的执行总是从main函数开始,在main函数结束B)程序的执行总是从程序的第一个函数开始,在main函数结束C)程序的执行总是从main函数开始,在程序的最后一个函数中结束D)程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束2. 下列叙述中错误的是( D )A)计算机不能直接执行用C语言编写的源程序B)C程序经C编译程序编译后,生成后缀为.obj的文件是一个二进制文件C)后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件D)后缀为.obj和.exe的二进制文件都可以直接运行3. 设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是( A )A)k++ B) k+=1 C) ++k D) k+14. 若用数组名作为函数调用时的实参,则实际上传递给形参的是(A)。
C语言程序设计练习二姓名学号_________得分_____一、选择填空。
下列各题A、B、C、D四个有选项中,只有一个选项是正确的,A) 数组的大小是固定的,但可以有不同类型的数组元素B) 数组的大小是可变的,但所有数组元素的类型必须相同C) 数组的大小是固定的,但所有数组元素的类型必须相同D) 数组的大小是可变的,但可以有不同类型的数组元素2.当数组名作为函数参数时,传递给被调函数的是。
A) 数组元素的值B) 数组的首地址C) 数组元素的个数D) 数组名的地址3.下面关于字符串的说明中,错误的是。
A) char str[20]=“FORTRAN”;B) char str[ ]={…F‟,…O‟,…R‟,…T‟,…R‟,…A‟,‟N‟,‟\0‟};C) char str1[7]=“FORTRAN”;D) char str1[ ]=“FORTRAN”;4.定义int a[5][6]; 后,数组a的第0个元素是a[0][0], 第12个元素是______。
A) a[1][5] (B)a[2][0] (C) a[2][1] (D) a[3][0]5.以下叙述中正确的是_______A)全局变量的作用域一定比局部变量的作用域范围大B)静态(static)类别变量的生存期贯穿于整个程序的运行期间C)函数的形参都属于全局变量D)未在定义语句中赋初值的auto变量和static变量的初值都是随机值6.以下能对二维数组a进行正确初始化的语句是_________A) int a[2][ ]={{1,0,1},{5,2,3}}; B) int a[ ][3]={{1,2,3},{4,5,6}};D)a[2][4]={{1,2,3},{4,5},{6}}; D) int a[ ][3]={{1,0,1},{ },{1,1}};7.有字符数组a[80]和b[80],则正确的输出语句是_________A) puts(a,b); B) printf(”%s,%s”,a[ ],b[ ]);C) putchar(a,b); D) puts(a) ; puts(b);8.函数调用:strcat(strcpy(str1,str2),str3)的功能是_________.A) 将串str1复制到串str2中后再连接到串str3之后B) 将串str1连接到串str2之后再复制到串str3之后C) 将串str2复制到串str1之后再将串str3连接到串str1之后D)将串str2连接到串str1之后再将串str1复制到串str3中9.C语言程序由函数组成, _______。
2009年上海市高等学校计算机等级考试试卷及答案A卷2009年上海市高等学校计算机等级考试试卷二级 C语言程序设计( A 卷)一、单选题1.执行下列语句序列后,不可能出现的运行结果是___C______。
int n;scanf( "%d", &n);switch ( n ){case 1:case 2: putchar('X');case 3:case 4: putchar('Y'); break;default: putchar('Z');A. 显示:zB. 显示:xyC. 显示:xD. 显示:y2.设a,b为整型变量, 且二者均不为0, 以下关系表达式中恒成立的是__C____。
A. a/b*b/a==1B. a/b*b==aC. a*b/a==bD. a*b/ a*b ==13.设有定义:int x=10,y=20,z=30; 则执行下列语句后的结果是___B____。
if ( x>y ) z=x;x=y; y=z;printf("%d,%d,%d",x, y, z );A. 20,30,20B. 20,30,30C. 20,30,10D. 10,20,304.下列程序的输出结果是__B___。
main(){int a = 011;printf( "%d\", ++a );}A. 9B. 10C. 11D. 125.设 x, y 和 z 是int型变量,且 x=3, y=4, z= 5,则下面表达式中值为0的是__B__。
A. !(x<y)&&!z||1< bdsfid="110" p=""></y)&&!z||1<>B. x==y&&y!=zC.x||y+z&&y-zD. y&&’y’6.以下所列的各函数声明中,正确的是___D____。
2009年9月全国计算机等级考试二级笔试试卷C语言程序设计(考试时间90分钟,满分100分)一、选择题((1)—(10)、(21)—(40)每题2分,(11)—(20)每题1分,共70分)下列各题A)、B)、C)、D)四个选项中,只有一个只有一个选项是正确的。
请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。
(1)下列数据结构中,属于非线性结构的是A)循环队列B)带链队列C)二叉树D)带链栈(2)下列数据结构中,能够按照“先进后出”原则存取数据的是A)循环队列 B)栈C)队列D)二叉树(3)对于循环队列,下列叙述中正确的是A)队头指针是固定不变的B)队头指针一定大于队尾指针C)队头指针一定小于队尾指针D)队头指针可以大于队尾指针,也可以小于队尾指针(4)算法的空间复杂度是指A)算法在执行过程中所需要的计算机存储空间B)算法所处理的数据量C)算法程序中的语句或指令条数D)算法在执行过程中所需要的临时工作单元数(5)软件设计中划分模块的一个准则是A)低内聚低耦合B)高内聚低耦合C)低内聚高耦合D)高内聚高耦合(6)下列选项中不属于结构化程序设计原则的是A)可封装 B)自顶向下C)模块化 D)逐步求精(7)软件详细设计产生的图如下:该图是A)N-S图B)PAD图C)程序流程图 D)E-R图(8)数据库管理系统是A)操作系统的一部分B)在操作系统支持下的系统软件C)一种编译系统D)一种操作系统(9)在E-R图中,用来表示实体联系的图形是A)椭圆形B)矩形C)菱形D)三角形(10)有三个关系R,S和T如下:T其中关系T由关系R和S通过某种操作得到,该操作为A)选择B)投影C)交D)并(11)以下叙述中正确的是A)程序设计的任务就是编写程序代码并上机调试B)程序设计的任务就是确定所用数据结构C)程序设计的任务就是确定所用算法D)以上三种说法都不完整(12)以下选项中,能用作用户标识符的是A)void B)8_8 C)_0_ D)unsigned(13)阅读以下程序#include <stdio.h>main(){ int case; float printF;printf("请输入2个数:");scanf("%d %f",&case,&printF);printf("%d %f\n",case,printF);}该程序编译时产生错误,其出错原因是A)定义语句出错,case是关键字,不能用作用户自定义标识符B)定义语句出错,printF不能用作用户自定义标识符C)定义语句无错,scanf不能作为输入函数使用D)定义语句无错,printf不能输出case的值(14)表达式:(int)((double)9/2)-(9)%2的值是A)0 B)3 C)4 D)5(15)若有定义语句:int x=10;,则表达式x-=x+x的值为A)-20 B)-10 C)0 D)10(16)有以下程序#include <stdio.h>main(){ int a=1,b=0;printf("%d,",b=a+b);printf("%d\n",a=2*b);}程序运行后的输出结果是A)0,0 B)1,0 C)3,2 D)1,217)设有定义:int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是A)if(a>b) c=a,a=b,b=c; B)if(a>b) {c=a,a=b,b=c;}C)if(a>b) c=a;a=b;b=c; D)if(a>b) {c=a;a=b;b=c;}(18)有以下程序#include <stdio.h>main(){ int c=0,k;for (k=1;k<3;k++)switch (k){ default: c+=k;case 2: c++;break;case 4: c+=2;break;}printf("%d\n",c);}程序运行后的输出结果是A)3 B)5 C)7 D)9(19)以下程序段中,与语句:k=a>b?(b>c?1:0):0;功能相同的是A)if((a>b)&&(b>c)) k=1; B)if((a>b)||(b>c) k=1;else k=0; else k=0;C)if(a<=b) k=0; D)if(a>b) k=1;else if(b<=c) k=1; else if(b>c) k=1;else k=0;(20)有以下程序#include <stdio.h>main(){ char s[]={"012xy"};int i,n=0;for(i=0;s[i]!=0;i++)if(s[i]>='a' &&s[i]<='z') n++;printf("%d\n",n);}程序运行后的输出结果是A)0 B)2 C)3 D)5(21)有以下程序#include <stdio.h>main(){ int n=2,k=0;while(k++&&n++>2);2009年9月全国计算机等级考试二级C语言程序设计笔试试卷第3页(共9页)printf("%d %d\n",k,n);}程序运行后的输出结果是A)0 2 B)1 3 C)5 7 D)1 2(22)有以下定义语句,编译时会出现编译错误的是A)char a='a'; B)char a='\n'; C)char a='aa'; D)char a='\x2d';(23)有以下程序#include <stdio.h>main(){ char c1,c2;c1='A'+'8'-'4';c2='A'+'8'-'5';printf("%c,%d\n",c1,c2);}已知字母A的ASCII码为65,程序运行后的输出结果是A)E,68 B)D,69 C)E,D D)输出无定值(24)有以下程序#include <stdio.h>void fun(int p){ int d=2;p=d++; printf("%d",p);}main(){ int a=1;fun(a); printf("%d\n",a);}程序运行后的输出结果是A)32 B)12 C)21 D)22(25)以下函数findmax拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能#define MIN -int findmax (int x[],int n){ int i,max;for(i=0;i<n;i++){ max=MIN;if(max<x[i]) max=x[i];}return max;}造成错误的原因是A)定义语句int i,max;中max未赋初值B)赋值语句max=MIN;中,不应给max赋MIN值C)语句if(max<x[i]) max=x[i];中判断条件设置错误D)赋值语句max=MIN;放错了位置(26)有以下程序#include <stdio.h>main(){ int m=1,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf("%d,%d,%d,%d\n",m,n,*p,*q);}程序运行后的输出结果是A)1,2,1,2 B)1,2,2,1 C)2,1,2,1 D)2,1,1,2(27)若有定义语句:int a[4][10],*p,*q[4];且0≤i<4,则错误的赋值是A)p=a B)q[i]=a[i] C)p=a[i] D)p=&a[2][1](28)有以下程序#include <stdio.h>#include <string.h>main(){ char str[ ][20]={"One*World","One*Dream!"},*p=str[1];printf("%d,",strlen(p));printf("%s\n",p);}程序运行后的输出结果是A)9,One*World B)9,One*Dream! C)10,One*Dream! D)10,One*World(29)有以下程序#include <stdio.h>main(){ int a[ ]={2,3,5,4},i;for(i=0;i<4;i++)switch(i%2){ case 0:switch(a[i]%2){case 0:a[i]++;break;case 1:a[i]--;}break;case 1:a[i]=0;}for(i=0;i<4;i++) printf("%d",a[i]); printf("\n");}程序运行后的输出结果是A)3 3 4 4 B)2 0 5 0 C)3 0 4 0 D)0 3 0 4(30)有以下程序#include <stdio.h>#include <string.h>main(){ char a[10]="abcd";printf("%d,%d\n",strlen(a),sizeof(a));}2009年9月全国计算机等级考试二级C语言程序设计笔试试卷第5页(共9页)程序运行后的输出结果是A)7,4 B)4,10 C)8,8 D)10,10(31)下面是有关C语言字符数组的描述,其中错误的是A)不可以用赋值语句给字符数组名赋字符串B)可以用输入语句把字符串整体输入给字符数组C)字符数组中的内容不一定是字符串D)字符数组只能存放字符串(32)下列函数的功能是fun(char *a,char *b){ while((*b=*a)!='\0') {a++,b++;} }A)将a所指字符串赋给b所指空间B)使指针b指向a所指字符串C)将a所指字符串和b所指字符串进行比较D)检查a和b所指字符串中是否有'\0'(33)设有以下函数void fun(int n,char * s) {……}则下面对函数指针的定义和赋值均是正确的是A)void (*pf)(); pf=fun; B)viod *pf(); pf=fun;C)void *pf(); *pf=fun; D)void (*pf)(int,char);pf=&fun;34)有以下程序#include <stdio.h>int f(int n);main(){ int a=3,s;s=f(a);s=s+f(a);printf("%d\n",s);}int f(int n){ static int a=1;n+=a++;return n;}程序运行以后的输出结果是A)7 B)8 C)9 D)10(35)有以下程序#include <stdio.h>#define f(x) x*x*xmain(){ int a=3,s,t;s=f(a+1);t=f((a+1));printf("%d,%d\n",s,t);}程序运行后的输出结果是A)10,64 B)10,10 C)64,10 D)64,64(36)下面结构体的定义语句中,错误的是A)struct ord {int x;int y;int z;}; struct ord a;B)struct ord {int x;int y;int z;} struct ord a;C)struct ord {int x;int y;int z;} a;D)struct {int x;int y;int z;} a;(37)设有定义:char *c;,以下选项中能够使字符型指针c正确指向一个字符串的是A)char str[ ]="string";c=str; B)scanf("%s",c);C)c=getchar(); D)*c="string";(38)有以下程序#include <stdio.h>#include <string.h>struct A{ int a; char b[10]; double c;};struct A f(struct A t);main(){ struct A a={1001,"ZhangDa",1098.0};a=f(a);printf("%d,%s,%6.1f\n",a.a,a.b,a.c);}struct A f(struct A t){ t.a=1002;strcpy(t.b,"ChangRong");t.c=1202.0;return t;}程序运行后的输出结果是A)1001,ZhangDa,1098.0 B)1002,ZhangDa,1202.0C)1001,ChangRong,1098.0 D)1002,ChangRong,1202.0(39)若有以下程序段int r=8;printf("%d\n",r>>1);输出结果是A)16 B)8 C)4 D)2(40)下列关于C语言文件的叙述中正确的是A)文件由一系列数据依次排列组成,只能构成二进制文件B)文件由结构序列组成,可以构成二进制文件或文本文件C)文件由数据序列组成,可以构成二进制文件或文本文件D)文件由字符序列组成,其类型只能是文本文件二、填空题(每空2分,共30分)请将每空的正确答案写在答题卡【1】至【15】序号的横线上,答在试卷上不得分。
试卷代号:1253座位号E 中央广播电视大学2008-2009学年度第一学期“开放本科”期末考试C语言程序设计A试题2009年1月--------------- 一、单选题(每小题2分,共20分)1.由C语言目标文件连接而成的可执行文件的缺省扩展名为()。
A. cppB. exeC. objD. c2.设有两条语句为“int a = 12; a+=a * a;”,则执行结束后,a的值为()。
A. 12B. 144C. 156D. 2883.带有随机函数调用的表达式rand()%20的值在()区间内。
A. 1 — 19B. 1 〜20C. 0—19D. 0—204.for循环语句“for(i = 0; i<n; i+ = 2) S;”中循环体S语句被执行的次数为()。
A. (n+l)/2B. n/2+1C. n/2一1D. n—15.在下列的字符数组定义中,存在语法错误的是()。
A. char a[20] = "abcdefg";B. char a[]="x + y = 55.C. ch ar a[15]= {' 1',‘2’} ;D. char a[10]=‘5’;6.若有一个函数原型为"double关fimctionO”,则它的返回值类型为()。
A.实数型B.实数指针型C.函数指针型D.数组刑13817.在C语言中,所有预处理命令都星以()符号开头的。
A. *B.甘C. &. I). @8.假定整数指针p所指数据单元的值为30, p+1所指数据单元的值为40,则执行*p++后,P所指数据单元的值为()oA. 40B. 30C. 70D. 109.若要使P指向二维整型数组a[10][20],则p的类型为()。
A. int *B. int * *C. int * [20] I). int( *)[20]10.表示文件结束符的符号常量为()。
天津工业大学200 9 ~201 0 学年第 1 学期高级语言程序设计(C语言)试卷(A)学院班级学号姓名注意事项:1、本试卷共11 页,满分为100 分,考试时间为110 分钟。
2、标准答题卡使用2B铅笔涂写;文字题答题时请使用蓝、黑钢笔或圆珠笔,不得使用红颜色墨水笔。
一、单项选择题:(每题 1 分,共40 分)(说明:请将正确答案按照题干上【】内的序号涂写“标准答题卡”)1.以下标识符中,不能够作为变量名使用的是【1】。
A) float B) _123C) Sum D) X_Y12.一个C语言程序的执行是【2】。
A) 从第一个函数开始,到最后一个函数结束B) 从main()函数开始,到最后一个函数结束C) 从main()函数开始,到main()函数结束D) 从第一语句开始,到最后一个语句结束3.表达式sizeof(float)的值是【3】。
A) 1 B) 2 C) 4 D) 84.在C语言中,数值常量0x9f对应十进制值是【4】。
A) 160 B) 87C) 9f D) 1595.在C语言中,运算对象必须是整型数据的运算符是【5】。
A) / B) % C) && D) <=6.数学表达式x≥y≥z,改写为C语言表达式后,正确的写法是【6】。
A) x>=y>=z B) (x>=y) && (y>=z)C) (x>=y) & (y>=z) D) (x>=y) AND (y>=z)7.已知int x=6; 执行语句x+=x-=x*x; 后,变量x的值是【7】。
A) -60 B) -24 C) 36 D) 608.若int x=4,y=2;则表达式x<y?x++:y++的值是【8】。
A) 2 B) 3 C) 4 D) 59.若有定义语句char ch='\072'; 则变量ch 【9】。
A) 定义错误B) 包含1个字符C) 包含3个字符D) 包含4个字符10.已知字母B的ASCII码值为66,则运行下面程序段后,输出结果是【10】。
char ch1; ch1='B'+'5'-'3'; printf("%d,%c",ch1,ch1);A) D,D B) 68,DC) D,68 D) 68,6811.下面程序段的运行结果是【11】。
int a=-10,b=-3;printf("%d\n",(a-b,a+b));A) -4 B) -7 C) -10 D) -1312.下列程序段的输出结果是【12】。
int m=027;printf("%d\n",m--);A) 27 B) 26C) 23 D) 2213.下列程序段的输出结果是【13】。
int a=5;if( a++ > 5 ) printf("%d\n", a );else printf("%d\n", a-- );A) 4 B) 5C) 6 D) 714.下列程序段的运行结果是【14】。
int x=2,y=-1,z=2;if(x<y)if(y<0) z=0;else z+=1;printf("%d\n",z);A) 0 B) 1C) 2 D) 315.下列程序段的运行结果是【15】。
int a=10;switch(a){ case 11: a+=1;case 10: a+=1;case 9: a+=1; break;case 12: a+=1; }printf("a=%d\n",a);A) 11 B) 12C) 13 D) 1416.若变量已正确定义,则以下能正确计算f=n!的程序段是【16】。
A) f=1;for(i=1;i<=n;i++) f*=i; B) f=1;for(i=n;i>1;i++) f*=i;C) f=0;for(i=1;i<=n;i++) f*=i; D) f=0;for(i=n;i>=2;i--) f*=i;17.C语言中,while循环与do-while循环的主要区别是【17】。
A) do-while循环的循环体只能是复合浯句,但while循环可以不是B) while循环的循环体只能是复合语句,但do-while循环可以不是C) do-while的循环体至少执行一次,但while循环不一定D) while的循环体至少被执行一次,但do-while循环不一定18.下列程序段中的语句printf("*"); 共执行【18】次。
int i,j;for(i=1;i<=3;i++)for(j=1;j<=i;j++)printf("*");A) 1 B) 2 C) 3 D) 619.语句while(!y)等价于【19】。
A) while(y==0) B)while( y!=0)C) while(y==1) D) while(y!=1)20.下列程序段的运行结果是【20】。
int i,a[10];for(i=9;i>=0;i--)a[i]=10-i;printf("%d%d%d",a[2],a[5],a[8]);A) 258 B) 369 C) 741 D) 852 21.若有说明int a[ ][3]={1,2,3,4,5,6,7}; 则数组a第一维的大小是【21】。
A) 1 B) 3 C) 4 D) 7 22.设有如下数组定义:char str[6];则下列程序段中,不能正确地为str数组赋值的是【22】。
A) for(i=0;i<6;i++) scanf("%c",str[i]); B) strcpy(str,"ABCD");C) scanf("%s",str); D) gets(str);23.设己定义int a[5 ]={0,1,2} ; 则a[4]数组元素的值为【23】。
A) 0 B) 1 C) 2 D) 不确定24.下列程序段的运行结果是【24】。
int i, x[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)printf("%d,",x[i][2-i]);A) 1,4,7, B) 3,5,7,C) 1,5,9, D) 3,6,9,25.下列程序段运行后,输出结果是【25】。
char a[10]="abcd";printf("%d,%d\n",strlen(a),sizeof(a));A) 10,4 B) 4,4C) 4,10 D) 10,1026.若定义int i,*p; 能够使指针变量p指向变量i的赋值语句是【26】。
A) p=&i; B) *p=&i;C) *p=i; D) p=*&i;27.若给出以下定义:char x[]="abcd";char y[]={'a','b','c','d'};则正确的叙述是【27】。
A) 数组x和数组y完全等价B) 数组x的元素个数与数组y的元素个数相同C) 数组x的元素个数多于数组y的元素个数D) 数组x的元素个数少于数组y的元素个数28.下列程序段的运行结果是【28】。
int a[]={1,3,5,7,9}, s=0, k, *p;p=&a[1];for(k=0;k<2;k++) s+=*(p+k);printf("%d",s);A) 8 B) 4 C) 6 D) 12 29.设己定义int a[ ]={0,1,2,3,4,5,6,7,8,9},*p= a, i ;其中0≤i<10, 则不能正确引用a数组的元素的是【29】。
A) p[p – a] B) *(&a[i])C) p[i] D) p+i30.数组名作函数的参数时,实参数组传递给形参数组的是【30】。
A) 数组中元素的个数B) 数组的首地址C) 数组中全部元素的值D) 数组中第一个元素的值31.已知一个函数定义为:void func( ){…}}则void的含义是【31】。
A) 执行该函数后不返回,直接结束程序B) 执行该函数后没有返回值C) 该函数可以返回任意类型的数据D) 该函数返回整型数据32.执行下列程序段后,输出结果是【32】。
int a=3, b=6, *x=&a, *y=&b, *k;k=x; x=y; y=k;printf("%d %d\n", *x, *y);A) 不确定值B) 3 6C) 6 3D) 编译出错33.如果在程序中的main函数之后定义如下函数:double myadd(double a,double b){ return a+b;}那么在main函数中调用myadd函数时,需要提前进行函数声明,下列函数声明语句中错误的是:A) double myadd(double a,double);B) double myadd(double x,double y);C) double myadd(double a,b);D) double myadd(double ,double );34.已知字母A的ASCII码值是65,下列程序段的运行结果是【34】。
char *s="ABC";do{ printf("%d",*s%10);s++;}while(*s);A) ABC B) 567C) 5670 D) 65666735.以下选项中正确的语句组是【35】。
A) char s[];s="Hello"; B) char *s;s={"Hello"};C) char s[10];s="Hello"; D) char *s;s="Hello";36.设函数中有局部整型变量n,为保证其在未赋值的情况下初始值为0,正确的变量声明语句是【36】。
A) auto int n; B) register int n;C) static int n; D) int n;37.下列程序段的运行结果是【37】。
int a[]={1,2,3,4,5,6,7},*p;p=a;*(p+3)+=2;printf ("%d %d\n", *p,*p+3);A) 1 4B) 1 5 C) 1 6 D) 6 738.若有定义语句int x=2,y=3;则表达式x&y的值是【38】。