复习题一
选择题(20×2)(参考答案:CCCACCDCDB)
1.c语言规定:在一个源程序中,main函数的位置()。
A. 必须在最开始
B. 必须在系统调用的库函数的后面
C. 可以任意
D. 必须在最后
2.若有代数式3ae/bc,则不正确的c语言表达式是()。
A. a/b/c*e*3
B. 3*a*e/b/c
C. 3*a*e/b*c
D. a*e/c/b*e
3.c语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符()。
A. 必须为字母
B. 必须为下划线
C. 必须为字母或下划线
D. 可以是字母、数字和下划线中任-种字符
4.若以下变量均是整型,且num=sum=7;则执行表达式sum=num++, sum++,++num后sum 的值为()。
A. 7
B. 8
C. 9
D. 10
5.以下关于运算符优先顺序的描述中正确的是()。
A. 关系运算符<算术运算符<赋值运算符<逻辑与运算符
B. 逻辑与运算符<关系运算符<算术运算符<赋值运算符
C. 赋值运算符<迟辑与运算符<关系运算符<算术运算符
D. 算术运算符<关系运算符<赋值运算符<逻辑与运算符
6.已知x=43,ch='A',y=0;则表达式(x>=y&&ch<'B'&&!y)的值是()。
A. 0
B. 语法错
C. 1
D. "假"
7.以下程序的输出结果是()。
main()
{
printf("\n*s1=%15s*","chinabeijing");
printf("\n*s2=%-5s*","chi");
}
A.
*s1=chinabeijing*
s2= * * chi *
B.
*s1=chinabeijing *
*s2=chi*
C.
s1=chinabeijing *
*s2=chi *
D.
*s1=chinabeijing *
*s2=chi *
8.执行语句:printf(“|%10.5f| \n”,12345.678);的输出是()。
A、|12345.67800|
B、|12345.6780|
C、|12345.67800|
D、|12345.678|
9.if语句的控制条件()。
A、只能用关系表达式
B、只能用关系表达式或逻辑表达式
C、只能用逻辑表达式
D、可以用任何表达式
10.若执行以下程序时从键盘上输入3□4,则输出结果是()(□表示空格)。
main()
{int a,b,s;
scanf(“%d%d”,&a,&b);
s=a;
if (a<b) s=b;
s*=s;
printf(“%d\n”,s);
}
A、14
B、16
C、18
D、20
一、填空题(15×2)
1.一个c源程序中至少应包括一个_ 主函数__。
2.函数都是由_ 函数说明_和__函数体__两部分组成
3.一个C语言程序,总是从__main __函数开始执行
4.__ 复合语句_是由大括号括起来的一组(也可以是1条)语句。
5.在c语言中的实型变量分为两种类型,它们是_ float_ __和_ double __。
6.c语言中的标识符只能由三种字符组成,它们是_字母、_ 数字_、_下划线__。
7.若a是int型变量,且a的初值为6,则执行表达式a+=a-=a*a后a的值为_ -60 _。
8.若有定义int a=2,b=3,float x=3.5,y=2.5;则表达式(float)(a+b)/2+(int)x%(int)y的值为_ _ 3.500000 。
9.若有定义:int e=1,f=4,g=2;float m=10.5,n=4.0,k;
则执行赋值表达式k=(e+f)/8+sqrt((double)n)*1.2/g+m后k的值是__13.700000 __。10.若有定义int m=5,y=2;,则执行表达式y+=y-m*=y后的y值是__ -16 ___。
11.若有定义:int b=7;float a=2.5,c=4.7;则表达式a+(int)(b/3*(int)(a+c)/2)%4的值为_ 5.500000 _。
12.当a=5,b=4,c=2时,表达式a>b!=c 的值是_ 1 _。
13.以下程序的运行结果是_ 1、0 _。
main()
{
int x,y,z;
x=1;y=1;z=0;
x=x||y&&z;
printf("%d,%d",x,x&&!y||z);
}
14.若a=5,b=2,c=1,则表达式a-b<c ||b==c的值是_ 0 _。
15.以下程序的输出结果为_ *3.140000,3.142* _。
main()
{
printf(“*%f,%4.3f*\n”,3.14,3.1415);
二、1.以下程序的输出结果是_ 650152 _。
main()
{unsigned int n;
int i= -521;
n=i;
printf(“n=%u\n”,n);
}
A、n= -521
B、n=521
C、n=65015
D、n=102170103 2.以下程序的输出结果是_ D _。
main()
{int x=10,y=10;
pirntf(“%d %d\n”,x,y);
}
A、10 10
B、9 9
C、9 10
D、10 9
3.以下程序段的输出结果是_ B _。
int a=10,b=50,c=30;
if(a>b)
a=b;
b=c;
c=a;
printf(“a=%d b=%d c=%d\n”,a,b,c);
A、a=10 b=50 c=10
B、a=10 b=30 c=10
C、a=50 b=30 c=10
D、a=50 b=30 c=50
4.以下程序的输出结果是_ C _。
main()
{int a=0,b=1,c=0,d=20;
if (a) d=d-10;
else if (!b)
if (!c) d=15;
else d=25;
printf(“d=%d\n”,d);
printf函数是一个标准库函数}
A、d=10
B、d=15
C、d=20
D、d=25
5.以下程序的输出结果是_ b _。
main()
{int a=1,b=0;
switch(a)
{case 1: switch (b)
{case 0:printf(“**0**”);break;
case 1:printf(“**1**”);break;
}
case 2:printf(“**2**”);break;
}
}
A、**0**
B、**0****2**
C、**0****1****2**
D、有语法错误6.以下程序的输出结果是_ a _。
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=2,b=1
B、a=1,b=1
C、a=1,b=0
D、a=2,b=2
复习二
一、选择题(本题共20道小题,共40分。)
1. (14) 指针s所指字符串的长度为
char *s="\\"Name\\Address\n";
A) 19 B) 15 C) 18 D)说明不合法
2. 若有下面的程序片段:
int a[12]={0}, *p[3], **pp, i;
for(i=0; i<3; i++)
p[i]=&a[i*4];
pp=p;
则对数组元素的错误引用是
A) pp[0][1] B) a[10] C) p[3][1] D) *(*(p+2)+2)
3. 若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为
A) a<>0 B) !a
C) a=0 D) a
4. 若已定义:
int a[ ]={0,1,2,3,4,5,6,7,8,9], *p=a,i;
其中0≤i≤9, 则对a数组元素不正确的引用上
A) a[p-a] B) *(&a[i]) C) p[i] D) a[10]
5. 以下程序的输出结果是
main( )
{ int x=10,y=10,I;
for(i=0;x>8;y=++i)
printf("%d,%d ",x--,y);
}
A) 10 1 9 2 B) 9 8 7 6 C) 10 9 9 0 D) 10 10 9 1
6. 下面程序的输出是
void prtv(int *x)
printf("%d\n", ++*x);}
main()
{ int a=25;
prtv(&a);}
A) 23 B) 24
C) 25 D) 26
7. 下面能正确进行字符串赋值操作的语句是
A)char s[5]={"ABCDE"}; B)char s[5]={'A'、'B'、'C'、'D'、'E'};
C) char *s;s="ABCDEF"; D)char *s; scanf("%s",s);
8. 设x,y,z,t均为int型变量,则执行以下语句后,t的值为
x=y=z=1;t=++x||++y&&++z;
A)不定值B)2 C)1 D)0
9. 设p1和p2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是
A)k=*p1+*p2;
B)p2=k;
C)p1=p2;
D)k=*p1 *(*p2);
10. 请读程序:
#include<stdio.h>
#define SUB(X,Y) (X)*Y
main()
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论