一、 判断题(每题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小时内删除。
发表评论