文档库 最新最全的文档下载
当前位置:文档库 › c语言试卷和答案1

c语言试卷和答案1

一、 判断题(每题1分,共10分)

(1) C语言程序的三种基本结构是顺序、选择和嵌套。

(2) 在C语言程序中,在函数内部定义的变量称为全局变量。

(3) 运算符 “=” 和 “&=”的优先级相同。

(4) ‘%f ’是方式不正确的字符常量。‘

(5) 运算符 “+”不能作为单目运算符。

(6) 如果运算符 “*”和 “/”都是右结合的,这表达式10*6/5的值是10。

(7) s(s-a)(s-b)(s-c)是合法的C语言表达式。

(8) 表达式!!6的值是6。

(9) 表达式~(~2<<1)的值是5。

(10) 对于变量定义:int a[10], *p=a+8; 数组a的最后一个元素是p[1]。



二、 单选题(每题2分,共20分)

(11)执行语句printf(“ ”, “A”);将得到出错的信息。

A) %u B)%s C) %e D)%d

(12)设c是一个字符变量,求解表达式 后,c的值不是1就是0。

A)c=getchar()!= ‘\n’ B)(c=getchar())!= ‘\n’

C)c=’1’ D)c=EOF

(13)下列定义中, 定义的变量可以存放-123.4。

A)long a B)unsigned b C)int d D)float c

(14)对于变量定义:char *pp[100],pp是一个 。

A)函数 B)数组元素 C)指针变量 D)数组

(15)下列程序段的输出结果是 。

char *str[]={ “SUN”, “MOON”, “STAR”, “X”};

printf(“(%s, %c)”, *(st+1)+1, *(*(st+2)+2)+2);

A)(MOON,M) B)(OON,C)

C)(OON,Q) D)(OON,A)

(16)对于以下的变量定义,表达式 是不正确的。

struct node{

float x, y;

char s[10];

}point, *p=&point;

A)p->x=2.0 B)(*p).y=3.0

C)point.x=2.0 D)p->s= “a”

(17)下列程序段的输出结果是 。

int a=10, b=0;

if (a>15)

b=1;

else if(a<2)

b=2;

else

b=3;

printf(“%d”, b);

A)3 B)2 C)1 D)0

(18)只有当输入的数据满足1<=month<=12时,循环语句 才能正常退出。

A)do{ scanf(“%d”, &month);

}while(month>=1 || month<=12);

B)do{ scanf(“%d”, &month);

}while(month>=1 && month<=12);

C)do{ scanf(“%d”, &month);

}while(month<1 || month>12);

D)do{ scanf(“%d”, &month);

}while(month<=1 || month>=12);

(19)调用函数f (27)的输出结果是 。

void f (int n)

{ if (n<5)

printf(“%d”, n);

else {

printf(“%d”,n%5);

f(n/5);

}

}

A)102 B)201

C)21 D)20

(20)下列程序段

的输出结果是 。

int k=3, j=4;

int *p=&k, *q=&j;

(*p)--;

j=k;

(*q)--;

printf(“(%d,%d)”,k,j);

A)(2,1) B)(1,2)

C)(4,3) D)(3,3)



三、程序填空题(每空2分,共20分)

程序1【程序说明】输入一批以-1结束的整数,求偶数和。

【程序】

#include

#include

void main()

{ int x,sum;

sum=0;

scanf(“%d”, &x);

(21) {

if( (22) ) sum=sum+x;

(23) ;

}

printf(“sum=%d”,sum);

}



程序2【程序说明】a是一个3×3的矩阵,输入a的元素,如果a是下三角矩阵,输出”YES”,否则输出”NO”。(下三角矩阵,即主对角线以上的元素都为0,主对角线为从矩阵的左上角至右下角的连线。)

【程序】

#include “stdio.h”

void main()

{ int flag,k;

int a[3][3];

for( i=0;i<3; i++)

for(k=0; k<3; k++)

scanf(“%d”, &a[i][k]);

(24) ;

for(i=0; i<3&& flag; i++)

for(k=i+1;k<3 && flag; k++)

if( (25) ) (26) ;

if (flag) printf(“YES\n”);

else pirntf(“NO\n”);

}



程序3【程序说明】输入一个字符串,将其中的大写字母转换为小写字母后输出。

【程序】

#include

void main()

{char str[80];

int k;

gets(str);

for( k=0; str[k]!=’\0’; k++)

if( (27) ) (28) ;

puts(str);

}



程序4【程序说明】请仔细阅读函数f1,然后在函数f2中填入正确的内容,使函数f1和函数f2有相同的功能。

【程序】

int f1 (char s[ ])

{int k=0;

while (s[k]!=’\0’)

k++;

return k;

}



int f2 (char *s)

{ char *ss;

(29) ;

while (*s!=’\0’)

s++;

return (30)

}



四、 程序阅读题(共20分)

程序1

#include

void main()

{ int j,k;

float f,s;

s=0; f=1;

for(k=1;k<=3;k++){

for (j=1;j
f=f*k;

s=s+f;

printf(“%.0f #”, s);

}

}



程序2

#include

void main()

{ long fun (long number);

printf(“%ld\n”, fun(-974));

}



long fun(long number)

{ int flag;

long res=0;

flag=number<0? -1:1;

if (number<0) number=-number;

while(number!=0) {

res=res*10+number%10;

number/=10;

printf(“%d#”, res);

}

return flag*res;

}



程序3

/*假设读写文件的操作能正常完成*/

#include

#include

void main()

{FILE *in;

char *string1=”IF YOU FAIL TO PLAN”;

char *string2=”YOU PLAN TO FAIL”;

if ((in=fopen(“file.txt”, “w”))!=NULL)

while(*string2!=’\0’)

fputc(*string2++, in);

fclose(in);

if((in=fopen(

“file.txt”, “r”))!=NULL)

while(fgetc(in)!=EOF)

putchar(*string1++);

fclose(in);

}



五、 程序设计题(每题15分,共30分)

1.输入10个整数,找出其中绝对值最小的数,将它和最后一个数交换,然后输出10个数。



2.输入一个正整数x和一个正整数n,求下列算式的值。要求定义和调用2个函数:fac(n)计算n的阶乘;mypow(x,n)计算x的n次幂,2个函数的返回值类型都是double。



x-x2/2!+x3/3!-x4/4!+…+(-1)n-1xn/n!
试卷2参考答案


考试试卷2

一、判断题(正确用A表示, 错误用B表示)

(1)B (2)B (3)A (4)A (5)B

(6)A (7)B (8)B (9)A (10)A

二、单选题

(11)C (12)A (13)D (14)D (15)B

(16)D (17)A (18)C (19)B (20)A



三、程序填空题

1.(21)while(x!=-1)

(22)x%2==0

(23) scanf("%d",&x);

2.(24)flag=1

(25)a[i][k]!=0

(26)flag=0

3.(27)str[k]>=’A’ && str[k]<=’Z’

(28)str[k]=str[k]-‘A’+ ‘a’

4.(29)ss=s

(30)s-ss



四、程序阅读题

程序1 1 # 3 # 21 #

程序2 4 # 47 # 479 # -479

程序3 IF YOU FAIL TOP

五、程序设计题(略)


相关文档
相关文档 最新文档