当前位置:首页 > c语言模拟3
中国石油大学(北京)2007 —— 2008 学年第 二 学期
《C语言程序设计》期末考试试卷A(闭卷考试)
班级:________姓名:________学号:________
题号 得分 一 二 三 四 五 总分 注意:所有答案都写在答题纸上 一 、选择题(每题1分,共15分)
1. 以下说法正确的是 。
A、C语言程序总是从第一个定义的函数开始执行
B、C语言程序中main函数的定义必须放在程序的开始 C、C语言程序总是从main函数开始执行 D、在C语言中有自己的输入输出语句 2. 下列合法的C语言标识符是 。
A、M.D.John B、3count C、while D、_total
3. 在C语言中,要求运算数必须是整型的运算符是 。
A、/ B、% C、< D、&&
4. 对于int a,表达式1<=a<=5的值是 。
A、根据a的值来定 B、0 C、1 D、语法错误
5. 已有如下定义和输入语句,若要求a和b的值分别为10、20.5,正确的数据输入方法
是 。(↙代表回车) int a; float b;
scanf(“a=%d,b=%f”,&a,&b);
A、10,20.5↙ B、a=10 b=20.5↙ C、a=10,b=20.5↙ D、10↙20.5↙ 6. 执行语句char str[]=”ab\\tde\\\\fg\\n”;printf(“%d”,strlen(str));后输
出 。
A、12 B、9 C、14 D、10 7. 有如下程序
void main()
{ int x=1,y=0,a=1,b=1; switch(x)
{case 1: switch(y)
{case 0:b++;break; case 1:a++; } case 3: b++; case 2: a++; }
A卷,第1页,共6页
printf(“a=%d,b=%d”,a,b); }
该程序的输出结果是 。
A、a=3,b=3 B、a=1,b=3 C、a=2,b=3 D、a=1,b=2 8. 以下程序的运行结果是 。
void main() { int i;
for(i=3;i<10;i++)
{ if(i*i /20) break; printf(“%d ”,i); } }
A、3 4 5 6 7 B、3 4 C、3 4 5 D、3 4 5 6 9. 以下正确定义数组并正确赋初值的语句是 。
A、int n=5;int a[n]; B、char str[20];str=”happy”;
C、float a[2][]={{1.1,2,3},{2.5,1.2,5.6}} D、int a[][2]={1,2,3,4}; 10. 有如下程序段:
int * p,a=10,b=1; p=&a;a=*p+b;
执行该程序段后,a的值是 。
A、12 B、11 C、10 D、编译出错 11. 执行如下程序段的结果是 。
char str[]=”hello”,*p=str; printf(“%s”,p+2);
A、lo B、ello C、llo D、语法错误
12. 若有定义int a[3][5]; 不能表示a[2][1]。
A、*(&a[2][1]) B、*(*(a+2)+1) C、*(a+11) D、*(a[2]+1) 13. 在C语言中,有关函数的定义正确的是 。
A、函数的定义可以嵌套,函数的调用不可以嵌套 B、函数的定义不可以嵌套,函数的调用可以嵌套 C、函数的定义和调用都不可以嵌套 D、函数的定义和调用都可以嵌套 14. 有如下函数调用语句:
func(e1,e2+e3,fabs(e4));
函数调用语句中含有的实参个数是 。 A、4 B、5 C、3 D、语法错误 15. 下面说法正确的是: 。
A、定义结构体时,它的每个成员的数据类型必须不同
B、定义结构体时,各成员项之间可以用分号也可用逗号隔开 C、定义结构体时,其成员不能是另一个结构体的变量 D、定义一个结构体,实际上是定义了一个新的类型
A卷,第2页,共6页
二、填空题(每空1分,共10分)
1. 著名计算机科学家沃思提出一个公式:程序= +算法 2. 在内存中,字符型数据在内存中以 形式存放。
3. 若有如下定义float f=123.4567;要求输出该数时保留1位小数,共占8列,左对齐,
则具体的printf语句是 。
4. 若有如下定义:int year;若year能被4整除且不能被100整除;或year能被400
整除,就是闰年,其在c语言中的表达式是 。 5. 数学式子:
x2?y2所对应的C语言表达式是 。
2xy6. 设x=3.5,a=10,y=5.7,则算术表达式x+a%3*(int)(x+y)%2/4的值是 。 7. do...while循环语句至少能执行 次循环体。 8. 构成数组的各元素具有相同的 。 9. 共用体变量所占的内存的长度为 。
10. 当用fopen函数打开一个文件时,若打开成功返回 类型的指针。
三、阅读程序写结果(每题3分,共15分)
(假设所需的头文件都已经包含了)
1. 以下程序运行的结果是 。
int i=5,j=1; int f(int x)
{ static int k=0;
x+=k; ++k; return x;
}
void main() { int i;
i=f(2); i=f(3); printf(“%d”,i+j); }
2. 以下程序运行的结果是 。
long fun(int n) { long s; if(n==1) s=1; else s=fun(n-1)+n; return s;
A卷,第3页,共6页
}
void main()
{ printf(“%ld”,fun(5)); }
3. 以下程序运行的结果是 。
void main()
{ char a[100]=”abcde”,b[]=”xyz”; int i=0,j=0; while(a[i])!=?\\0?) i++; while(b[j]!=?\\0?) { a[i]=b[j];j++;i++;} a[i]=?\\0?; puts(a); }
4. 以下程序运行的结果是 。
void main() { int i,j,k; for(i=0;i<=3;i++)
{ for(j=1;j<=i;j++) printf(“#”); for(k=0;k<3;k++) printf(“*”); printf(“\\n”); } }
5. 以下程序运行的结果是 。
void main() { int a[6]={5,9,6,4,3,1},i,j,k; int * p[6],*t; for(i=0;i<6;i++) p[i]=&a[i]; for(i=0;i<5;i++) { k=i; for(j=i+1;j<6;j++) if(*p[j]<*p[k]) k=j; t=p[i];p[i]=p[k];p[k]=t; } for(i=0;i<6;i++) printf(“-”,*p[i]); }
四、程序填空题(每空2分,共20分)
1. 下面程序是求出一个数组中的最大值,请填空
void maxvalue(int *a,int n,int * pmax)
A卷,第4页,共6页
共分享92篇相关文档