C语言.docx
- 文档编号:18150119
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:70
- 大小:64.75KB
C语言.docx
《C语言.docx》由会员分享,可在线阅读,更多相关《C语言.docx(70页珍藏版)》请在冰点文库上搜索。
C语言
第1单元 C语言基础知识
一、单项选择题
1. A 是构成C语言程序的基本单位。
A.函数 B.过程 C.子程序 D.子例程
2.以下叙述中正确的是___A___。
A.构成C程序的基本单位是函数
B.可以在一个函数中定义另一个函数
C.main()函数必须放在其它函数之前
D.所有被调用的函数一定要在调用之前进行定义
3.下述正确的C语言常量是 D 。
A.E2 B.1.5E2.3 C.5.OE D.3e-3
4.下列计算机语言中,CPU能直接识别的是__ D____。
A.自然语言 B.高级语言 C.汇编语言 D.机器语言
5.设intx=1,y=1;表达式(!
x||y--)的值 B 。
A.0 B.1 C.2 D.-1
6. B 是C语言提供的合法的数据类型关键字。
A.Float B.signed C.integer D.Char
7.不合法的常量是 D 。
A.’\2’ B."" C.‘’ D."\486"
8.以下选项中合法的实型常数是_____C。
A.5E2.0 B.E-3 C..2E0 D.1.3E
9.以下选项中合法的用户标识符是__D____。
A.long B._2Test C.3Dmax D.A.dat
10.在以下各组标识符中,合法的用户标识符是
(1)A 、
(2)C 、 (3)D 。
(1)A.B0l B.table_1 C.0_t D.k%
int t*.1 W10 point
(2)A.Fast_ B.void C.pb1 D.〈book〉
Fast+Big abs fabe beep
(3)A.xy_ B.longdouble C.*p D.CHAR
变量1 signed history Flaut
11.与十进制511等值的十六进制数为_____A_。
A.1FF B.2FF C.1FE D.2FE
12.英文大写字母B的ASCII码为42H,英文小写字母b的ASCII码为___C___。
A.43H B.84H C.74H D.62H
13.已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,则用八进制表示的字符常量'\101'是____A_。
A.字符A B.字符a C.字符e D.非法的常量
14.属于合法的C语言长整型常量的是 B 。
A.5876273 B.OL C.2E10 D.(long)5876273
15.在C语言中,设int型占2字节,下列不正确的int型常数为 A 。
A.32768 B.0 C.037 D.0xaf
16.在C语言中不同数据类型的长度是 B 。
A.固定的 B.由用户自己定义的 C.任意的 D.与机器字长有关的
17.在通常微机上的C语言中,int类型数据占用
(1) C 个字节存储;unsigned int类型数据占用 (2C) 个字节存储;short类型数据占用 A(3)/B 个字节存储;long类型数据占用 (4)C 个字节存储。
A.1 B.2 C.4 D.8
18.下列四组(八进制或十六进制)常数中,正确的一组是 。
A.016 0xbf 0017 B.0abc 017 0xa
C.010 x11 Oxl6 D.0A12 7FF -123
19.在C语言中,合法的字符常数是 B 。
A.’\084’ B.’\x42’ C.’\84’ D.”\0”
20.下列不正确的转义字符是 C 。
A.‘\\’ B.’\’’ C.‘074’ D.’\0’
21.下列四个叙述中,错误的是 A 。
A.在C程序中,无论是整数还是实数,都能被准确地表示 。
B.在C程序中,变量名代表存储器中的一个位置
C.静态变量的生存期与整个程序的运行期相同
D.C语言中的变量必须先说明后引用
22.有关下述语句输出的判断中,正确的是 B 。
int x=0xafffc;
printf(“%d”,x);
A.赋值非法 B.输出值不确定 C.输出值为afff D.输出值-4
23.有关下述语句输出的判断中,正确的是 A 。
charx=’\xeO’;
printf(“%x”,x);
A.赋值非法 B.输出值不确定 C.输出值为-32 D.输出值为224
24.下述语句的输出为 D 。
int x=-1;
printf(“%d,%u,%o”,x,x,x);
A.-1,-1,-1 B.-1,32767,-177777 C.-1,32768,177777 D.-1,65535,177777
25.下述语句的输出为 B 。
intx=2.5555555;
floaty=2.5555555;
printf(“%d,%f”,x,y);
A.格式不匹配,错误输出 B.2,2.555556
C.3,2.555555 D.3,2.555556
26.在C语言中,要求参加运算的数必须是整数的运算符是 C 。
A./ B.!
C.% D.==
27.下列语句中,符合语法的赋值语句是 D 。
A.a=7+b+c=a+7; B.a=7+b++=a+7 C.a=7+b,b++,a+7 D.a=7+b,c=a+7
28.下述程序的输出结果是 A 。
#include
voidmain( )
{ inta=2;
a%=4-1;
printf(“%d,”,a);
a+=a*=a-=a*=3;
printf(“%d”,a);
}
A.2,O B.1,O C.-1,12 D.2,12
29.下述正确的语句是 A 。
A.intx=y=z=0; B.intz=(x+y)++; C.x=+3==2; D.d%=2.5;
30.下述程序的输出是 A 。
#include
voidmain( )
{ inta=011,b=101;
printf(“\n%x,%o”,++a,b++);
}
A.12,145 B.9,144 C.a,145 D.a,5
31.以下非法的赋值语句是___C___。
A.n=(i=2,++i).; B.j++; C.++(i+1); D.x=j>0;
32.下列语句错误的是 C 。
A.x=sizeofint; B.x=sizeof(3.14);
C.printf("%d",a=a+1,b--,c+1); D.printf("%d",++x,x++);
33.对下述程序段正确的描述是 C 。
(注:
题中的□表示空格,以下同)
intx=1234;
printf("ABS(x)=|%-08d|",x);
A.输出为ABS(x)=|-0001234| B.输出为ABS(x)=|0001234|
C.输出为ABS(x)=|1234□□□□| D.输出格式描述非法,无输出
34.下面程序的输出结果是 D 。
#include
voidmain( )
{ int x=02,y=3;
printf("x=%%d,y=%%d",x,y);
}
A.x=2,y=3 B.x=%2,y=%3 C.x=%%d,y=%%d D.x=%d,y=%d
35.设a和b均为double型常量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是__B____。
A.6.500000 B.6 C.5.500000 D.6.000000
36.下述程序 C 。
#include
voidmain( )
{ int a=1234;
float b=123.456;
double c=12345.52345;
printf("\n%2d,%2.1f,%2.1f",a,b,c);
}
A.输出格式中位数不够,无输出 B.输出结果为12,12.4,12.5
C.输出结果为1234,123.5,12345.5 D.输出结果为1234,123.4,1234.5
37.下述程序 B 。
#include
voidmain( )
{ long a=0xabcdef;
double b=1.0E40;
printf("\n5.2e,%-6x",b,a);
}
A.由于类型不符,不产生输出 B.输出1.0e+40.cdef□□
C.输出1.Oe+40,abcdef D.有输出,但值与B.,C.皆不相同
38.已知字母A的ASCII码值是65,以下程序 。
#include
voidmain( )
{ chara='A';
intb=20;
printf("%d,%o",(a=a+1,a+b,b),a+'a'-'A',b);
}
A.表达式非法,输出零或不确定值 B.因输出项过多,无输出或输出不确定值
C.输出结果为20,141 D.输出结果为20,141,20
二、填空题
1.经过下述赋值后,变量x的数据类型是 。
intx=2;
doubley;
y=(int)(float)x;
2.下述程序的输出是 。
#include
voidmain( )
{intx=-2345;
floaty=12.3;
printf("%6D,%06.2F",x,y);
}
3.下述程序的执行结果是 。
#include
voidmain( )
{printf("\n%s","\tab\%L"\’\060\084\\");
}
4.char型常量在内存中存放的是 ASSCII 码值。
5.’\72’在内存中占
(1)1 个字节,"\72"在内存中占
(2)2 个字节。
6.表达式5%(-3)的值是
(1)-2 ,表达式-5%(-3)的值是
(2) 2 。
7.定义:
double x=3.5,y=3.2;则表达式(int)x*0.5的值是
(1) 1.5,表达式y+=x++的值是
(2)0.7 。
8.定义:
int m=5,n=3;则表达式m/=n+4的值是
(1) 0 ,表达式m=(m=1,n=2,n-m)的值是
(2)1 ,表达式m+=m-=(m=1)*(n=2)的值是 (3)-2 。
若再进行下述赋值:
m=1,2,n++;则m的值是 (4) 1,n的值是(5)4 。
9.阅读下述程序,说明其输出结果。
请填空。
#inetude
voidmain()
{intn=3,b=4;
printf("%d\n',a=a+1,b+a,b+1); \*输出结果
(1)4 */
printf("%d\n',(a=a+1,b+a,b+1)); \*输出结果
(2) 5*/
}
10.设有以下定义,并已赋于了确定的值:
char w;int x;float y;double z;
则表达式w*x+z-y所求得值的数据类型为 y 。
11.设有intx=11;,则表达式(x++*1/3)的值为 3 。
12.设已定义intx=1;y=1,则表达式(!
x||y--)的值是 1 。
13.设x为int变量,与逻辑表达式!
x等价的最简单的C语言关系表达式为x==0
第2单元 顺序结构程序设计
一、单项选择题
1.指出下列不正确的赋值语句是____B______。
A.a++ B.a==7 C.a+=7 D.a=1,b=1
2.若有以下程序,执行后的输出结果是__C________。
main()
{ intk=2,i=2,m;
m=(k+=i*=k);
printf(“%d,%d\n”,m,i);
}
A.8,6 B.8,3 C.6,4 D.7,4
3.以下程序的输出结果是____C____。
main()
{inta=5,b=4,c=6,d;
printf(“%d\n”,d=a>b?
(a>c?
a:
c)(b)); }
A.5 B.4 C.6 D.不确定
4.设有定义:
longx=-123456L;则以下能够正确输出变量x值的语句是___B____。
A.printf(“x=%d\n”,x) B.printf(“x=%ld\n”,x)
C.printf(“x=%8dl\n”,x) C.printf(“x=%LD\n”,x);
5.以下程序的输出结果是____D_____。
main()
{intk=17;
printf(“%d,%do, %x\n”,k,k,k); }
A.17,021,0x11 B.17,17,17 C.17,0x11,021 D.17,21,11
6.下列程序的输出结果是:
__A________。
main()
{ inta=2;
a%=4-1;
printf(“%d”,a);
a+=a*=a-=a*=3;
printf(“%d”,a); }
A2,0 B1,0 C–1,12 D2,12
7.设整型变量n的值为2,执行语句“n+=n-=n*n”后,n的值是__C_____。
A.0 B.2 C.-4 D.4
8.指出下列语句中有实际意义的语句是______D_____。
A.a||b; B.a!
=b; C.a+=b; D.getchar(a);
9.执行下列程序时的输出结果是_____C___。
main()
{intx,y;
x=13;
y=5;
printf(“%d”,x%=(y/=2)); }
A.3 B.2 C.1 D.0
10.若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是_C____。
A.1 B.2 C.2.0 D.2.5
11.若运行时x输入12,则以下程序的输出结果是______A__。
main()
{ intx,y;
scanf(“%d”,&x);
y=x>12?
x+10:
x-12;
printf(“%d\n”,y);
}
A.0 B.22 C.12 D.10
12.下面程序的输出结果是____D___。
main()
{ inta=-1,b=4,k;
k=(++a<0)&&!
(b--<=0);
printf(“%d%d%d\n”,k,a,b);
}
A.104 B.103 C.003 D.004
13.下面程序的输出结果是___A_____。
#include
main()
{ intk;
k=22;
printf(“%o\n”,k);
}
A.26 B.25 C.24 D.23
14.设x,y均为int类型变量,则以下不正确的函数调用语句为_______。
A.getchar(); B.putchar(‘\108’);
C.scanf(“%d%*2d%d”,&x,&y); D.putchar(‘\’’);
15.下面程序的输出结果为____B___。
main()
{ charc1=’6’,c2=’0’;
printf(“%d%d%d\n”,c1,c2,c1-c2);
}
A.因输出格式不合法,输出出错信息 B.54,48,6
C.6,0,7 D.6,0,6
16.下面程序的输出结果是____B___。
main()
{ inta,b,d=241;
a=d/100%9;
b=(-1)&&(-1);
printf(“%d,%d”a,b);
}
A.6,1 B.2,1 C.6,0 D.2,0
17.若有下面程序,执行后的输出结果是____C____。
main()
{ intm=0xabc,n=0xabc;
m-=n;
printf(“%x\n”,m);
}
A.0x0 B.0X0 C.0 D.0XABC
18.有下面程序,若从键盘上输入:
10A10<回车>,则输出结果是___A____。
main()
{intm=0,n=0; charc=’a’;
scanf(“%d%c%d”,&m,&c,,&n);
printf(“%d,%c,%d\n”,m,c,n);
}
A.10,A,10 B.10,a,10 C.10,a,0 D.10,A,0
19.有下面程序,执行后的输出结果是____D__。
main()
{ inti=1,j=1,k=2;
printf(“%d,%d,%d\n”,++i,j++,++k); }
A.1,1,2 B.2,2,1 C.2,2,2 D.2,1,3
二.分析下列程序,写出输出结果。
1.#include“stdio.h”
main()
{intx=1,y=1,a,b;
printf("%d\n",!
x||y--);
printf("%d",(a=2)&&(b=-2));
x=l,y=-1;
printf("%d\n",(x--&++y));
a=1;x=2;y=3;b=4;
printf("%d\n",a a: y y: b); } 2.#include“stdio.h” main() {intx,y,z; x=y=z=0; ++x||++y&&++z; printf("x=%d\ty=%d\tz=%d\n",x,y,z); ++x&&++y||++z; printf("x=%d\ty=%d\tz=%d\n",x,y,z); ++x&&++y&&++z; printf("x=%d\ty=%d\tz=%d\n",x,y,z); x=y=z=1; ++x||++y&&++z; printf("x=%d\ty=%d\tz=%d\n",x,y,z); ++x&&++y||++z; printf("x=%d\ty=%d\tz=%d\n",x,y,z); ++x&&++y&&++z; printf("x=%d\ty=%d\tz=%d\n",x,y,z); } 3.#include“stdio.h” main() {chara; a=’H’-‘A’+’0’; printf(“%c\n”,a); } 4.#include“stdio.h” main() { inta=1,b=1; a+=b+=1; { inta=10,b=10; a+=b+=10; printf("b=%d",b); } a*=a*=b*10; printf("a=%2d\n",a); } 5.#include“stdio.h” main() { inta=1,b=1,c=1; printf("%d,%d,%d\n",a,b,c); a+=b+=++c; printf("%d,%d,%d\n",a,b,c); printf("%d,%d,%d\n",a++,--b,++c); printf("%d,%d,%d\n",a,b,c); } 三、编程题 1.变量a、b中各存有一个整数,交换两数后输出。 2.鸡兔同笼,已知鸡兔总头数为h,总脚数为f,求鸡兔各有多少只? 3.从键盘输入一个字符,输出这字符的ASCII码的值。 4.编写程序,根据本金a、存款年数n和年利率p计算到期利息。 【提示】 ⑴到期利息公式a*(1+p)n–a; ⑵a的b次方计算公式为exp(b*ln(a))。 5.设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆体积。 用scanf输入数据,编程计算结果,保留二位小数。 。 6.用getchar()函数读入一个字符,输出读入字符的前一个字符和后一个字符。 7.从键盘上输入一个ASCII码值,输出相应的字符。 第3单元 分支结构程序设计 一、单项选择题 1.下面程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言