《C语言程序设计》试题
院校__ _ 年级____ _____ 专业 层次____ ____ 姓名______________ 分数_______________ 一、单项选择题 1.程序段 int *p,a; p=&a; a=10;
printf(\的输出应为:
A)10 B)0 C)不能确定 D)语法错误
2.C语言规定,简单变量作为实参时,他和对应形参之间的数据传递方式是: A)单向值传递 B) 地址传递 C) 相互传递 D) 由用户指定方式 3.以下语句或语句组中,能正确进行字符串赋值的是。
A)char *sp;*sp=\)char s[10];s=\C)char s[10];*s=\)char *sp=\4.for(i=0;i<10;i++) if(i〈=5) break; 则循环结束后i的值为
A)0 B)1 C)5 D)10 5.有以下程序 main() {
int m,n,p;
scanf(\printf(\}
若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是。
A)m=123n=456p=789 B) m=123 n=456 p=789 C)m=123,n=456,p=789 D)123 456 789 6.C语言中,最基本的数据类型包括:
A)整型、实型、逻辑型 B)整型、字符型、数组 C)整型、实型、字符型 D)整型、实型、结构体 7.以下说法正确的是
A) C程序总是从第一个定义的函数开始执行
B) 在C程序中,要调用的函数必须在main()函数中定义
C) C程序总是从main()函数开始执行
D) C程序的main()函数必须放在程序的开始部分 8.程序段 int *p, a=1; p=&a; *p=10; a的值为:
A) 1 B) 10 C) 不能确定 D) 11 9.以下定义语句中,错误的是
A) int a[]={1,2}; B) char *a[3]; C) char s[10]=\
10.假定int类型变量占用两个字节,有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是
A) 3 B) 6 C) 10 D) 20 二、填空题
1.已知字符A的ACSII码值为65,以下语句的输出结果是 (1) 。 char ch=’B’;
printf(\
2.’a’在内存中占 (2) 个字节,”a”在内存中占 (3) 个字节。 3.若有int a[3][2] = {{1},{3,2},{4,5}};,则a[1][1]的值是 (4) 。 4.有以下程序,执行后输出结果是 (5) 。 main( ) {
int t=1,i=5;
for(;i>=0;i--) t*=i; printf(\}
5.在循环语句中,break语句的作用是 (6) ,continue语句的作用是 (7) 。 6.下面程序段将字符数组b连接到数组a的后面。 main() {
char a[20]= .\char b[]= .\int i, j; i = strlen(a);
for(j =__(8)___; b[j]!='\\0'; j++) {
a[__(9)__] = b[__(10)__];
}
a[___(11)__] = ___(12)___ ; }
7.for(表达式1;表达式2;表达式3) 语句组
的执行顺序是先求解表达式1、再___(13)______、如果成立则执行___(14)____、然后___(15)______。 三、编程(完形填空)
1.写一个函数,实现将一个长度≤80的字符串按逆序存放。解题要求:该函数的唯一形参是字符串的起始地址。 void convert(char string[]) {
int length,mid,i; char temp;
length=____(1)____(string); mid=____(2)_____;
for(____(3)____;i temp=____(4)_____; string[i]=string[____(5)_____]; string[(length-1)-i]=temp; } } 2.以下程序计算某年某月有几天,1、3、5、7、8、10、12月有31天,4、6、9、11月有30天,2月为28天、闰年2月为29天。 main() { int yy,mm,day; scanf(“%d%d”,&yy,&mm); switch(__(6)___) { case1: case3: case5: case7: case8: case10: case12: day=__(7)___; break; case4: case6: case9: case11: day=__(8)___; break; case2: if(((yy%4==0)_(9)_(yy0!=0)) (10)_(yy@0==0)) day=29; else day=28; break; } } } 答案: 一、单项选择题 1.C 2.A 3.D 4.D 5.A 6.C 7.C 8.B 9.D 10.D 二、填空题 (1) B 66 (2) 1 (3) 2 (4) 2 (5) 0 (6) 跳出循环体 (7) 跳过循环体中剩余的语句而强行执行下次循环。 (8) 0 (9) i+j (10) j (11) i+j (12) '\\0' (13) 判断表达式2 (14) 语句组 (15) 求解表达式3 三、编程(完形填空) 1. (1) strlen (2) length/2 (3) i=1 (4) string[i] (5) (length-1)-i 2. (6) mm (7) 31 (8) 30 (9) && (10) ||