一、 判断题(每题1分,共10分)
(1) C语言源程序文件通过了编译、连接之后,生成一个后缀为.exe的文件。
(2) 在C程序中, 函数既可以嵌套定义,也可以嵌套调用。
(3) 在C程序中,APH和aph代表不同的变量。
(4) 表达式0195是一个八进制整数。
(5) 表达式3.14%2不符合C语言语法。
(6) 设变量定义为char cc[]= “12\n345”,则表达式sizeof(cc)的值是7。
(7) 执行printf(“%d”, ‘M’-‘A’+’a’-‘m’);,输出0。
(8) 表达式!x等价于x!=1。
(9) 表达式(z=0,(x=2) || (z=1),z)的值是1。
(10) 执行printf(“%x”, “12345”+1);,输出12346。
二、 单选题(每题2分,共26分)
(11)运算符 的优先级最高。
A) [ ] B)+= C) ? : D)++
(12)若a是整型变量,表达式~(a^~a)等价于 。
A)~a B)1 C)0 D)2
(13)下列程序段输出结果是 。
#define MA(x,y) ((x)*(y))
printf(“%d”,MA(5,4+2)-7 );
A)30 B)23 C)15 D)1
(14)设整型变量a,b,c,其中a,b的值分别为10与20,计算表达式 “c=(a%2= =0)?a:b”后,c的值为 。
A)0 B)5 C)10 D)20
(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)下列程序输出的结果是 。
#include <stdio.h>
void main()
{
int y;
double d=3.4, x;
x=(y=d/2.0)/2;
printf(“(%0.2f, %d)”, x, y);
}
A)(0.00,1) B)(0.85,1.7)
C)(0.50,1) D)以上都不对
(17)程序段 的功能是将变量u、s中的最大值赋给变量t。
A)if(u>s) t=u; t=s; B)t=u; if (t>s) t=s;
C)if(u>s) t=s; else t=u; D)t=s; if (u>t) t=u;
(18)对于以下递归函数f,调用f(3)的返回值是 。
int f( int n)
{
if (n) return f(n-1)+n;
else return n;
}
A)10 B)6 C) 3 D)0
(19)下列程序段输出结果是 。
int k=1;
switch (k){
case 1: putchar(‘P’);
case 2:
case 3: putchar(‘Q’);break;
case 4: putchar(‘R’);
default: putchar(‘S’);
}
A)P B)PQ
C)PQR D)PQRS
(20)下列程序段的输出结果是 。
void main()
c语言和c++区别{ int k;
for (k=1; k<5; k++) {
if (k%2) printf(“#”);
else contin
ue;
printf(“*”);
}
}
A)#*#* B)*#*#
C)# # D)以上都不对
(21)设变量定义为int a[3]={1,4,7},*p=&a[2]-2, 则*p的值是 。
A)&a[2]-2 B)5 C)2 D)1
(22)若变量已正确定义, 不能使指针p成为空指针。
A)p=’\0’ B)p=0 C)p=NULL D)p=EOF
(23)下列程序的输出结果是 。
#include <stdio.h>
int x;
int p( int *y)
{ ++ *y;
return x-1;
}
void main()
{ int y;
y=p(&x);
printf(“(%d,%d)”,x,y);
}
A)(-1,0) B)(1,-1) C)(1,0) D)出错
三、 程序填空题(每空2分,共16分)
程序1【程序说明】输出1~1000之间所有满足各位数字的立方和等于它本身的数。
【程序】
#include <stdio.h>
void main()
{ int digit,k,m,s;
for(k=1;k<=1000;k++){
(24) ;
while(m!=0){
digit=m%10;
s=s+digit*digit;
(25) ;
}
if( (26) )
printf(“%d”,s);
}
}
程序2【程序说明】输入10个整数,将它们存入数组a中,再输入一个数,然后在数组中查x,如果到,输出相应的下标(如果多个元素与x相等,只要输出下标最小的那个元素的下标),否则输出“Not Found”。
【程序】
#include “stdio.h”
void main()
{ int k, sub, x;
int a[10];
for(k=0; k<10; k++)
scanf(“%d”, &a[k]);
printf(“Input x\n”);
scanf(“%d”,&x);
sub=-1;
for(k=0;k<10;k++)
if(a[k]= =x)
(27) ;
if( (28) )
printf(“Index is %d\n”,sub);
else
printf(“Not Found\n”);
}
程序3【程序说明】当前目录下存放着文本文件,将其中除数字以外的内容显示在屏幕上。。
【程序】
#include <stdio.h>
#include <stdlib.h>
void main()
{ FILE *fr;
int ch;
if ( (29) )
{printf(“Can not open file—”);
exit(0);
}
while(!feof(fr)
{ (30) ;
if ( (31) )
putchar(ch);
}
fclose(fr);
}
四、 程序阅读题(每题6分,共18分)
程序1
#include <stdio.h>
void main()
{ int i,k, m;
int a[8]={15,60,75,73,92,87,64,79}, s[10];
for(k=0;k<10; k++) s[k]=0;
for(i=0;i<8; i++)
{k=a[i]/10;
s[k]++;
}
m=s[0];
k=1;
while(k<10)
{if(s[k]!=0)
printf(“%d#”,s[k]);
if(s[k]>m)
m=s[k];
k++;
}
printf(“%d”,m);
}
程序2
#include <stdio.h>
void main()
{ int j,k;
int a[3]={3,4,5};
for(j=0; j<3; j++)
{ for(k=0; k<3; k++)
printf(
“%d”,a[(j+k)%3]);
printf(“#”);
}
}
程序3
#include <stdio.h>
void main()
{int i=0, n;
char s[10]= “298h01”;
n=0;
for(i=0; s[i]!= ‘\0’; i++)
if(s[i]<’9’ && s[i]>=’0’)
n=n*10+(s[i]-‘0’);
else
break;
printf(“%d\n”, n);
}
五、 程序设计题(每题15分,共30分)
1.输入10个整数,求它们的平均值,并输出大于平均值的数据的个数。
2.输入两个正整数m和n(m<n),求m到n之间(包含m和n)所有素数的和,要求定义并调用函数isprime(x)来判断x是否是素数(素数是除1以外只能被自身整除的自然数)。
考试答案3
一、判断题(正确用A表示, 错误用B表示)
(1)A (2)B (3)A (4)B (5)A
(6)A (7)A (8)B (9)B (10)B
二、单选题
(11)A (12)C (13)B (14)C (15)B(16)A (17)D (18)B (19)B (20)A(21)D (22)D (23)C
三、程序填空题
1.(24) m=k;s=0
(25) Ag=-1
(26) k= =s
2.(27){sub=k; break; }
(28)sub!=-1
3.(29)(fr=fopen(“”, “r”))= =NULL
(30)ch=fgetc(fr)
(31)ch<’0’ || ch>’9’
四、程序阅读题
程序1 1#2#3#1#1#3
程序2 345#453#534#
程序3 298
五、程序设计题(略
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论