2009_2010年第一学期《C程序设计》试卷A(08级09.11)含答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、单项选择题(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
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+1 11.以下叙述中正确的是【 】
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+32 C) 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
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.8
18.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.0
19.以下数组定义中错误的是【】
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) 12
21.要求通过while循环不断读入字符,当读入字母N时结束循环。以下正确的是【】
A)while((ch=getchar())!=′N′) printf("%c",ch);
B)while(ch=getchar()!=′N′) printf("%c",ch);
精心整理学习帮手