admin 管理员组文章数量: 1086019
2024年4月22日发(作者:css scoped)
C语言程序设计题考试题库选择填空题完整答案精美篇
※试题说明:
选择题共15道,2分/道:数据类型1个、选择结构2个、循环
结构2个、数组3个、函数3个、预处理1个、指针2个、结构体1
个。基本操作题、程序改错题、程序填空题、程序设计题。考试时间
90分钟!
《顺序选择结构》
1、若有定义:int a, b; 要通过scanf("%d:%d", &a, &b);
使a得到5, b得到6, 则正确的输入形式为:C
A) 5 6 B) 5,6
C) 5:6D) 5;6
2、有如下程序段
int a=14,b=15,x;
char c='A';
x=(a&&b) && (c<'B'); //假或假为假,假且假为假,……,非0
为1,非1为0
执行该程序段后,x的值为D
A) ture B) false
C) 0 D) 1
3、以下不正确的if语句是( B )。
A) if(x>y) printf("%dn",x);
B) if (x=y)&&(x!=0) x+=y; //应该在两个括号外再加一个大括号
C) if(x!=y) scanf("%d",&x); else scanf("%d",&y);
D) if(x<="">
4、以下程序段运行结果是( C )。
int w=3,z=7,x=10;
printf("%dn",x>10?x+100:x-10);
printf("%dn",w++||z++);
printf("%dn",w>z);
printf("%dn",w&&z);
A) 0 B) 1 C) 0 D) 0
1 1 1 1
1 1 0 0
1 1 1 0
5、下面程序的输出是: C
#include
int main( )
{ int a=-1,b=4,k;
k=(a++<=0) && (!(b--<=0)); //b此时变成了3
printf("%d %d %dn",k,a,b);
return 0;
}
A) 0 0 3 B) 0 1 2
C) 1 0 3D) 1 1 2
6、下面的程序,当j的取值分别为3,2,1时的输出结果分别是( A )。
#include
int main( )
{ int j,p=10;
scanf("%d",&j);
switch (j)
{ case 1:
case 2: printf("%d ",p++); break;
case 3: printf("%d ",--p);
}
return 0;
}
A) 9 10 10B) 9 8 7
C) 10 10 9 D) 9 9 9
7、下面程序的输出结果是( C )。
#include
int main( )
{ int a=-1,b=1,k;
if ((++a<0) && (b--<=0))
printf("%d %dn",a,b);
else
printf("%d %dn",b,a);
return 0;
}
A) -1 1 B) 0 1
C) 1 0 D) 0 0
8、设ch是char型变量,值为'A',则表达式
ch=(ch>='A' && ch<='Z')?ch+32:ch的值是: B
A) Z B) a
C) z D) A
9、putchar(97);的输出结果是: B
A) b B) a
C) 97.0 D) 97
ASCII码:A~Z----65~90 a~z-----97~122 相差32
《循环体》
※1、对于for(表达式1;;表达式3) 可理解为( B )。
A) for(表达式1;0;表达式3)
B) for(表达式1;1;表达式3)
C) for(表达式1;表达式1;表达式3)
D) for(表达式1;表达式3;表达式3)
2、以下程序的输出结果是( C )。
#include
int main( )
{ int count,i=0;
for(count=1; count<=4; count++)
{i+=2; printf("%d",i);}
return 0;
}
A) 20 B) 246
C) 2468D) 2222
3、以下程序的功能是:从键盘上输入若干个学生的成绩, 统计并输
出最高成绩和最低成绩,当输入负数时结束输入。请填空。
#include
int main( )
{ float x,amax,amin;
scanf("%f",&x);
amax=x;
amin=x;
while (________ )
{ if (x>amax) amax=x;
if (______) amin=x;
scanf("%f",&x);
}
printf("namax=%fnamin=%fn",amax,amin);
return 0;
} D
A) x<=0 B) x>0
x>amin x<=amin
C) x>0 D) x>=0 //因为x<0时结束,所以x>=0
x>amin x
※4、执行以下程序后,输出的结果是( D )。#include
int main( )
{ int y=10;
do {y--;}
while (--y);
printf("%dn",y--);
return 0;
}
A) -1 B) 1
C) 8D) 0
5、有如下程序
#include
int main( )
{ int n=9;
while(n>6) {n--;printf("%d",n);}
return 0;
}
该程序段的输出结果是 B
A) 987 B) 876
C) 8765 D) 9876
6、下面程序的运行结果是( B )。
#include
int main( )
{ int s=0,i=1;
while (s<=10)
{ s=s+i*i;
i++;
}
printf("%d",--i);
return 0;
}
A) 4 B) 3
C) 5 D) 6
※7、以下程序段( C )。
x=-1;
do
{ x=x*x; }
while (!x);
A)是死循环B)循环执行两次
C)循环执行一次D)有语法错误
8、下面程序的功能是:输出100以内能被3整除且个位数为6的
所有整数,请填空。 C
#include
int main( )
{ int i,j;
for(i=0;______; i++) //因为100以内,所以不能超过100,即
i<10或i>=9 { j=i*10+6;
if (_______) continue;
printf("%d ",j);
}
return 0;
}
A) i<=10 B) i<10
j%3!=0 j/3
C) i<10 D) i<=9
j%3!=0 i%3
9、下列程序的输出结果是( B )。
#include
int main( )
{ int i, j, k;
for(i=0;i<=2;i++)
{ for(k=1;k<=i;k++) printf(" "); //逐行在原有的基础上再空一格
for(j=0;j<=3;j++) printf("*"); //每行输出4个*号
printf("n");
}
return 0;
}
A) **** B) ****
**** ****
**** ****
C) **** D) ***
**** ***
**** ***
1、执行下面的程序段后,变量k中的值为____A______。
int k=3,s[2];
s[0]=k; k=s[1]*10; //因为s[1]未知,所以k未知!
A) 不定值B) 33
C) 30 D) 10
2、已知数组a的赋值情况如下所示,则执行语句a[2]++; 后,a[1]
和a[2]的值
分别是____B____。
a[0] a[1] a[2] a[3] a[4]
┌──┬──┬──┬──┬──┐
│10 │20 │30 │40 │50 │
└──┴──┴──┴──┴──┘
A) 20和30 B) 20和31 //数组的位置不会变化,++放后面或前
面变的是数值!
C) 21和30 D) 21和31
3、有如下程序
#include
int main( )
{ int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;
for(i=0;i<3;i++)
for(j=0;j<=i;j++) s+=a[i][j];
printf("%dn",s);
return 0;
}
该程序的输出结果是___B_____。
A) 18 B) 19
C) 20 D) 21
4、以下程序的输出结果是____A____。
#include
int main( )
{ char p1[ ]="abcd", p2[ ]="efgh",str[50]="ABCDEFG";
strcat(str,p2); strcat(str,p1); //先把p2的值赋给str, 再把p1的
值赋给str
str本身也有值!按顺序来就行。
printf("%s",str);
return 0;
}
A) ABCDEFGefghabcd B) ABCDEFGefgh
C) efghabcd D) ABCDEFGabcdefgh
5、下面程序的输出是____C____。
#include
int main( )
{ int a[10]={1,2,3,4,5,6,7,8,9,10};
printf("%dn",a[a[1]*a[2]]);
return 0;
}
A) 3 B) 4
C) 7D) 2
6、若有以下说明:
int a[12]={1,2,3,4,5,6,7,8,9,10,11,12}; char
c='a',d,g;
则数值为4的表达式是____D____。
A) a[g-c] B) a[4]
C) a['d'-'c'] D) a['d'-c] //’d’-‘a’=3,相当于a[3]=4
7、以下程序执行后的输出结果是____D____。
#include
#include
int main( )
{ static char s1[50]={"some string *"};
static char s2[ ]={"test"};
printf("%d,",strlen(s2)); //%d后面的小逗号要注意!
strcat(s1,s2);
printf("%sn",s1);
return 0;
}
A) 13,some string *test B) 13 some string *test
C) 4,test D) 4,some string *test
8、下列一组初始化语句中,正确的是___B_____。
A) int a[8]={ }; //没有赋初值!B) int a[9]={0,7,0,4,8};
C) int a[5]={9,5,7,4,0,2}; //超出容量!D) int a[7]=7*6; //没有花
括号!
//为数组中的元素赋初值,称为初始化
9、下列一维数组初始化语句中,正确且与语句
float a[ ]={0,3,8,0,9};等价的是____D____。
A) float a[6]={0,3,8,0,9}; B) float a[4]={0,3,8,0,9};
C) float a[7]={0,3,8,0,9}; D) float a[5]={0,3,8,0,9}; //因为是等价,
所以最好刚刚好!
《指针》
1、下列程序执行后的输出的结果是
void func(int *a,int b[ ])
{
b[0]=*a+6;
}
int main()
{
int a,b[5];a=0;b[0]=3;
func(&a,b);
printf("%dn",b[0]);
return 0;
}
A) 6B) 7
C) 8 D) 9
正确答案是: A
2、下面程序的输出结果是
#include
void prt(int *x., int *y., int *z)
{
printf("%d,%d,%dn",++*x,++*y,*(z++));
}
int a=10,c=20,b=40;
int main()
{
prt(&a,&b,&c);
prt(&a,&b,&c);
return 0;
}
A) 11,42,31 B) 11,41,20
12,22,41 12,42,20
C) 11,21,40 D) 11,41,21
11,21,41, 12,42,22
正确答案是: B
3、下列程序执行后输出的结果是
int main()
{
int a[]={2,4,6,8,10};
int y=1,x,*p;
p=&a[1];
for(x=0;x<3;x++)
y+=*(p+x);
printf("%dn",y);
return 0;
}
A) 17 B) 18
C) 19D) 20
正确答案是: C
4、假设已有如下定义语句
char c[8]="Tianjin",*s=c;
int i;
则下面输出语句中,错误的是
A) printf("%sn",s);B) printf("%sn",*s);
C) for(i=0;i<8;i++) D) for(i=0;i<8;i++)
printf("%c",c[i]); printf("%c",s[i]);
正确答案是: A
5、下面程序的输出结果是
int main()
{
int j,a[]={1,3,5,7,9,11,13,15},*p=a+5;
for(j=3; j>0; j--)
{
switch(j)
{
case 1:
case 2: printf("%d ",*p++); break;
case 3: printf("%d ",*(--p));
}
}
return 0;
}
A) 9 9 11B) 9 11 11
C) 7 7 9 D) 7 9 9
正确答案是: A
6、设有如下定义:
int arr[]={6,7,8,9,10};
int *ptr;
则下列程序的输出结果为
ptr=arr;
*(ptr+2)+=2;
printf("%d,%dn",*ptr,*(ptr+2));
A) 8,10 B) 6,8
C) 7,9 D) 6,10
正确答案是: D
7、变量的指针,其含义是指该变量的_______。
A) 值
B) 地址
C) 名
D) 一个标志
正确答案是: B
8、有变量定义和函数调用语句:int a = 25; print_value(&a);下
面函数的正确输出结果是_______。
void print_value(int *x)
{ printf("%dn", ++*x);}
A) 23
B) 24
C) 25
D) 26
正确答案是: D
9、下面程序段的运行结果是_____。
char *s = "abcde";
s += 2; printf("%d", s);
A) cde
B) 字符'c'
C) 字符'c'的地址
D) 无确定的输出结果
正确答案是: C
《编译预处理》
1、以下for语句构成的循环执行了
#include
#define N 2
#define M N+1
#define NUM (M+1)*M/2
int main()
{
int i,n=0;
for(i=1;i<=NUM;i++)
{
n++;
printf("%d",n);
}
printf("n");
return 0;
}
A) 5次B) 6次
版权声明:本文标题:C语言程序设计题考试题库选择填空题完整答案精美篇 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1713728380a648797.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论