一、            判断题(每题1分,共10分)
(1)      C语言程序的三种基本结构是顺序结构、选择结构和循环结构。
(2)      在C语言程序中,在main函数中定义的变量称为全局变量。
(3)      表达式(3.6%2)符合C语言语法。
(4)      在C程序中,用整数0表示逻辑值“假”。
(5)      08是正确的整型常量。
(6)      设变量定义为 char s[ ]= “hello”则数组s中有6个元素。
(7)      若x是单精度实型变量,表达式(x=10/4)的值是2.5。
(8)      若变量已正确定义,表达式x=y=1符合C语言语法。
(9)      表达式!(x>0 || y>0)等价于 !(x>0) && !(y>0)。
(10)  表达式 (0x19<<1 & 0x7) 的值是3。
二、            单选题(每题2分,共26分)
(11)为表示 “a和b都不等于0”,应使用的C语言表达式是      。
A)(a!=0) || (b!=0)            B)a || b
C)! (a=0) && (b!=0)          D)a && b
(12)若x是单精度实型变量,k是基本整型变量,以下正确的输入语句是    。
A)scanf(“%f%d”, &x,&k);      B)scanf(“%f%d”, x, k);
C)scanf(“%d%f”, &x, &k);      D)scanf(“%d%f”,x, k);
(13)下列运算符中优先级最低的是      。
A)*        B)<<          C)=      D)->
(14)下列程序段的输出结果是      。
#define M(x,y)  x/y
printf( “%d”, M(10,2+3));
A)2        B)2.0        C)5      D)8
(15)已知字符’c’的ASCII码为99,语句printf(“%d,%c”, ‘c’, ‘c’+1);的输出为  。
A)99, c    B)99,100      C)99,d    D)语句不合法
(16)对于以下递归函数f,调用f (2)的返回值是    。
int f( int x)
{ return ((x<=0)? x:f(x-1)+f(x-2));
A)-1      B)0          C)1        D)3
(17)下列程序段的输出结果是      。
int k,s;
for (k=0, s=0; k<10; k++, s- -)
if (s>k)  break;
else    s+=k;
printf(“(%d,%d)”,k, s);
A)(4,5)    B)(4,6)        C)(6,9)      D)不是A.B.C
(18)下列程序的输出结果是      。
#include <stdio.h>
int f (int n)
{  static int k, s;
n- -;
for(k=n; k>0; k- -)
s+=k;
return s;
}
void main()
{ int k;
k=f(3);
printf(“(%d, %d)”, k, f(k));
}
A)(3, 3)      B)(6, 6)      C)(3, 6)    D)(6, 12)
(19)下列程序段的输出结果是      。
int *p, *q, k=5, j=10;
p=&j;  q=&k;  p=q;  (*p)++;
printf(“%d”, *q);
A)5        B)6          C)10        D)11
(20)下列不正确的赋值或赋初值的方式是      。
A) char str[6]={‘s’, ‘t’, ‘r’, ‘i’, ‘n’, ‘g’};
B)  char str[10]= “string”;
C)  char *str= “string”;
D)    char str[10]; str= “string”
(21)下列程序段的输出结果是      。
int c[ ]={1,7,12};
int *k=c+1;
printf(“%d”, *k++);
A)2        B)7            C)8          D)12
(22)下列程序段的输出结果是      。
char  *str[ ]={ “abcd”, “efgh”, “ijkl”, “mnop”}, * *p=st;
p++;
printf(*p+1);
A)cd      B)fgh          C)ijkl        D)出错
(23)下列程序的输出结果是      。
#include <stdio.h>
void p( int *x, int *y)
{  + +x;
-
- *y;
}
void main()
{ int x=0, y=3;
p (&x, &y);
printf(“(%d, %d)”, x, y);
}
A)(0, 2)    B)(0, 3)      C)(1, 3)      D)(1, 2)
三、      程序填空题(每题2分,共20分)
1.输入1个正整数n,计算并输出s的前n项的和。
s=1/2-2/3+3/4-4/5+…+(-1)n-1n/ (n+1)
#include <stdio.h>
void main()
{ int k, flag=1, n;
float s=0;
scanf(“%d”, &n);
for (k=1; k<=n ; k++) {
s=s+  (24)  ;
(25)  ;
}
printf(“sum=%f\n”, s);
}
2.输入100个整数,将其中的前20个数从小到大排序,然后输出这100个数。
#include <stdio.h>
void sort(  (26)  )
{ int i, k, m, t;
for(i=0; i<n-1; i++) {
k=i;
for (m=i+1; m<n; m++)
if (  (27)  ) k=m;
(28)  ;
}
}
void main()
{
int k, a[100];
for(k=0; k<100; k++)
scanf(“%d”, &a[k]);
(29)  ;
for(k=0; k<100; k++)
printf(“%d”, a[k]);
}
3.从键盘输入一批以-1结束的整数,将其中的奇数写入当前目录下的文本文件。
#include <stdio.h>
#include <stdlib.h>
void main()
{ int x;
(30)  ;
if((fp=fopen(“”, “w”))= =NULL{
printf(“不能打开文件”);
exit(0);
}
scanf(“%d”, &x);
while(  (31)    ) {
if(x%2!=0)      (32)  ;
(33)  ;
}
fclose(fp);
}
四、程序阅读题(每题8分,共16分)
1.输入3<;回车>后,下列程序的输出结果是      。
#include “stdio.h”
void main()
{ int j, k, n, s, a[6][6];
scanf(“%d”, &n);
for(k=0; k<n; k++)
for(j=0; j<n; j++)
a[k][j]=j*n+k;
printf(“a[0][1]=%d,”, a[0][1]);
s=0;
for(k=0; k<n; k++)
s+=a[k][k];
printf(“sum1=%d,”,s);
for(k=0; k<n;k++)
s+=a[n-k-1][k];
printf(“sum2=%d,”,s);
for(k=0; k<n;k++)
s+=a[k][2];
printf(“sum3=%d,”,s);
}
2.下列程序的输出结果是      。
#include <stdio.h>
#define  LEN  sizeof(struct line)
struct line
{ int num;
struct line *next;
};
void main()
{ int k;
struct line *p, *head;
head=NULL;
for(k=10; k>0; k--) {
p=(struct  line *) malloc(LEN);
c语言和c++区别p->num=
k;
p->next=head;
head=p;
}
while((p=p->next)!=NULL) {
printf(“%d,”, p->num);
p=p->next;
}
}
五、程序设计题(共28分)
1.输入一行字符,统计并输出其中英文字母、数字字符和其他字符的个数。
2.输入一个正整数n,求1+1/2!+1/3!+… +1/n!的值,要求定义并调用函数fact(n)计算n的阶乘,函数的返回值类型是单精度浮点型。 
试卷4参考答案
考试试卷4
一、判断题(正确用A表示, 错误用B表示)
(1)A  (2)B  (3)B  (4)A    (5)B
(6)A  (7)B  (8)A  (9)A      (10)B
二、单选题
(11) D  (12)A  (13)B  (14)D  (15)C
(16)A  (17)C  (18)C  (19)B  (20)D
(21)B  (22)B  (23)A 
三、程序填空题
1.(24)1.0*k/(k+1)*flag
(25)flag=-1
2.(26)int *a, int n
(27)a[k]>a[m]
(28)t=a[k]; a[k]=a[i]; a[i]=t
(29)sort(a,20)
3.(30)FILE  *fp
(31)x!=-1
(32)fprintf(fp, “%d”, x)
(33)scanf(“%d”,&x)
四、程序阅读题
程序1  a[0][1]=3, sum1=12, sum2=24, sum3=45
程序2  2, 4, 6, 8, 10
五、程序设计题(

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。