1、1.奥鹏南开C语言程序设计复习资料单项选择题答案及解析1.奥鹏南开C语言程序设计复习资料单项选择题答案及解析 编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望(1.奥鹏南开C语言程序设计复习资料单项选择题答案及解析)的内容能够给您的工作和学习带来便利。同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快 业绩进步,以下为1.奥鹏南开C语言程序设计复习资料单项选择题答案及解析的全部内容
2、。【1.1】以下不正确的C语言标识符是 。 A) int B) a_1_2 C) ab1exe D) _xAint是关键字,标识符不能与关键字同名。【1。2】以下是正确的C语言标识符是 。A) #define B) _123 C) d D) nB#、都是不合法的标识符。【1.3】下列四组字符串中都可以用作语言程序标识符的一组是 .A) print _3d oodb aBcB) iam one_half startit 3paiC) Pxq My-book line His.ageD) str_l Cpp pow whileA(B)中、不合法,首字符是数字也不合法.(C)中、#、.不合法。(D)
3、中while是关键字,标识符不能与关键字同名.【1。4】下面各选项组中,均是C语言关键字的组是 。A) auto,enum,include B) switch,typedef,continueC) signed,union,scanf D) if,struct,typeB(A)include不是关键字,(C)scanf不是关键字,(D)type不是关键字。【1.5】下列不属于C语言关键字的是 。 A) default B) register C) enum D) externalD关键字只有extern没有external。【1。6】C语言程序从main()函数开始执行,所以这个函数要写在_。
4、A) 程序文件的开始 B) 程序文件的最后C) 它所调用的函数的前面 D) 程序文件的任何位置D【1.7】下列关于C语言的叙述错误的是_A) 大写字母和小写字母的意义相同B) 不同类型的变量可以在一个表达式中C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型 D) 同一个运算符号在不同的场合可以有不同的含义AC标识符区分大小写.【1.8】在C语言中,错误的int类型的常数是 。A) 32768 B) 0 C) 037 D) 0xAFAint型表示整数的范围是3276832767。【1.9】执行语句 printf(%x,1);屏幕显示_.A) -1 B) 1 C) -ffff D)
5、 ffffD整型常量1在计算机中表示为补码1111 1111 1111 1111,用十六进制显示这个数时,最左边的1不会被解释为符号位,而是与右边其它位共同转换为十六进制数.【1。10】已知long i=32768;执行语句printf(”d,i);屏幕显示_。A) 1 B) -32768 C) 1 D) 32768B长整型数32768在计算机内的表示是1000 0000 0000 0000以一般整型进行输出时,此数恰是-32768的补码。【1.11】已知long i=65539;执行语句printf(d”,i);屏幕显示_。A) 65539 B) -3 C) 3 D) 程序不能执行C长整型数
6、65539在计算机内的表示是0001 0000 0000 0000 0011,以一般整型进行输出时,仅将右侧16位二进制数转换为十进制数。【1.12】在语言中,整数8在内存中的存储形式是 。A) 1111 1111 1111 1000 B) 1000 0000 0000 1000C) 0000 0000 0000 1000 D) 1111 1111 1111 0111A8的原码是1000 0000 0000 1000,反码是1111 1111 1111 0111,补码是1111 1111 1111 1000。C语言中,int型的负数是采用补码表示的。【1.13】语言中字符型(char)数据在内
7、存中的存储形式是_。A) 原码 B) 补码 C) 反码 D) ASCII码D【1。14】将字符g赋给字符变量c,正确的表达式是 。A) c=147 B) c=147” C) c=147 D) c=0147C变量c是字符型,可用字符型常量为它赋值。字符常量必须用单引号括起来,所以B是错误的;在单引号或双引号内的反斜线”用于表示转义字符,A选项在无引号时使用反斜线是错误的;C选项单引号内出现反斜线表示它与后面的数字组成一个转义字符;单引号只允许括起一个字符,D选项在单引号内出现4个字符,是错误的。【1.15】下列转义字符中错误的一个是_。A) 000 B) 0014 C) x111 D) 2C【1
8、.16】将空格符赋给字符变量c,正确的赋值语句是_。A) c=0 B) c=NULL C) c=0 D) c=32D空字符和空格符是不同的两个字符,空格符的ASCII码是32,空字符的ASCII值是0.【1.17】已知:char a=70;则变量a中 。A) 包含1个字符 B) 包含2个字符 C) 包含3个字符 D) 说明非法A【1。18】字符串”EOFn=61”的长度是_。A) 8 B) 9 C) 14 D) 非法字符串B【1。19】字符串”的长度是_.A) 0 B) 1 C) 2 D) 非法字符串A【1.20】已知:char a;int b;float c;double d;执行语句”c=
9、a+b+c+d;”后,变量c的数据类型是 .A) int B) char C) float D) doubleC【1。21】温度华氏和摄氏的关系是: C=(F32).已知:float C,F;由华氏求摄氏的正确的赋值表达式是_。A) C=5/9(F-32) B) C=5(F-32)/9 C) C=5/9*(F32) D) 三个表达式都正确B【1。22】逗号表达式(a=3*5,a4),a+15的值是_。A) 15 B) 60 C) 30 D) 不确定C【1。23】如果int a=1,b=2,c=3,d=4;则条件表达式”ab?a:cd?c:d”的值是_。A) 1 B) 2 C) 3 D) 4A将
10、条件表达式增加一个括号,此式的值变为a。【1。24】为求出s=10!的值,则变量s的类型应当为 .A) int B) unsiged C) long D) 以上三种类型均可C【1。25】已知int i=10;表达式”20-0=i5&+x=90&c=97|c=122B) !(c=57&c=65|c=90&c=97|c=122)C) c=48&c=57|c=65&c=97&c=122D) !(c=48&c=57|c=65c=90|c=97c=122)D【1.28】已知 int a32=3,2,1;则表达式”a00/a01/a02的值是_。A) 0.166667 B) 1 C) 0 D) 错误的表达
11、式B数组元素在内存中按行排列,此数组的前3个元素的值分别是3、2、1,表达式中虽然虽然数组下标的写法近似每行有3个元素,和定义时的3行2列不一致,但是C语言引用数组元素时是根据数组的首地址和给出的下标进行运算决定元素的地址.题中表达式引用了数组前3个元素。【1。29】已知 int x=1,y=1,z=1;表达式x+y+z+的值是_。A) 3 B) 4 C) 5 D) 表达式错误A【1。30】用十进制表示表达式12|012的值是_。A) 1 B) 0 C) 12 D) 14D【1.31】已知以下程序段:int a=3,b=4;a=ab;b=ba;a=ab;则执行以上语句后a和b的值分别是_。A)
12、 a=3,b=4 B) a=4,b=3 C) a=4,b=4 D) a=3,b=3B【1.32】在位运算中,操作数每右移一位,其结果相当于_。A) 操作数乘以2 B) 操作数除以2 C) 操作数除以16 D) 操作数乘以16B【1.33】已知 char a=222;执行语句a=a&052;后,变量a的值是_。A) 222 B) 10 C) 244 D) 254B【1.34】已知二进制数a是00101101,如果想通过整型变量b与a做异或运算,使变量a的高4位取反,低4位不变,则二进制数b的值应是_。A) 11110000 B) 00001111 C) 11111111 D) 00000000A
13、【1。35】已知 int a=15,执行语句a=a2以后,变量a的值是_。A) 20 B) 40 C) 60 D) 80C【1。36】已知int x=5,y=5,z=5;执行语句x=y+z;后,x的值是_.A) 0 B) 1 C) 5 D) 6C【1.37】使用语句scanf(x=%f,y=f,x,&y);输入变量x、y的值(代表空格),正确的输入是_.A) 1。25,2。4 B) 1。252。4 C) x=1。25,y=2.4 D) x=1。25y=2.4C【1.38】下列循环语句中有语法错误的是_。A) while(x=y) 5; B) while(0) ;C) do 2;while(x=
14、b); D) do x+ while(x=10);D【1。39】已知int x=(1,2,3,4);变量x的值是_.A) 1 B) 2 C) 3 D) 4D【1.40】表达式sizeof(double)是 。A) 函数调用 B) double型表达式 C) int型表达式 D) 非法表达式C【1。41】执行语句printf(”2:%d,”,printf(”1:d,”,scanf(”d,&x);以后的输出结果是_。A) 2:1,1:1, B) 1:1,2:1, C) 2:4,1:1 D) 1:1,2:4,D【1.42】已知:int x,y;double z;则以下语句中错误的函数调用是 。A)
15、scanf (”d,lx,%le,x,y,z); B) scanf (”2d*dlf,&x,y,z);C) scanf (%xdo”,x,y); D) scanf (”%x%o6.2f,x,&y,&z);D【1。43】与条件表达式(n)?(c+):(c)中的表达式(n)等价的表达式是_。A) (n=0) B) (n=1) C) (n!=0) D) (n!=1)C【1。44】已知int i=1,j=0;执行下面语句后j的值是_.while(i)switch(i) case 1: i+=1;j+;break;case 2: i+=2;j+;break;case 3: i+=3;j+;break;d
16、efault: i-;j+;break;A) 1 B) 2 C) 3 D) 死循环D【1.45】求取满足式 12+22+32+ +n2 1000的n,正确的语句是_。A) for(i=1,s=0;(s=s+ii)=1000;n=i+) ; B) for(i=1,s=0;(s=s+ii)=1000;n=+i) ;C) for(i=1,s=0;(s=s+i*+i)=1000;n=i) ; D) for(i=1,s=0;(s=s+ii+)=1000;n=i) ;A【1。46】下面的for语句 .for(x=0,y=10;(y0)(x4);x+,y- ) ;A) 是无限循环 B) 循环次数不定 C)
17、循环执行4次 D) 循环执行3次C【1。47】已知int i=1; 执行语句while (i+4) ;后,变量i的值为_。A) 3 B) 4 C) 5 D) 6C【1.48】已知int x=12,y=3;执行下述程序后,变量x的值是_。do x/=y-;while(xy);A) 1 B) 2 C) 3 D) 程序运行有错误D当除数y为0时,程序发生溢出错误。【1.49】已知 char a20=Beijing”,”shanghai,”tianjin”,”chongqing;语句printf(%c”,a30);的输出是_。A) data。a D) p。data.aB【1。79】已知:struct
18、st int n;struct st *next;;static struct st a3=1,&a1,3,a2,5,&a0,*p;如果下述语句的显示是2,则对p的赋值是_。printf(%d”,+(p-next-n));A) p=a0; B) p=a1; C) p=&a2; D) p=&a3;C使用C对p进行赋值,则p-next是a0的地址,引用其成员n再做前增1运算,结果就是2.【1.80】已知:struct person char name10;int age;class10=”LiMing,29,”ZhangHong,21,”WangFang,22;下述表达式中,值为72的一个是_。A
19、) class0age + class1-age+ class2ageB) class1.name5 C) person1。name5D) clase-name5B【1。81】已知:struct int i;char c;float a;test;则sizeof(test)的值是 。A) 4 B) 5 C) 6 D) 7D【1.82】已知:union int i;char c;float a;test;则sizeof(test)的值是 。A) 4 B) 5 C) 6 D) 7A【1.83】已知:union u_type int i;char ch;float a;temp;现在执行”temp。
20、i=266;printf(”%d,temp。ch)的结果是 。A) 266 B) 256 C) 10 D) 1C联合变量temp的成员是占用同一存储单元,它的长度是4个字节。266的二进制表示是100001010,存放在存储单元的低端两个字节,如下图:高字节0000 0001低字节0000 1010引用temp.ch进行输出,只取最低的第一个字节。【1。84】若有以下程序段:struct dentint n;int *m;int a=1,b=2,c=3;struct dent s3 = 101,&a,102,&b,103,c;struct dent p=s;则以下表达式中值为2的是 。A) (
21、p+)-m B) (p+)-m C) (*p)。m D) *(+p)-mD由于结构指针指向了结构数组的0号元素,所以表达式(p+)-m的含义是先取出m(变量a的地址),然后指针p加1.表达式(p+)m的含义是先取出m的内容(变量a的值),然后指针p再加1。表达式(*p).m的含义是取出m(变量a的地址)。表达式(p+)m的含义是先将指针p加1,然后再取m的内容(变量b的值)。【1。85】若有以下说明语句,则对结构变量pup中sex域的正确引用是 。struct pupil char name20;int sex;pup,*p;p=&pup;A) p。pup.sex B) ppup.sex C)
22、 (p)。pup。sex D) (*p).sexD【1.86】以下对结构变量stul中成员age的非法引用是 。struct student int age;int num;stu1,p;p=stu1;A) stu1。age B) student。age C) p-age D) (*p)。ageB【1。87】若有以下定义和语句:union data int i;char c;float f;a;int n;则以下语句正确的是 .A) a=5; B) a=2,a,1.2; C) printf(%dn”,a); D) n=a;C【1.88】已知:struct sk int a;int age;da
23、te,p;如果要使指针p指向data中的成员a,正确的赋值语句是_。A) p = (struct sk *)&data.a; B) p = (struct sk *)data.a;C) p = data。a; D) p = data。a;A【1.89】已知 enum week sun,mon,tue,wed,thu,fri,satday;则正确的赋值语句是_。A) sun=0; B) san=day; C) sun=mon; D) day=sun;D【1.90】已知 enum color red,yellow=2,blue,white,blackren;执行下述语句的输出结果是_。printf
24、(”d,ren=white);A) 0 B) 1 C) 3 D) 4D【1。91】已知 enum namezhao=1,qian,sun,liman;执行下述程序段后的输出是_。man=0;switch(man) case 0: printf(”Peoplen);case 1: printf(Mann”);case 2: printf(”Womann);default: printf(”Errorn);A) People B) Man C) Woman D)ErrorA【1.92】下述关于枚举类型名的定义中,正确的是_.A) enem a= one,two,three ; B) enem a one=9,two=1,three ;C) enem a=one”,two”,”three;