c语言习题.doc

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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;

相关文档
最新文档