c语言习题.doc
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.C语言中,int型数据在计算机内部是由()表示的。
答:int型数据在计算机内部是由16位补码表示的。
2.下列可以作为C语言用户标识符的是()。
A) _123 B) a1b2c3 C) int D) 123abc
答:A)和B)
C语言标识符必须是以英文字母(a到z)、或者下划线_开头的字符串。字符串中只能包含英文字母、下划线和数字(0到9)。但字符串不能是C语言中的32个保留字(例如int,short,long,unsigned,float,char,if,switch,for,while等)。
3.在C语言中,如果下面的变量都是int类型,则输出的结果是()。
sum=pad=5,pAd=sum++,pAd++,++pAd;
printf("%d\n",pad);
答:输出结果是5。
因为C语言是字母大小写敏感的,也就是说区分大小写字母。pad和pAd是两个不同的变量。4.以下程序的输出结果是( )。
#include
main()
{
printf("%d\n",NULL);
}
答:0
因为stdio.h头文件中NULL的定义如下:
#define NULL 0
5.下面程序的输出是()。
main()
{ int x=10,y=3;
printf("%d\n",y=x/y);
}
答:3
因为两个同类型的数据作算术运算,其结果仍为该类型。即整数除以整数,商仍为整数。
10/3的商为3。
6.下面程序的输出是()。
main()
{ int x=023;
printf("%d\n",--x);
}
答:18
因为023是一个八进制数,表达式--x的值为022,按照%d带符号的十进制数输出,结果为18。
注意:023是八进制数;23是十进制数;0x23是十六进制数。
7.在C语言中,不正确的int类型的常数是()。
A)32768 B)0 C)037 D)0xAF
答:A)
8.执行下面程序中的输出语句后a的值是()。
main()
{ int a;
printf("%d\n",(a=3*5,a*4,a+5));
}
答:15
因为在计算逗号表达式a=3*5,a*4,a+5时,依次计算下面3个表达式:
a=3*5(结果变量a的值为15,该赋值表达式的值也为15)
a*4(该算术表达式的值为60)
a+5(该算术表达式的值为20,输出函数printf输出20)
逗号表达式的值为20,但变量a的值认为15。
9.以下程序的输出结果是()。
#include
main()
{int a=2,c=5;
printf("a=%%d,b=%%d\n",a,c);
}
A)a=%2,b=%5 B)a=2,b=5 C)a=%%d,b=%%d D)a=%d,b=%d
答:D)
因为%%是格式说明符,输出%,其它原样输出。
如果输出函数语句改成printf("a=%%%d,b=%%%d\n",a,c);,那么输出结果为A)。
10.以下程序的输出结果是()。
#include
main()
{ int a,b,d=241;
a=d/100%9;
b=(-1)&&(-1);
printf("%d,%d\n",a,b);
}
A)6,1 B)2,1 C)6,0 D)2,0
答:B)
241/100的值为2,2%9的值为2。
(-1)&&(-1)的值为1。在逻辑运算中,非0的值为真,真“与”真结果为真,关系和逻辑运算的结果如果为真用“1”表示,如果为假用“0”表示。
11.请选出以下语句的输出结果()。
printf("%d\n",strlen("\t\"\065\xff\n"));
答:5
函数strlen的功能是计算字符串长度。那么字符串"\t\"\065\xff\n"包含多少个字符呢?
\t是横向跳格字符;\”是字符”;\065是ASCII码值为八进制数065的字符;\xff是ASCII码值为十六进制数0xff的字符;\n是换行字符。该字符串共有5个字符。
注意:记住常用的转义字符。
12.下面程序的输出结果是()。
int i = 65536;
printf("%d\n", i);
答:-1
因为int型变量i在C语言中是用16位补码表示的,而65535变成二进制数为1111111111111111,因此i的值为1111111111111111,按照带符号的十进制数%d输出-1,因为1111111111111111是-1的补码。
13.若有说明和语句:
int a=5;
a++;
此处表达式a++的值是()。
答:5
表达式a++的值是5表达式计算后,变量a的值是6。
14.若k为int变量,则以下语句()。
k=8567;
printf("|%-06d|\n",k);
答:|8567 |
两个|原样输出,格式符%-06d说明输出变量k的值长度为6且左对齐。
15.若x 为float型变量,则以下语句()。
x=213.82631;
printf("%-4.2f\n",x);
答:213.83
16.若x为double变量,则以下语句()。
x=213.82631;
printf("%-6.2e\n",x);
答:2.14e+02
17.若ch为char型变量,k为int型变量(已知字符a的ASCII十进制代码为97),则执行下列语句ch='a';
k=12;
printf("%x,%o,",ch,ch,k);
printf("k=%%d\n",k);
输出为()。
答:61,141,k=%d
18.若有以下定义:
char s=’\092’;
则该语句()。
A).使s的值包含1个字符
B).定义不合法,s的值不确定
C).使s的值包含4个字符
D).使s的值包含3个字符
答:B)
因为字符’\092’中的092应该是八进制数,但八进制数中不可能出现9。
19.执行以下语句后,输出结果是()。
int a =1;