C语言试题4
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言试题4
《高级程序设计基础(C语言)》考试题四
一、选择题(共20题,每题2分)
1、若有说明语句:int a,b,c,*d=&c;,则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是()。
A) scanf("%d%d%d",&a,&b,d); B) scanf("%d%d%d",&a,&b,&d);
C) scanf("%d%d%d",a,b,d); D) scanf("%d%d%d",a,b,*d);
2、.执行下面程序时,欲将25和2.5分别赋给a和b,正确的输入方法是()。
int a;
float b;
scanf("a=%d,b=%f",&a,&b);
A) 25,2.5
B) 25,2.5
C) a=25,b=5.5
D) a=25,b=2.5
3、假定w、x、y、z、m均为int型变量,有如下程序段:
w=1; x=2; y=3; z=4;
m=(w<x)?w:x;< p="">
m=(m<y)?m:y;< p="">
m=(m<z)?m:z;< p="">
则该程序运行后,m的值是()。
A) 4 B) 3 C) 2 D) 1
4、判断char型变量ch是否为大写字母的正确表达式是()。
A) ?A?<=ch<=?Z?B) (ch>=?A?) & (ch<=?Z?)
C) (ch>=?A?) && (ch<=?Z?)D)(…A?<=ch) AND (…Z?>=ch)
5、以下程序的输出结果是()。
main()
{ int x=2, y=-1, z=2;
if (x<y)< p="">
if (y<0) z=0;
else z=z+1;
p rintf(“%d\n”, z);
}
A) 3 B) 2 C) 1 D) 0
6、以下程序的输出结果是()。
main()
{ int a=100, x=10, y=20, ok1=5, ok2=0; if (x<y)< p="">
if (y!=10)
if (!ok1)
a=1;
else
if (ok2) a=10;
a=-1;
printf(“%d\n”, a);
}
A) 1 B) 0 C) -1 D) 值不确定
7、下列程序的输出结果是().
#include
main()
{
int i=1,sum=0;
while(i<6)
{
i++;
if(i%2==0) continue;
sum=sum+i;
}
printf(“%d”,sum);
}
A) 9 B) 10 C) 8 D) 15
8、下面程序的功能是计算:至50中是7的倍数的数值之和,在空白处最合适的是()。
#include
main()
{
int i,sum= 0;
for(i=1;i<=50;i++)
if( _____________ ) sum+=i;
printf("%d",sum);
}
A) (int)(i/7)==i/7 B) (int)i/7==i/7
C) i%7= 0 D) i%7==0
9、对下面程序段,说法正确的是()。
for (t=1; t<=100;t++)
{
scanf("%d",&x);
if(x<0) continue;
printf("%3d",t);
}
A) 当x<0时整个循环结束
B) x>=0时什么也不输出
C) printf函数永远也不执行
D)最多允许输出100个非负整数
10、对以下说明语句的正确理解是()。
int a[10]={6,7,8,9,10};
A)将5个初值依次赋给a[1]至a[5]
B)将5个初值依次赋给a[0]至a[4]
C)将5个初值依次赋给a[6]至a[10]
D)因为数组长度与初值的个数不相同,所以此语句不正确
11、以下不正确的定义语句是()。
A)double y[5]={2.0,4.0,6.0,8.0,10.0};
B)int y[5]={0,1,3,5,7,9};
C)char c[]={…1?,?2?,?7?,?4?,?5?};
D)char c[]={“abcdf”};
12、当执行下面的程序时,如果输入ABC,则输出结果是()。
#include "stdio.h"
#include "string.h"
main()
{
char ss[10]="1,2,3,4,5";
gets(ss);
strcat(ss, "6789");
printf("%s\n",ss);
}
A) ABC6789 B) ABC67 C) 12345ABC6 D) ABC456789
13、以下正确的描述是()。
A)continue语句的作用是结束整个循环的执行
B)只能在循环体内和switch语句体内使用break语句
C)在循环体内使用break语句或continue语句的作用相同
D)从多层循环嵌套中退出时, 只能使用goto语句
14、若有定义:int aa[ 8];。
则以下表达式中不能代表数组元aa[1]的地址的是()。
A) &aa[0]+1 B) &aa[1] C) &aa[0]++ D) aa+1
15、在执行char str[10]=”China\0”; strlen(str)的结果是()。
A)5 B)6 C)7 D)9
16、下面程序段的运行结果是()。
char str[]=”abc”,*p=str;
printf(“%d\n”,*(p+3));
A)67;B)0;C)字符‘c’的地址;D)字符‘c’;
17、下面程序段的运行结果是()。
char s[6];
s=”abcd”;
printf(“\”%s\”\n”,s);
A)”abcd”;B)”\”abcd”;C)”\”abcd\””;D)编译出错;
18、C语言中规定函数的返回值的类型是由(D )。
A)retrurn语句中的表达式类型所决定
B)调用该函数时的主调用函数类型所决定
C)调用该函数时系统临时决定
D)在定义该函数时所指定的函数类型所决定
19、以下程序的输出结果是()。
#include
main( )
{
int a=2, i;
for (i=0; i<3; i++)
printf(“%d”, func(a));
}
func(int a)
{
int b=0;
static int c=3;
b++; c++;
return(a+b+c);
}
A)777 B)7 7 7 C)789 D)7 8 9
20、以下程序的的功能是()。
#include
main( )
{
FILE *fp;
char str[]=”HELLO”;
fp=f open(“PRN”, “w”);
fputs(str,fp);
fclose(fp);
}
A)在屏幕上显示”HELLO”B)把”HELLO”存入PRN文件中
C)在打印机上打印出”HELLO”D)以上都不对
二、分析程序题(共10题,每题3分)
1、下面程序段在执行时输入5,6,则输出结果是__________________。
#include
void main()
{
int a,b;
scanf("%d,%x",&a,&b);
b+=a;
printf("%d",b);
}
2、下面程序段的输出结果是__________________。
int a,b,c = 123;
a = c%100/9;
b = (-1) && 1;
printf("%d,%d",a,b);
3、以下程序的运行结果是__________________。
main()
{ int a, b, c, d, x;
a=c=0; b=1; d=20;
if (a) d=d-10;
else if (!b)
if (!c) x=15;
else x=25;
printf(“%d\n”,d);
}
4、以下程序段的运行结果是__________________。
int x=1, y=0; switch (x)
{ case 1:
switch (y)
{ case 0 : printf(“**1**\n”); break;
case 1 : printf(“**2**\n”); break;
}
case 2: printf(“**3**\n”);
}
5、以下程序段的输出结果是__________________。
int x=7,s=0;
while (x >0)
{ x=x――;
s=s+x;
}
printf("x=%d,s=%d",x,s);
6、以下程序的执行结果是__________________。
#include
main( )
{
int a[]={1,2,3,4}, i, j, s=0;
j=0;
for (i=3; i>=0; i--)
{
s=s+a[i]*j;
}
printf(“s=%d\n”, s);
}
7、以下程序执行时输入Language Programming<回车>的结果是__________________。
#include
main( )
{
char str[30];
gets(str);
printf(“str=%s\n”, str);
}
8、以下程序的执行结果是__________________。
#include
struct strin{
char c[5];
char *s;
};
main(){
struct strin s={"ABCD","EFGH"};
printf("%s",s.c);
printf("%c\n",*s.s);
}
9、以下程序的执行结果是__________________。
#include
void finc(int);
main( )
{
int k=4;
func(k);
}
func(int a)
{
static int m=0;
m+=a;
printf(“%d”, m);
}
10、以下程序的执行结果是__________________。
struct stru
{
int x;
char c;
};
main( )
{
struct stru a={10, …x?};
func(a);
printf(“%d, %c\n”, a.x, a.c);
}
func(struct stru b)
{
b.x=20;
b.c=?y?;
}
三、编写程序题(共3题,每题10分)
1、从键盘输入四个整数,输出其中的最大者。
2、求和S=1-1/2+1/3-1/4+…+1/99-1/100 。
3、自定义函数countArray(),在该函数中输入一个数组的10个
元素,然后求它们的和,将结果返回给调用它的函数。
然后在主函数中调用该函数,并输出结果。
第四套考试题参考答案
一、选择题
1、A
2、D
3、D
4、C
5、B
6、C
7、C
8、D
9、D
10、B
11、B
12、A
13、B
14、C
15、A
16、B
17、D
18、D
19、C
20、C
二、程序分析题
1、11
2、2,1
3、20
4、**1**
**3**
5、x=0,s=21
6、s=0
7、str=Language Programming
8、ABCDE
9、48
10、10,x
三、编程题
1、
#include
main()
{
int a, b, c, d, max;
printf(“请输入4个整数:”);
scanf(“%d%d%d%d”, &a, &b, &c, &d); max = a;
if (max
if (max
if (max
printf(“最大的数为:%d\n”, max);
2、
#include
main()
{
double result=1.0;
double sign=-1.0;
int i;
for(i=2; i<=100;i++)
{
result += sign / i;
sign = -sign;
}
printf("结果为:%lf\n", result); }
3、
#include
int countArray();
main()
{
int result;
result = countArray();
printf("结果为:%d\n", result); }
int countArray()
{
int i, array[10], sum;
sum=0;
printf("请输入10个整数:"); for(i=0; i<10; i++)
scanf("%d", &array[i]);
for(i=0; i<10; i++)
sum += array[i];
return sum;
}
</y)<>
</y)<>
</z)?m:z;<>
</y)?m:y;<>
</x)?w:x;<>。