C语言题库:程序阅读题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1以下程序执行后sum的值是( C)
main()
{ int i , sum;
for(i=1;i<6;i++) sum+=i;
printf(“%d\n”,sum);
A 15
B 14
C 不确定
D 0
2下面程序段的运行结果是( c )
char *format="%s,a=%d,b=%d\n";
int a=11,b=10;
a+=b;
printf(format,"a+=b",a,b);
A for,"a+=b",ab
B format,"a+=b"
C a+=b,a=21,b=10
D 以上结果都不对
3 要使下列程序的输出结果是字符-2,则下划线处应填 ( a,c )
jueql(char *s1,char *s2)
{int i=0;
while(*(s1+i)==*(s2+i))
if(*(s1+i++)=='\0') return 0;
return(*(s1+i)-*(s2+i)); }
main( )
{printf("%d",jueql("abc",____));}
A abe
B aba
C cbc
D xbc
4 以下程序的输出结果是(C)
main()
{ int a= -1,b=1;
if((++a < 0)&& ! (b-- < =0))
printf("%d %d\n",a,b);
else
printf("%d %d\n",b,a); }
A -1 1
B 0 1
C 1 0
D 0 0
5 设有如下的函数定义 ( B )
int fun(char *s)
{ char *pt=s;
int i=0;
while(*pt++) i++;
return(i-strlen(s));}
如果用下面的语句调用上面的函数,则输出的结果是:
char str={“Great Wall”};
printf(“%d”,fun(str));
A 1
B 0
C 9
D 10
6 如果用下面的语句调用上面的函数,则输出结果是:
char str={"Great Wall"};
printf("%d",fun(str));
main()
{int a,b,num1,num2,temp;
scanf("%d%d",&num1,&num2);
if(num1<num2)
{temp=num1;
num1=num2;
num2=temp;}
a=num1;b=num2;
while(b!=0)
{ temp=a%b;
a=b;
b=temp; }
printf("%d",a);}
如果输入的数据是28,8
则程序运行结果是(C)
A 8
B 12
C 4
D 8
7 main()
{ char str[20];
char tt[4][20];
int i;
for(i=0;i<=3;i++)
gets(tt);
if(strcmp(tt[0],tt[1])>0 strcpy(str,tt[0]);
else strcpy(str,tt[1]);
if(strcmp(tt[2],str)>0) strcpy(str,tt[2]);
printf("%s",str);}
如果输入的字符串分别是:BASIC ,FOXPRO,FORTRN和COBOL
则程序的运行结果是( B )
A Basic
B foxpro
C fortrn
D cobol
8 以下程序的输出结果是 (A)
main()
{ int x=10;
printf("%x,%d,%o\n",x,x,x);}
A a,10,12
B 10,10,12
C a,10,10 B f,10,12
9 当a=1,b=3,c=5,d=4时,执行下面一段程序后,x的值为(B)
if(a<b) if(c<d )x=1;
else if(a<c)
if(b<d)x=2;
else x=3;
else x=6;
else x=7;
A 1
B 2
C 3
D 6
10下列程序的输出结果是(B)
int b=2;
int func(int *a)
{ b += *a; return(b);}
main()
{ int a=2, res=2;
res += func(&a);
printf("%d\n",res);}
A 4
B 6
C 8
D 10
11 若有定义char s[10] = “abcd”,则语句printf(“%s”, s )的输出结果是
(u表示空格)(A)
A abcd
B a
C abcduuuuuuu
D s
12 要使下列程序的输出结果是字符5,则下划线处应填 ( B)
#include <stdio.h>
main()
{char letter;
int vowel=0;
for(letter='A';________;letter++)
switch(letter)
{case 'A':
case 'E':
case 'I':
case 'o':
case 'U':vowel++;}
printf("%d",vowel); }
A letter<26
B letter<='Z'
C letter<'Z'
D letter<=52
13 列程序的输出结果是(C)
main()
{char a[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;
printf(“%d”,*--p);}
A 非法
B a[4]的地址
C 5
D 3
14 请读程序:
main()
{ int x=1,y=0,a=0,b=0;
switch(x)
{ case 1:
switch(y)
{ case 0: a++;break;
case 1: b++;break;}
case 2:
a++;b++;break;}
printf("a=%d,b=%d\n",a,b);}
上面程序输出结果是( A )
A a=2,b=1
B a=1,b=1
C a=1,b=0
D a=2,b=0
15 下面程序的功能是:输入一行以回车结束的字符,分别统计出其中英文字母
(letters)、空格(space)、数字(digit)和其它字符(others)的个数。
请在处
选择正确的答案将程序补充完整。
(A)
#include "stdio.h"
main()
{ char c;
int letters=0,space=0,digit=0,others=0;
printf("please input some characters\n");
while( )
{ if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))letters++;
else if(c==' ')space++;
else if(c>='0'&&c<='9')digit++;
else others++;}
printf("char=%d,space=%d",letters,space);
printf("digit=%d,others=%d\n"digit,others);}
A (c=getchar())!='\n'
B (c=getchar())=='\n'
C c=getchar()!='\n'
D c=getchar()=='\n'
16 设有定义:int n=0,*p=&n,**q=&p,则下列选项中正确的赋值语句是(D)
A p=1;
B *q=2;
C q=p; D
*p=5;
17 以下程序的输出结果是 ( C )
main( )
{ int x=10;
printf("%d,%d\n",x,x++); }
A 11,11
B 11,10
C 10,10
D 10,11
18以下程序的输出结果是( C)
fun(int x, int y, int z)
{ z=x*x+y*y; }
main()
{ int a=31;
fun(5,2,a);
printf(“%d”,a);}
A 0
B 29
C 31
D 无值
19当执行以下程序段时(A )
x=-1;
do { x=x*x;} while(!x);
A 循环体将执行一次
B 循环体将执行两次
C 循环体将执行无限次
D 系
统将提示有语法错误
20. 已知字母A的ASCⅡ码为十进制的65,下面程序输出的结果是( A )
#include <stdio.h>
main()
{ char c1='A',c2='Y';
printf("%d,%d\n",c1,c2);}
A 65,89
B 65,90
C A,Y
D 因输出格式不合法,输出错误信息
21. 下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,请选择填空。
#include
main()
{ int i=0,j,k;
do{i++;k=316-13*i;}while(______);
j=k/11;
printf("316=13*%d+11*%d",i,j);}
A k/11
B k%11
C k/11==0
D k==0
22 下面程序的输出结果是( A )
main()
{ int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
printf("%d\n",*(p+2));}
A 3
B 4
C 1
D 2
23. #include <stdio.h>
main()
{ char str[]="\"stop!\",he said";
puts(str);}
程序的运行结果是( C )
A stop!
B "stop!"
C "stop",he said
D he said
24. #include<stdio.h>
main()
{char c;
while((c=getchar())!='\n')
{if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))
c=c+4;
if(c<'Z'&&c='Z'+4||c>'z') c=c-26;} printf("%c",c);}}
如果输入的字符串是zebra
则程序的运行结果是( A )
A difve
B Difve
C arbez
D ZEBRA
25 下面的程序(D)
#include<stdio.h>
main()
{int x=3,y=0,z=0;
if(x=y+z)printf(”* * * *”);
else printf(”####”);}
A 有语法错误不能通过编译
B 输出* * * *
C 可以通过编译,但是不能通过连接,因而不能运行
D 输出####
26、以下程序输出结果是(B)
main ( )
{ int m=5;
if (m++ > 5) printf ("%d\n",m);
else printf ("%d\n",m--);}
A. 7
B. 6
C. 5
D. 4
27、以下程序的输出结果是__(D)
main()
{ int x=10 ,y=10;
printf("%d%d\n",x--,--y);}
A. 10,10
B. 9,9
C. 9,10
D. 10,9
28、以下程序的输出结果是(D)
main( )
{ int a=-1,b=4,k;
k=(++a<0)&&!(b--<=0);
printf("%d%d%d\n",k,a,b);
A. 1 0 4
B. 1 0 3
C. 0 0 3
D. 0 0 4
29.以下程序的输出结果是(D)。
#include “stdio.h”
main()
{ char str[8]={“abcdefgh”};
printf(“%x\n”,str);
printf(“%x\n”,str+1);}
如果程序中的第一个printf语句的输出结果是ffee,则第二个printf语句的输出结果是(D)
A、ffcd
B、ffab
C、ffc
D、ffef
30.以下程序的运行结果是(A)。
main()
{ int x=3;
do {p rintf(“%d”,x=x%2);
}while(--x);}
A、1
B、0
C、20
D、死循环
31.以下程序的输出结果是(D)。
char *fun(char(*str)[3])
{ char *pt;
pt=str+3;
return(pt);}
main()
{ char a[3][3]={‘a’,’b’,’c’,’d’,’e’,’f’,’g’,’h’,’i’}; char *pp;
pp=fun(a);
printf(“%s”,pp);}
A、abcdefghi
B、abc
C、def
D、defghi
32 .要使下列程序的输出结果是字符A,则下划线处应填(B)。
main()
{ char x=’b’;
int i=0;
do{
--x
}while( );
printf(“%C”,x);}
A、i++<31
B、i++<32
C、i<31
D、i<32
33.main()
{ int a=2,i=0,tn=0,sn=0;
while(i<3)
{ tn=tn+a;
sn=sn+tn;
a=a*10;
i++; }
printf(“%d”,sn);}
程序的运行结果是(C)。
A、244
B、200
C、246
D、248
34 main()
{ char str[80];
scanf(“%s”,str);
insert(str);}
insert(char s[])
{int i;
for(i=strlen(s);i>0;i--)
{ s[2*i]=s[i];
s[2*i-1]=’ ’;
}printf(“%s”,s);}
如果输入的字符是abcd
则程序的运行结果是(D)。
A、a bc d
B、abcd
C、ab cd
D、a b c d
35)下面程序的运行结果是(D)
#include <stdio.h>
main()
{ int y=10;
do{y--;}while(--y);
printf("%d\n",y--);
}
A) -1 B) 1 C) 8 D) 0 36)有如下程序(C)
int a[10]={1,2,3,4,5,6,7,8,9,10};
int *p=&a[3],b;b=p[5];
则b的值是(C)
A) 5 B) 6 C) 9 D)8
37)下列程序的输出结果是(c)
main()
{ double d=3.2; int x,y;
x=1.2; y=(x+3.8)/5.0;
printf("%d\n", d*y);}
A)3 B)3.2 C)0 D)3.07
38)执行以下程序后,a,b的值分别为(C)
main()
{ int a,b,k=4,m=6,*p1=&k,*p2=&m;
a=p1==&m;
b=(*p1)/(*p2)+7;
printf("a=%d\n",a);
printf("b=%d\n",b);
}
A) -1,5 B) 1,6 C) 0,7 D) 4,10
39)若有以下程序
#include <stdio.h>
int a[]={2,4,6,8};
main()
{ int i;
int *p=a;
for(i=0;i<4;i++)a[i]=*p;
printf("%d\n",a[2]);}
上面程序输出结果是(D)
A)6 B)8 C)4 D)2
40)以下程序的输出结果是(B)
main()
{int i,k,a[10],p[3]:
k=5;
for (i=0;i<10;i)a[i]=i;
for (i=0;i<3;i)p[i]=a[i*(i+1)];
for (i=0;i<3;i)k+=p[i]*2;
printf(“%d\n”,k);}
A)20 B)21 C)22 D)23
41.在下列程序中如果输入是1234,输出结果也是1234,则下划线处应填()。
#include <stdio.h>
#define MAXS 40
char stack[MAXS];
int top=0;
int push(char x)
{ if(top>=MAXS)
return 1;
stack[ ]=x;
return 0;}
main()
{ char c;
for(;(c=getchar())!=’\n’; )
push(c);
printf(“%s”,stack);}
A、x
B、x++
C、top
D、top++
42运行完下面的C语言程序段后k的值是()
int k = 4;
(k++)+(k++)+k++)
A 4
B 5
C 6
D 7
43 下面程序运行后,输出的结果是(B)
main()
{int x=10,y=3;
printf("%d\n",y=x%y);}
A) 0 B) 1 C) 3 D)不确定的值
44 运行下面程序后,a的值为(11)
main()
{int a,b;
for(a=1,b=1;a<=10;a++)
{if(b>=20)break;
if(b%3==1)
{b=3;
continue;
}b+=5;}
printf("%d\n",a);}。