院/系 年级 专业 姓名 学号 安徽大学20 08 —20 09 学年第 二 学期
《C语言程序设计》考试试卷(B卷) (闭卷 时间120分钟)
题 号 得 分 一 二 三 四 五 总分 答 题 勿 超 装 订 线 一、单项阅卷人 (每小题20分):
得选择题2分,共下列各题A)、B)、C)、D)四个选项中只有一个是正确的,请将正确 选项填在答题卡相应题目的横线上。答在试卷上不得分。
1. 设x为整型变量,和表达式“!(!x)”值完全相同的表达式是【______】
A. x==0 B. x==1 C. x!=0 D. x!=1
2. 下面程序段执行后,a的值是【______】。
int a;
printf(\ A. 60
B. 20
C. 15
D. 10
3. 判断字符串s1与字符串s2相等,应当使用【_______】。
A. if (s1 = s2) B. if (strcmp(s1, s2))
C. if (!strcmp(s1, s2)) D. if (strcmp(s1, s2) = 0)
4.
若有定义int (*p)[4],则标识符p是一个【_______】。 A. 指向整型变量的指针变量 B. 指向函数的指针变量
C. 指向有四个整型元素的一维数组的指针变量
D. 指针数组名,有四个元素,每个元素均为一个指向整型变量的指针
5. 下列程序的执行结果是【_______】。
#include \ #include \ void main( void ) {
char s[10]={ 'H', 'e', 'l', 'l', 'o'}; printf(\ } A. 5
B. 6
C. 10
D. 11
6. 下列对字符串的定义中,错误的是【______】。
A. char str[7] = \ B. char str[] = \
C. char *str = \
D. char str[] = {'F','O','R','T','R','A','N',0};
7. 以下程序的输出结果是【______】。
char *s=\ for( p=s; *p ; p++) printf(\
A)ABCD B)A C)D D)ABCD
BCD CD D
B C D
C B A
ABC AB A
8. “strlen(\”的返回值是【______】。
A. 14 B. 12 C. 13 D. 9
9. 若定义struct{ char name[8]; int age;}class[2],*p=class;下面输入
语句中错误的是【______】。
A)scanf(\B)scanf(\ C)scanf(\D)scanf(\
10. 已知学生记录描述为:
struct student {
int no;
char name[20]; char sex; struct {
int year; char month[15]; int day; }birth; };
struct student s;
设变量s中的生日是1984年11月11日,下列对生日的正确赋值方式是_____ A. = 1984;
答 题 勿 超 装 订 线
= \ = 11;
B. = 1984; = 11; = 11; C. = 1984; strcpy \ = 11; D. = 1984;
strcpy 11); = 11;
二、填空题(每小题2空,每空1分,共20分) 得请将正确答案填在答题卡相应题目的横线上。答在试卷上不得分。 1. C程序标识符只能由英文字母、数字、_______组成,且第一个字母必须是
字母或_______。
2. 表达式“10”的值为_______;表达式“5>3&&2||!8<4-2”的值为_______。 3. 判断字符变量MyChar是否为小写字母的条件表达式为_______ 'a'
_______ 'z'。
4. 函数fputs(x,y)的主要功能是__________________,正确时函数的返回值
是__________。
5. _______语句提前结束本轮循环,开始下一轮循环。_______终止并跳出本
层的循环结构。
6. 对于数组x[5][5],*(x+2)+3表示__________, *(x[3]+2)表示
__________。
7. 设有char *s=\,则printf(\,s)的输出是_______;而printf
(\,*s)的输出是______.
8. 数组名代表地址_______,指针代表地址_______。
9. 若定义struct{ int num;float mark; }stu1,*ps=&stu1;则通过指针ps