一、 判断题(每题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 <stdio.h>
#include <math.h>
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 <stdio.h>
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 <stdio.h>
void main()
{ int j,k;
float f,s;
s=0; f=1;
for(k=1;k<=3;k++){
for (j=1;j<k; j++)
f=f*k;
s=s+f;
printf(“%.0f #”, s);
}
}
程序2
#include <stdio.h>
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 <stdio.h>
#include <stdlib.h>
void main()
一个完整的c语言程序{FILE *in;
char *string1=”IF YOU FAIL TO PLAN”;
char *string2=”YOU PLAN TO FAIL”;
if ((in=fopen(“”, “w”))!=NULL)
while(*string2!=’\0’)
fputc(*string2++, in);
fclose(in);
if((in=fopen(
“”, “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
五、程序设计题(略)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论