------------------- 时需Sr彳 ---------
一、单项选择题(20题,每题2分,共40分) 1 ?一个C语言程序是由
A .主程序
组成的。
D .过程
B .子程序 C.函数
2 ?判断char型变量cl是否为小写字母的最简单且正确的表达式为
A. 'a'v=c1<='z' C. ('a'v=c1)||('z'>=c1)
B. (c1>=a)&&(c1<=z) D. (c1>='a')&&(c1<='z')
。
3 ?为了判断两个字符串 si和s2是否相等,应当使用
A. if (s仁=s2) C. if (strcpy(s1 , s2))
B. if (s仁s2)
D. if( strcmp(s1,s2) ==
a++ : b++ D. 2
0 )
,a+b) 的值为
4. 设 a,b 都是 int 型变量,则表达式:(a=2,b=5,a>b? A. 7
B. 8
C. 9
5. 设x、y和t均为int型变量,则以下语句:t=x; x=y; y=t ;的功能是 A.把x和y按从大到小排列 C.无确定结果
B.把x和y按从小到大排列
D. 交换x和y中的值
。 C.char
D._int
循环语句while ( !E );中。
B. E! = 1
C. E = = 0
D. E = = 1
0< i<10。
6. 下面标识符中,合法的用户标识符为 A. P#Ad 7.
的表达式!E等价于 A. E! = 0
B.12a
8. 设有以下语句,则
int int
不是对a数组元素的正确引用,其中 {0,1,2,3,4,5,6,7,8,9}
a[10] *p = a ;
供选择的答案是:
A. a[p-5] C. p[i]
B.
*(&a[i]) D. *(a+i)
9. 若用数组名作为函数调用的实参 A.数组的首地址 C.数组中全部元素的值
,传递给形参的是
B.
数组第一个元素的值 D.数组元素的个数
10 ?下面四段程序中,不是死循环的程序段是 ____________
T
A. int i=100 ; C.int k=0 ; do
} {++k ;
while (k>=0)
while (1) { i=i0+1
时磊忖呎…
if (i>100) break ;
D.int
s=3379
while (s);
s++ ;
B. for (;;);
11 .在一个文件中定义的全局变量的作用域为
A.本程序的全部范围; C.
。
B.本文件的全部范围;
函数内的全部范围; D.从定义该变量的位置开始到文件结束。
12 .下面的程序执行后,文件 test . t中的内容是 。
#include
void fun (char *fname , char *st ) { FILE *myf ; int i ; myf=fopen
(fname , \);
for (i=0 ; i { fun (\. t\, \); fun (\. t\, \,\); } A) hello , B) new worldhello , C) new world 13 ?若有以下定义和语句 int a=3,b=4, *q,*w,*p ; D) hello,world p=&a ; q=&b ; w=q ; q=NULL ; 贝u以下选项中错误的语句是 ______ A *p=a ; B w=p ; C *q=0 ; 14 ?以下语句中,指针s所指字符串的长度为 D *p=*w 。 ; 时磊忖呎… char *s= A. 13 B. 12 C. 14 D . 10 15 ?若调用一个函数,且此函数中没有 return语句,则正确的说法是:该函数 。 A ?没有返回值 B ?返回若干个系统默认值 C ?能返回一个用户所希望的函数值 D ?返回一个不确定的值 16 ?有以下程序 main() { int m[][3]={1,4,7,2,5,8,3,6,9}; int i,j,k=2 ; for(i=0 ; i<3 ; i++) printf( “ %d” ,m[k][i]) } 执行后输岀结果是 A. 4 5 6 B. 2 5 8 C. 3 6 9 D. 7 8 9 17 ?下列程序的输岀结果为 。 #define SQR(x) x*x main() { int a=10, k=2, m=1; a/=SQR(k+m); printf( “ %d ,a); } A. 1 B. 8 C. 2 D. 9 18.设有以下程序段: char a[ ]= ” study,” *p ; P=a ; printf ( “ %d\, * (p+5 )); 执行后的结果为: A、111 B、0 C、104 D、不确定 19 ?设有下列程序段,则 scanf函数调用语句中对结构体变量成员的不正确引用为 struct student — { char name[20]; int age; char sex; }stu[5], p=stu; A. scanf(\C. scanf(\ 20 .已知 static int 时磊忖呎… *p; stu[0].name); &(p->sex)); a[ ]={5 , 4 , 3 , 2 , 。 D. 7 B. scanf(\D. scanf(\1} , *p[ ]={a+3 p->age); & stu[0].age); ,a+2 , a+1 , a},**q=p ;则表达式 *(p[0]+1) A . 5 + **(q B . 4 +2 )的值是 C. 6 二、程序填空题(每空 2 分, 共 20 分) 1、求 1 + 1/2 #include main() { int i =2 float sum +1/4 + 1/6 + ???+ 1/100 的值。 “ stdio.h while ( i <=100) { sum = ________________ ; ___________________ ; } printf ( } 2、 以下程序的功能是:从键盘输入若干个学生的成绩,统计计算岀平均成绩,并输岀低于平均分的学生 成绩,用输入负数结束输入。 main() { float x[1000], sum = 0.0, ave, a ; int n=0, i; printf( “ Enter scanf( “ %f ”,&a); while(a>=0.0 && n<1000) { n ” ); “sum = %f “ , sum); sum =sum+a; x[n]= _____ ; n++; scanf(” } ave= _________ printf( “ Output: n ” ); printf( for(i=0; “ ave=%n ” ,av e); i % f \); 时磊忖呎… if( ________ ) } n ”,x[i]); 4、将输入的百分制成绩转换成相应的等级。 main() { int score,temp; char grade; scanf(\if(score ==100) temp=9; else temp= ___________ : 100 —90分为A , 89 — 80分为B……60分以下为E switch( ) { case case case 9 : grade='A'; 8 : grade='B'; 7 : grade=C; 6 : grade='D'; break; break; break; break; case } printf (\} 三、程序阅读题(每题 4分,共20分) #include \ main() 时磊忖呎… 1、以下程序运行后,输岀结果是 _________ 。 时磊5说- { char ch='A'; int x=8; while (ch<='H‘) { printf(\ch+=2; } printf(\do { x--; if (x%3==0) continue; printf(\} while (x>0); } 2、以下程序运行后,输岀结果是 _________ int func(int a, int b) { static int m=0,i=2; i+=m+1; m=i+a+b; return(m); } main() { int k=4,m=1,n; n=func(k, m); printf( “ %d”,n); n=func(k, m); printf( “ %d ,n); } 3、下面程序的运行结果是: __________ void swap(int *a,int *b) { int *t; t=a; a=b; b=t; } 。