C语言练习题.doc

上传人:h**** 文档编号:1686105 上传时间:2019-03-11 格式:DOC 页数:14 大小:122KB
下载 相关 举报
C语言练习题.doc_第1页
第1页 / 共14页
C语言练习题.doc_第2页
第2页 / 共14页
C语言练习题.doc_第3页
第3页 / 共14页
C语言练习题.doc_第4页
第4页 / 共14页
C语言练习题.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

1、1C 语言练习题(一)一、 选择题下列各题给出了多个选项,请按照题目要求选择正确的答案。【1.1】 C 语言中字符型(char)数据在内存中的存储形式是_D_。A)原码 B)补码 C)反码 D)ASCII 码【1.2】 C 语言中,长整型 long 数据在内存中的存储形式是_D_。A)ASCII 码 B)原码 C)反码 D)补码【1.3】 C 语言的运算符按运算对象的数目不同可以分为 _C_。A)单目运算一种 B)单目和双目运算符C)单目、双目和三目运算符 D)单目、双目、三目和四目运算符【1.4】 下面对 C 语言运算符的优先级叙述正确的是 _C_。A)逻辑运算符高于算术运算符,算术运算符高

2、于关系运算符B)自增运算符高于关系运算符,关系运算符高于逻辑运算符C)算术运算符高于逻辑运算符,自增运算符高于关系运算符D)关系运算符高于逻辑运算符,逻辑运算符高于算术运算符【1.5】 C 语言并不是非常严格的算术语言,在一下关于 C 语言的不严格的叙述中,错误的说法是_A_。A)大写字母和小写字母的意义相同B)有些不同类型的变量可以在一个表达式中运算C)在赋值表达式中等号 “=”左边的变量和右边的值可以是不同类型D)同一个运算符号在不同的场合可以有不同的含义【1.6】 C 语言中的简单数据类型包括 _B_ _。A)整形、实型、逻辑型 B)整型、实型、字符型C)整型、字符型、逻辑型 D)整型、

3、实型、逻辑型、字符型【1.7】 以下选项中属于 C 语言的数据类型是 _C_。A)复数型 B)逻辑型 C)双精度型 D)集合型【1.8】 在 C 语言中,int、char 、和 short 三种类型数据所占用的内存_C_ 。A)均为 2 个字符 B)由用户根据自己的需要定义C)由所用机器的机器字长决定 D)是任意的【1.9】 在 C 语言中,错误的 int 类型的常数是_A_。A)32768 B)0 C)037 D) 0xAF【1.10】 下列常数中不能作为 C 语言常量的是_D_。A)0xA5 B)2.5e - 2 C)3e2 D) 0582【1.11】 在 C 语言中,十进制的 47 可等

4、价的写为_D_。A)2f B)02f C)57 D)057【1.12】 设 int 类型的数据长度为 2 个字符,则 unsigned int 类型数据的取值范围是_B_。A)0255 B)065535 C)-3276832767 D)-256255【1.13】 在 C 语言中,数字 029 是一个_D_。A)八进制数 B)十六进制数 C)十进制数 D)非法数【1.14】 下列不属于 C 语言关键字的是 _D_。A)default B)register C)enum D)external【1.15】 下列可以正确定义数据类型的关键字的_A_。A)Long B)signed C)shorter

5、D) integer【1.16】 下列可以正确表示字符型常数的是_B_ 。A)“a“ B)t C)“n“ D)297【1.17】 以下错误的转义字符是_C_ 。A) B) “ C)81 D)0【1.18】 已说明 int a=256,执行语句 printf(“%x“,a );的结果是_A_。A)100 B) 256 C)ffe D)00ff【1.19】 C 语言中整数-8 在内存中的存储形式是_ A_。A)1111 1111 1111 1000 B)1000 0000 0000 10002C)0000 0000 0000 1000 D)1111 1111 1111 0111【1.20】 下面各

6、选项组中,均是 C 语言关键字的选项组是_B_。A)auto,enum ,include B)switch,typedef, continueC)signed,union,sanf D)if,struct ,type【1.21】 将字符 g 赋给字符变量 c,正确的表达式是_C_ 。A)c=“g“ B)c=101 C)c=147 D)c=0147【1.22】 已知 int i;float f ;正确的语句是_D_。A)(int f)%i B)int(f)%i C)int(f%i) D)(int)f%iD.(int)f%i 正确先通过强制类型转换把浮点数转为整数再进行整数的取余计算。其它答案的括

7、号位置不当,编译会报错。A 在括号中再次定义已定义为浮点类型的变量为整型是不允许的。B 的括号等于把 int 当成了函数,但 int 是数据类型,不能作为函数,编译时会报告 int 函数没定义C 中把浮点数直接与整数进行取余运算是不允许的【1.23】 已知 char a;int b;float c;double d;执行语句 c=a+b+c+d;后,变量 c 的数据类型是_D_。A)int B)char C)float D)doublec 的类型不会变,仍然是 float,只是在运算过程中的中间结会是 double 型,然后转化为 float,赋给 c。变量的类型经过定义后是不会变的。【1.2

8、4】 以下运算符中优先级最低的算符为_。A)这一句,先算出 a=2*3,得到 a=6,然后再算出 a*5,得到表达式的值 30(但这时 a 的值仍等于 6),然后把 30 这个值赋给 i,然后再算出 a+6,得出 12,最终整个表达式的值为 12,但题目问的是 i 的值,就是 30.【1.27】 已知 int i=5;执行语句 i+=+i;后,i 的值是_C_。A)10 B) 11 C)12 D)ABC 答案都不对+i 是先加,后取值,所以后面的+i 变成了 6;“+=”这个符号的用法我举个例子,假如有个变量 i=5,使用下列语句 i+=1,则效果等同于 i=i+1;如果 i+=2,就等于 i

9、=i+2,以此类推。所以 i=i+6,此时 i 为 6,所以 i=6+6=12,所以 i=12。【1.28】 字符串“22a,0n“ 的长度是_B_ 。A)8 B) 7 C)6 D)5【1.29】 已知 char*s=“t“NameAdressn“;则 s 所指的字符串的长度为_B_ 。A)19 B)15 C)18 D)说明不合法char *s=“t“NameAddressn“; t ,“,N,a,m,e,A,d,d,r,e,s,s,n加上一个字符表示转义字符,算一个,一共 15 个【1.30】 已知 char a=70;则变量 a 中_A_。A)包含 1 个字符 B)包含 2 个字符C)包含

10、 3 个字符 D)说明不合法a 就是个 char 型变量,一个 char 型变量只能放一个字符,你的例子里,a 里面存放的是 ascii 码为 70 的字符,就是F【1.31】 已知 char c=A;int i=1,j;执行语句 j=!c执行时,j=!c,由于 c 为字符 A,所以为真,!c 就为假,所以 j=0;条件 j=!c由于 j 为假,所以不会执行 i+;所以 i=1;【1.32】 已知 int x=1,y=2,z;执行语句 z=xy?+x:+y;后,z 的值为_C_。A)1 B) 2 C)3 D)4z=3;3你好,首先你得理解+i 和 i+的区别:+i 的意思是在使用 i 变量之前

11、把 i+1,而 i+的意思是在使用 i 变量之后把 i+1理解了这一点上面的题目就很清楚了:xy 返回的是 false,所以 z=y-;减号在后面所以先把 y 的值赋给了 z 之后才去改变 y 的值,所以 z=3。当然如果 z=-y 的话,z 就等于 2 了【1.33】 已知 int n,i=1 ,j=2;执行语句 n=ib 后,变量 a 的值为_A_。A)0 B)1 C)4 D)5用程序验证:#includevoid main()int a=4,b=5,c;c=a=ab;printf(“%dn“,a);输出 0.原因很简单:ab 是假,返回 0。a 和 c 先后被赋值 0. 【1.41】 已

12、知 char w;int x;float y;double z;则表达式 w*x+z-y 结果是类型是_D_。A)float B)Char C)int D)doublec 语言中 两个不同类型的运算 要转化成同类型的 转换从低到高 charfloatshortintdouble【1.42】 sizeof(double)是_B_。A)函数调用 B)double 型表达式C)int 型表达式 D)非法表达式谭浩强版C 程序设计(第四版)在 p378 的附录 D“运算符和结合性”中,运算符:sizeof优先级:2 含义:长度运算符(单目运算符)结合方向:自右至左4【1.43】 已知 char ch=

13、A;则下列表达式的值是 _B_。Ch=(ch=A 已知 x=6 则 x = 6 - 6 * 6 = -30 x = -30 - 30 = -60 所以 x = -60【1.52】 若 w=1,x=2,y=3 ,z=4;则条件表达式 wx?x:yX 是否为假( 很明显 WX 为假),然后执行(zy) 判断表达式(若 WX 为真则执行 W),因为(zy)为真,所以执行 z,用函数输出结果也就是4 了。(语法:逻辑判断表达式 ? 表达式 1:表达式 2-若逻辑判断表达式为真,则执行表达式 1,若为假则执行表达式 2)。【1.53】 已知 int x;则使用逗号运算符的表达式(x=4*5 ,x*5),

14、x+25 的结果为_D_,变量 x 的值为_A_。 A)20 B)100 C)表达式不合法 D)45 20 100 125 45 如:int y; y = (x=4*5,x*5),x+25); 那 y=45 因为逗号表达式 ,其求解过程先表达式 1,后表达式 2. 对于本题有三个部分 x=4*5 x*5 x+25 是由前向后分别运算的. 第一部分 x=4*5 得到 x=20 第二部分 x*5 运算得到 100,但没有返回,即没有对另一个变量赋值,所以运算的结果没有被接收. x+25 第三部分 ,因在第一部分 X 已被赋值,所以最后是 45 【1.54】 已知 int i=6,j;则执行语句 j

15、=(+i)+(i+)后,j 的值是_B_。A)4 B)14 C)13 D)15先执行(+i),i=7,然后 j=7+7=14,最后(i+),i=8(+i)是先让 i 做自加 1 运算(i+)是先取 i 的值,然后再做自加 1 运算【1.55】 已知 int x=1,y=-1;则语句 printf(“%dn“,(x-将其中的%d 和%f 换成对应的数即可得输入格式为x=10,y=66.6【1.63】 判断 char 类型变量 c1 是否为答大写字母的最简单且正确的表达式为 _。A)A=A) y=4 ; z=2printf(“%dn“,i/y%z);A)2 B)0 C)1 D)显示错误信息,不能执

16、行【1.102】 以下程序的输出结果是_。#includemain( ) itn x=10,y=10;printf(“%d %dn“,x-,-y);A)10 10 B)9 9 C)9 10 D)10 9【1.103】 以下程序的输出结果是_。#include main() printf(“%dn“,NULL);A)-1 B)0 C)1 D)程序是错误的【1.104】 下述程序的输出结果是_。#includemain ( ) printf(“%f“,2.5+1*7%2/4);A)2.500000 B) 2.750000 C)3.75000 D)3.000000【1.105】 以下程序输出结果的_

17、。#includemain()9 int x=023;printf(“%dn“,-x);A)18 B) 22 C)23 D)19【1.106】 以下程序的输出结果是_。main() int a=-1,b=4,k;k=(+amain( ) float a;A=1/100000000;printf(“%g“,a) ;A)0.00000e+00 B)0.0 C)1.00000e-07 D)0【1.108】 选择下面程序执行后的正确结果_。#includemain() int a=3,b=7;printf(“%dn“,a+ + +b); printf (“%dn“,b%a); printf (“%dn

18、,!ab); printf(“%dn“,a+b); printf(“%dn“,a&b); A)10 B) 11 C)12 D)不定 A)1 B) 2 C)0 D)3 A)0 B) 7 C)1 D)11A)3 B)12 C)4 D)10 A)0 B) 1 C)大于零的任意整数 D)无值【1.109】 下面程序的输出是_。#define SUB(X,Y)(X)*Y#includemain() int a=3,b=4;printf(“%dn“,SUB(a+,b+);A)12 B)15 C)16 D)20【1.110】 下面程序的输出是_。#includemain() int x=1,y=0,a=0,

19、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=%dn“,a,b);10A)a=2,b=1 B)a=1,b=1 C)a=1,b=0 D)a=2,b=2【1.111】 选择下面程序的运行结果。_。#include main() int x=1,y=2,z,a,b,c,d;z=+x|+y;printf(“x=%dn“,x); printf(“y=%dn“,y); a= -1 b=-2c=+a&b+;printf(“a=%dn“,a); printf

20、(“b=%dn“,b); x=-8;y=0main() int a=-10,b=-3;pritnf(“%dn“,a%b); printf(“%dn“,a/b*b); printf(“%dn“,-a%b); printf(“%dn“,a-=b+1); A)-2 B)-1 C)0 D)1A)-10 B)-9 C)-8 D)0A)-2 B)-1 C)0 D)1A)-10 B)-9 C)-8 D)-7【1.113】 阅读下面程序,写出执行结果。#define PRINT(x) printf(“%dn“,x)#includemain( ) int x=1,y=1,z=0;x=x&y|z;PRINT(x); PRINT(x|!y+&+z);PRINT(y); PRINT(z); x=y=1;z=x+-1;PRINT(x); PRINT(z); z+=-x+ + +y;PRINT(x); PRINT(z); PRINT(y); 【1.114】 写出下面程序的运行结果。#define PRINT(x)printf(“%dn“,x)#include main() int x=3,y=2,z=1;x=y+=x&x-y=+z

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 试题真题

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。