当前位置:首页 > 安徽大学C语言考试试卷2(12)
安徽大学20 08 —20 09 学年第 二 学期
院/系 年级 专业 姓名 学号 答 题 勿 超 装 订 线 ------------------------------装---------------------------------------------订----------------------------------------线---------------------------------------- 《C语言程序设计》考试试卷(B卷)
(闭卷 时间120分钟)
题 号 得 分 阅卷人 一 二 三 四 五 总分 一、单项选择题(每小题2分,共20分): 得分 下列各题A)、B)、C)、D)四个选项中只有一个是正确的,请将正确 选项填在答题卡相应题目的横线上。答在试卷上不得分。
1. 设x为整型变量,和表达式“!(!x)”值完全相同的表达式是【______】 A. x==0 B. x==1 C. x!=0 D. x!=1 2. 下面程序段执行后,a的值是【______】。 int a; printf(\%d \\n\, (a=4*5, a*4, a+5) ); 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 \stdio.h\ #include \string.h\ void main( void ) {
char s[10]={ 'H', 'e', 'l', 'l', 'o'}; printf(\%d\\n\,strlen(s)); } A. 5 B. 6 C. 10 D. 11
第 1 页 共 8 页
6. 下列对字符串的定义中,错误的是【______】。 A. char str[7] = \FORTRAN\; B. char str[] = \FORTRAN\; C. char *str = \FORTRAN\;
D. char str[] = {'F','O','R','T','R','A','N',0}; 7. 以下程序的输出结果是【______】。
char *s=\ABCD\, *p; for( p=s; *p ; p++) printf(\%s\\n\, p);
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. s.birth.year = 1984;
s.birth.month = \s.birth.day = 11;
B. s.birth.year = 1984; s.birth.month = 11; s.birth.day = 11; C. s.birth.year = 1984;
strcpy(s.birth.month, \
第 2 页 共 8 页
答 题 勿 超 装 订 线 ------------------------------装---------------------------------------------订----------------------------------------线---------------------------------------- s.birth.day = 11;
D. s.birth.year = 1984;
strcpy(s.birth.month, 11); s.birth.day = 11;
二、填空题(每小题2空,每空1分,共20分) 得分 请将正确答案填在答题卡相应题目的横线上。答在试卷上不得分。 1. C程序标识符只能由英文字母、数字、_______组成,且第一个字母必须是字母或_______。
2. 表达式“28.0/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访问结构变量stu1的成员mark的方法是_______或_______。 10. C语言文件按数据的存放形式可分为________文件和_________文件。
三、程序分析题(每小题4分,共20分) 得分 阅读程序,将其运行结果填在答题卡相应题目的横线上。答在试卷 上不得分。 1.
#include
strcpy(&str[0],\china\); strcpy(&str[1],\define\); strcpy(&str[2],\arm\); printf(\%s\\n\,str);} 2.
#include
void swap( int a, int b)
第 3 页 共 8 页
{
int tmp; tmp=a; a=b; b=tmp; }
void main( void ) {
int a=23, b=7;
if(a>b) swap(a,b);
printf(\%d, %d\\n\, a, b ); } 3.
#include
short a[]={2,4,6,8,10,12}, *p, **k; p=a;k=&p;
printf(\%d,\, *(P++)); printf(\%d,\, * *k); } 4.
#include
int num[]={1,3,5,7}, s=1,i, *p=num; for(i=0;i<3;i++) s*=*(p+i); printf(\%d\\n\, s); } 5.
#include
int i,x;
for(i=1,x=1;i<=20;i++) {
if(x>=10) break; if(x%2==1) {
x+=5;
continue; }
x-=3;
第 4 页 共 8 页
共分享92篇相关文档