题号 一 二 三 四 五 六 七 八 九 得分 一、选择题(本大题共10小题,每题3分,共30分)
1. 以下选项中属于C语言的数据类型是( )
A.复数型 B .逻辑型 C .双精度型 D. 集合型
2. 要判断char型变量m是否是数字,可以使用下列表达式( )
A.0<=m && m<=9 B. ‘0’<=m && m<=’9’
C. “0”<=m && m<=”9” D. 前面三个答案均是错误的 3. 为了判断两个字符串s1和s2是否相等,应当使用( )
A.if (s1= =s2) B. if (s1=s2)
C. if ( strcpy (s1,s2) ) D. if ( strcmp( s1,s2)= =0 ) 4. 以下说法正确的是( )
A. C语言程序总是从第一个定义的函数开始执行
B. 在C语言程序中,要调用的函数必须在main()函数中定义 C. C语言程序总是从main()函数开始执行
D. C语言程序中的main()函数必须放在程序的开始部分 5. 以下错误的描述是( )
A. 不同函数中可以使用相同的变量名 B. 形式参数是局部变量
C. 一个函数内部定义的变量只能在本函数范围内有效
D. 在一个函数内部的复合语句中定义的变量可以在本函数范围内有效 6. 要说明一个有10个int 元素的数组,应当选择语句( )
A.int a[ 10 ]; B. int a[ 2, 5 ] C. int a[ ]; D. int *a[ 10 ]; 7. 说明语句”int ( * p ) ( ) ;”的含义是( )
A. p是一个指向一维数组的指针变量 B. p是指针变量,指向一个整型数据
C. p是一个指向函数的指针,该函数的返回值是一个整型 D. 以上都不对
8. 已知:char b[ 5 ] , *p=b; 则正确的赋值语句是( )
A. b=”abcd”; B. *b=”abcd”; C. p=”abcd” ; D. *p=”abcd”; 9. 下面的四个运算符中,优先级最低的是( )
A.( ) B. . C. —> D. + + 10. C语言中标准输入文件stdin 是指( )
A.键盘 B. 显示器 C. 鼠标 D. 硬盘
二、写出运行结果(本大题共4小题,每题5分,共20分)
1.# include
总 分 16
ch=getchar( ); switch( ch ) { case 65:
printf(“%c”, ‘A’); case 66:
printf(“%c”,’B’); default:
printf(“%s\\n”,”other”); } } 如程序可以正常运行,当从键盘输入 字母A时,输出结果为( ) 2. # include
int d=1l; fun( int p ) { int d=5; d+=p++;
printf(“%d”,d); }
main( ) { int a=3l; fun(a); d+=a++;
printf(“%d”,d); }
运行结果是
3.# include
While( j++<10) ;
Printf(“i=%d, j=%d\\n”, i,j);
}
运行结果是
4.# include
, static char a* +=”Program”, *ptr; for( ptr=a;ptr
putchar ( *ptr ); }
三、阅读程序、填空(每空2分,共18分)
1、下面程序输出3到100之间的所有素数。
17
# include
for ( i=3; i<=100; i++) { for(j=2;j<=i-1; j++) if ( ) break;
if ( )
printf(“M”,i);
}
}
2、 下面的函数sum(int n )计算1~n的累加和
sum(int n) { if (n<=0)
printf(“data error!\\n”);
if (n= =1) ; else ; }
3、 下面的程序是使用冒泡法对输入的10个浮点数从小到大进行排序。
# include
{ float a[ 10 ],x;
int i,j;
printf(“input 10 numbers please\\n”); for( i=0; ; i++) scanf(“%f”,&a*i]); printf(“\\n”);
for( i=1; ; i++) for (j=0; ;j++) if ( ) { x=a[j]; ; a[j+1]=x; }
四、 设计题(本题共3小题,1、2每题10分,3题12分,共32分)1、写一函数,求方程aX2+bX+c=0的根。从主函数输入a、b、c的值
18
2、 写一函数,输入一个二进制数,输出相应的十进制数
3.建立一个链表,每个结点包括:学号、姓名、性别、年龄。输入一个年龄,如果链表中的结点所包含的年龄等于此年龄,将此结点删去
一、选择题(10*2’) 1 c 2 b 3 d 4 c 5 d 6 a 7 c 8 c 9 d 10 a 二、写出程序运行结果(6*3’) 1 ABother 2 .8 4 3 I=10,j=11 4 Porm 三、填写程序(9*3’) 1 I % j = =0 j= =i 2 return(1) return(sum(n-1)+n) 3 I<10 I<9 j<10-I a[j]>a[j+1] a[j]=a[j+1] 1 # include
19
greater_than_zero(float a, float b) { x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a); }
equal_to_zero(float a,float b) { x1=x2=(-b)/(2*a); }
smaller_than_zero(float a,float b) { p= -b/(2*a);
q=sqrt(disc)/(2*a);
}
main( )
{ float a,b,c;
scanf(“%f,%f,%f”,&a,&b,&c); disc=b*b-4*a*c; if ( disc>0)
{ greater_than_zero(a,b);
printf(“x1=%5.2f\\tx2=%5.2f\\n\\n”,x1,x2);else if(disc = =0)
{ equal_to_zero( a,b);
printf(“x1=%5.2f\\tx2=%5.2f\\n\\n”,x1,x2); } else
{smaller_than_zero( a,b);
printf(“x1=%5.2f\\tx2=%5.2f\\n\\n”,x1,x2); } } a) #include
{ char t[MAX];
i=0; flag=0; flag1=1;
while((c=getchar())!=’\\0’ && I else if( flag) , t*I+=’\\0’; c=getchar(); if (c= =’N’||c= = ‘n’) flag1=0; 20