C语言(答案-编辑时间2013.6.11).doc
- 文档编号:234661
- 上传时间:2023-04-28
- 格式:DOC
- 页数:25
- 大小:124.50KB
C语言(答案-编辑时间2013.6.11).doc
《C语言(答案-编辑时间2013.6.11).doc》由会员分享,可在线阅读,更多相关《C语言(答案-编辑时间2013.6.11).doc(25页珍藏版)》请在冰点文库上搜索。
C语言程序设计复习资料
一、填空题
1、C语言程序是函数构成的,其中有且只有1个主函数,程序的的执行总是从该函数开始。
2、用条件运算符写出求两个整数x,y中大数的表达式z=x>y?
x:
y。
3、定义一个符号常量PI,其值为3.1415926,格式是#definePI3.1415926。
4、设整型变量X=5,Y=6,Z=7,执行X%=Y+Z后,X=5。
5、执行语句“for(j=15;j>=5;j--);”后,变量j的值为4。
6、在一个函数中有定义inta=60,*p=&a;执行*p=*p+15;后,a的值为75。
7、结构化程序设计的三种基本结构是顺序结构、选择结构和循环结构。
8、定义一个长度为100的整形一维数组a,且前5个元素的初值为3,6,9,12,15,定义的格式为:
inta[100]={3,6,9,12,15}。
9、写出表达式25>15&&65<25||88>75的值1。
10、函数的传值调用中,实际参数把它的值传递给形式参数。
11、表达式(int)(20+2.5*3+6+5.3)的值是38。
12、若有以下定义:
chara;intb;floatc;doubled;则表达式a*b+d-c的值的类型是double。
13、写出表达式66>65&&65<85||85>95的值1。
14、在C语言中,允许在程序中用typedef来定义新的类型名代替已有的类型名,例如 typedefintINTEGER; 。
15、C语言采用编译方式将源程序转换为二进制的目标代码,编写好一个C程序到完成运行一般经过以下几个步骤:
编辑、编译、连接、执行;
16、C程序是由函数组成的,一般情况下函数体由说明部分和执行部分组成,其中说明部分的作用是确定调用形式;
17、表达式m=a>b?
a+b:
b+5当a=15,b=11时,m的值为:
26;
18、函数的传值调用中,实际参数把它的值传递给形式参数;
19、写出表达式1<4&&7<5的值0;
20、在C语言中,字符串是用双引号引起来的一串字符。
在机器中,字符串"ABcdEFg\n"需占用 8 字节的内存空间;
21、结构化程序设计的三种基本结构是顺序结构、选择结构和循环结构;
22、定义一个长度为2行3列的整形二维数组a,元素的初值为6,12,18,24,30,36定义的格式为:
inta[2][3]={6,12,18,24,30,36};
23、表达式(int)(5.5*3+11+5.5)的值是33;
二、选择题:
1.下列各组字符序列中,可用作C语言程序标识符的一组字符序列上(D )。
(A)M.b,sum,average,_above(B)class,day,lotus_1,2day
(C)#md,&12x,month,student_n1(d)D56,r_1_2,name,st_1
2.下列变量说明语句中,正确的是( D)。
(A)char:
abc;(B)chara;b;c;
(C)intx;y;(D)intx,y;
3.设x=2.5,a=7,y=4.7,算术表达式x+a%3*(int)(x+y)%2/4的值为(A)。
(A)2.5(B)7
(C)4.7(D)2.75
4.下列语句中,不正确的( D)。
A、staticinta[2][3]={1,2,3,4,5,6};
B、staticinta[2][3]={{1},{4,5}};
C、staticinta[][3]={{1},{4}};
D、staticinta[][]={{1,2,3},{4,5,6}};
5.下列定义数组的语句中正确的是(A)。
(A)#definesize10(B)charstr[];
charstr1[size],str2[size+2];
(C)intnum[‘10’];(D)intn=5;
inta[n][n+2];
6.以下程序的输出结果是(D )。
#include
main()
{ inti,j,k,a=3,b=2;
i=(--a==b++)?
--a;++b;
j=a++;k=b;
Printf(“i=%d,j=%d,k=%d\n”,i,j,k);
}
(A)i=2,j=1,k=3(B)i=i,j=1,k=2
(C)i=4,j=2,k=4(D)i=1,j=1,k=3
7.一个C语言的源程序中( C )。
(A)必须有主函数和其它函数(B)可以有多个主函数
(C)必须有一个主函数(D)可以没有主函数
8.写出程序的运行结果( A )。
main()
{ intn;
for(n=1;n<=10;n++)
{if(n%3==0)continue;
printf("%d",n);
}
}
(A)12457810(B)369
(C)12(D)12345678910
9.若输入ab,程序运行结果为( C )。
main()
{ staticchara[2];
scanf("%s",a);
printf("%c,%c",a[1],a[2]);
}
(A)a,b(B)a,
(C)b,(D)程序出错
10.下列函数定义不正确的有( A )。
intmax()(B)intmax(x,y)
{intx,y,z;intx,y;
z=x>y?
x:
y;{intz;
}z=x>y?
x:
y;
(C)intmax(x,y)return(z);
{intx,y,z;}
z=x>y?
x:
y;(D)intmax()
return(z);{}
}
11. 在函数内,定义变量时存储类型符可省略的是 (A )
A. auto B. static C. extern D. register
12. 下列表达式的值为0的是 ( C)
A. 3﹪5 B. 3/5.0 C. 3/5 D. 3<5
13. 正确的C语言用户自定义标识符是 ( A )
A. print B. float C. when?
D. random﹪2
14. 设int a = 3;则表达式a<1&& - - a>1的运算结果和a的值分别是 (C )
A. 0和2 B. 0和3 C. 1和2 D. 1和3
15. 设 char x =′a′;则printf(″x = ﹪c, y = ﹪c \ n″,x,97);的输出是(D )
A. x = a,y = 97 B. x = 97,y = a
C. x = 97,y = 97 D. x = a,y = a
16.设char str[100];int i = 5;则引用数组元素的错误形式是 (D )
A. str[i + 10] B. (str + i) C. (str + i - 1) D. ((str + + ) + i)
17.执行下列程序
int a[3][3]={{1},{2},{3}};
int b[3][3]={1,2,3};
main()
{printf(″﹪d \ n″,a[1][0] + b[0][0]);}
后输出的结果是 ( D )
A. 0 B. 1 C. 2 D. 3
18.执行下列程序
int a = 3, b = 4;
void fun(int x1, int x2)
{printf(″﹪d, ﹪d \ n″, x1 + x2, b);}
main()
{int a = 5, b = 6;fun(a, b);}
后输出的结果是 ( C )
A. 3,4 B. 11,1 C. 11,4 D. 11,6
19.设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值:
scanf("i=%d,f=%f",&i,,&f);
为了把100和765.12分别赋给i和f,则正确的输入为(B)
A)100765.12B)i=100,f=765.12C)100765.12D)x=100y=765.12
20.设x和y均为int型变量,则执行下的循环后,y值为(C)
for(y=1,x=1;y<=50;y++)
{if(x=10))break;
if(x%2==1)
{x+=5;continue;}
x-=3;
}
A)2B)4C)6D)8
21为表示关系x≥y≥z,应使用C语言表达式___A____
A)(x>=y)&&(y>=z)B(x>=y)AND(y>=z)
C)(x>=y>=z)D)(x>=y)&(y>=z)
22设有如下定义:
intx=10,y=3,z;
则语句
printf("%d\n",z=(x%y,x/y));
的输出结果是__D__________
A)1B)0
C)4D)3
23以下程序的输出结果是___D_____
main()
{intx=10,y=10;
printf("%d%d\n",x--,--y);
}
A)1010B)99
C)910D)109
24定义如下变题和数组:
inti;
intx[3][3]={1,2,3,4,5,6,7,8,9};
则下面语句的输出结果是__C_________
for(i=0;i<3;i++)printf("%d",x[i][2-i]);
A)159B)147
C)357D)369
25若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为D
A)a<>0B)!
a
C)a=0D)a
26以下说法中正确的是C
A)C语言程序总是从第一个的函数开始执行
B)在C语言程序中,要调用的函数必须在main()函数中定义
C)C语言程序总是从main()函数开始执行
D)C语言程序中的main()函数必须放在程序的开始部分
27执行下面的程序后,a的值为_B__
main()
{inta,b;
for(a=1,b=1;a<=100;a++)
{if(b>=20)break;
if(b%3==1)
{b+=3;
continue;
}b-=5;
}}
A)7B)8C)9D)10
28能正确表示a和b同时为正或同时为负的逻辑表达式是_B_____
A、(a>=0||b>=0)&&(a<0||b<0)
B、(a>=0&&b>=0)&&(a<0&&b<0)
C、(a+b>0)&&(a+b<=0)
D、a*b>0
29定义如下变量:
intn=10;
则下列循环的输出结果是D
while(n>7)
{n--;
printf("%d",n);
}
A)10987B)9876C)1098D)987
30两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是_____A_______
main()
{intx;
scanf("%d",&x);
if(x++〉5)printf("%d",x);
elseprintf("%d\n",x--);
}
A)7和5B)6和3C)7和4D)6和4
31C语言中运算对象必须是整型的运算符是__A____
A)%=B)/C)=D)〈=
31若有以下程序段,
intc1=1,c2=2,c3;
c3=1.0/c2*c1;
则执行后,c3中的值是__A____
A)0B)0.5C)1D)2
32能正确表示逻辑关系:
“a≥10或a≤0”的C语言表达式是___D___
A)a>=10ora<=0B)a>=0|a<=10C)a>=10&&a<=0D)a>=10‖a<=0
32有如下程序
main0
{intx=1,a=0,b=0;
switch(x){
case0:
b++;
case1:
a++
case2:
a++;b++
}
printf(“a=%d,b=%d\n”,a,b);
}
该程序的输出结果是____A______
A)a=2,b=1B)a=1,b=1C)a=1,b=0D)a=2,b=2
33阅读下列程序:
main()
{intn[3],i,j,k;
for(i=0;i〈3;i++)
n[i]=0;
k=2;
for(i=0;i〈k;i++)
for(j=0;j〈k;j++)
n[j]=n[i]+1;
printf("%d\n",n[1]);
上述程序运行后输出结果是___D__________
A)2B)1C)0D)3
34在函数内,定义变量时存储类型符可省略的是 ___A_____
A. auto
B. static
C. extern
D. register
35下列程序的输出结果是_____C______________
main()
{inta[5]={2,4,6,8,10},*P,**k;
p=a;
k=&p;
printf("%d",*(p++));
printf("%d\n",**k);
}
A)44B)22C)24D)46
36以下程序的输出结果是__C____
main()
{inti;
for(i=0;i<3;i++)
switch(i){
case0:
printf("%d",i);
case2:
printf("%d",i);
default:
printf("%d",i);
} }
022111B)021021C)000122D)012
37以下程序的输出结果是__A_______
main()
{inta=3,b=4,c=5,d=2;
if(a>b)
if(b>c)
printf("%d",d+++1);
else
printf("%d",++d+1);
printf("%d\n",d);
}
A)2B)3C)43D)44
38执行下列程序
int a = 3, b = 4;
void fun(int x1, int x2)
{printf(″﹪d, ﹪d \ n″, x1 + x2, b);}
main()
{int a = 5, b = 6;fun(a, b);}
后输出的结果是___C______
A. 3,4 B. 11,1 C. 11,4 D. 11,6
39.下列标识符中,合法的标识符是( C )
A、123abc B、-123abc C、_123abc D、do
40.C语言源程序文件的扩展名是( D )
A、.com B、.obj C、.exe D、.c
41.在C语言中,不合法的int型常量是( D )
A、32767 B、0678 C、0XABC D、32768L
42.设有语句chara=`\72`;则变量( A )
包含1个字符 B、包含2个字符 C、包含3个字符 D、包含4个字符
43.以下所列语句中,合法的语句是( B)
A、a=1,b=2 B、++a; C、a=a+1=5; D、y=int(a);
44.若有定义:
inta=10,b=9,c=8;执行下面两条语句c=(a-=(b-5));c=(a%11)+(b=3);后,变量b的值为( A )
A、9 B、4 C、3 D、2
45.设x,y,z和k都是int型变量,则执行表达式:
x=(y=4,z=16,k=32)后,x的值为( B )
A、52 B、32 C、16 D、4
46.假设已说明I为整型变量,f为单精度实型变量,d为双精度实型变量,则表达式10+'a'+I*f-d最后所得值的数据类型为( D )
A、字符型 B、整型 C、单精度实型 D、双精度实型
47.设x为int型变量,则执行以下语句后,x的值为( B )
x=10;x+=x-=x-x;
A、10 B、20 C、30 D、40
48.已知inti=1,j;执行语句j=-i++;后,i和j的值分别为( C )
A、1,1 B、1,-1 C、2,-1 D、2,-2
49.若有定义:
inta,b;使用语句scanf("%d,%d",&a,&b);给变量a,b分别赋值10和20,则
正确的输入格式为( A )
A、10,20 B、10 20 C、10<回车>20 D、a=10,b=10
50.设x,y,t均为int型变量,则执行语句:
x=y=3;t=++x||--y;后y的值为( B )
A、4 B、3 C、2 D、1
51.以下关于if语句的错误描述是( B)
条件表达式可以是任意的表达式
条件表达式只能是关系表达式或逻辑表达式
条件表达式的括号不可以省略
与else配对的if语句是其之前最近的未配对的if语句
52.以下程序的输出结果是(B)
main()
{intm=5;
if(m++>5)printf("%d\n",m);
elseprintf("%d\n",m--);
}
A、7 B、6 C、5 D、4
53.当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是( C)
A、c=b=a; B、(a=c)||(b=c); C、(a=c)&&(b=c); D、a=c=b;
54.使条件表达式(year%4==0&&year%100!
=0)||(year%400==0)结果为假的值是( A)
A、1950 B、2000 C、1996 D、2004
55.当执行以下程序段时(A )
x=-1;
do
{x=x*x;} while(!
x);
A、循环体将执行一次 B、循环体将执行两次
C、循环体将执行无限次 D、系统将提示有语法错误
56.已知有语句:
for(x=0,y=0;(y!
=123)&&(x<4);x++);则此for循环( C)
A、是无限循环 B、循环次数不定 C、执行4次 D、执行3次
57.以下程序的输出结果是( A)
main()
{inta=5,b=4,c=6,d;
printf("%d\n",d=a>b?
(a>c?
a:
c):
(b));
}
A、6 B、5 C、4 D、不确定
58.以下程序段循环体的执行次数是(B )
main()
{inti,j;
for(i=0,j=1;i<=j+1;i+=2,j--)
printf("%d\n",i);
}
A、0 B、1 C、2 D、3
三.判断题
1、C语言中,变量名只能是小写字母表示,符号常量名可用大写表示 ( 错)
2、在C语言中,变量可以不要定义,直接使用 ( 错 )
3、一个C语言程序总是从主函数开始执行的 ( 对 )
4、注释语句必须用/*和*/括起来,且只能位于某一语句的后面 ( 错 )
5、"a"和'a'均是占用1个字节的内存空间 ( 错 )
6、在C语言中,逻辑“真”等价于不等于0的数 ( 对 )
7、在与switch语句配套的case语句中所使用的表达式可以是变量或常量( 错 )
8、执行以下程序段:
intx;floaty;y=(float)x;后变量x的类型不变 ( 对 )
9、数学公式“|x2+y|”改写成C语言表达式为“|x*x+y|” ( 错 )
10.在循环结构中可用break语句强行从循环中退出 ( 对 )
四、程序阅读题
1、main()
{intx,y=25;
x=-5+5*5+y;
printf("x=%dy=%d\n",x,y);
x=10+2*3-7;
y=y+10+2*3;
printf
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 答案 编辑 时间 2013.6 11