C语言第3版选择题(第7、8、9章)_第1页
C语言第3版选择题(第7、8、9章)_第2页
C语言第3版选择题(第7、8、9章)_第3页
C语言第3版选择题(第7、8、9章)_第4页
C语言第3版选择题(第7、8、9章)_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、习题七一、选择题1下列叙述中错误的是 C 。A) 预处理命令必须以#号开头B) 预处理命令可以写成多行C) 预处理命令必须置于源文件的开始处D) 预处理命令以回车结束2C语言编译系统对宏替换的处理是在 A 进行的。A) 源程序编译前B) 源程序编译时C) 程序连接时D) 程序运行时3在宏定义 #define PI 3.14159 中,3.14159是 C 。 A) 单精度数B) 双精度数C) 字符串D) 由PI位置确定其类型4设有宏定义 #define A B abcd ,则宏替换时, A 。A) 宏名A用 B abcd 替换B) 宏名A B用abcd 替换C) 宏名A 和宏名B都用abcd

2、替换D) 语法错误,无法替换5下列有关宏的叙述中错误的是 A 。A) 宏名必须使用大写英文字母B) 宏替换不占用程序的运行时间C) 宏参数没有数据类型D) 宏名没有数据类型6下列宏定义,最不会引起二义性的是 D 。A) #define ADD(a,b) a+bB) #define ADD(a,b) (a)+(b)C) #define ADD(a,b) (a+b)D) #define ADD(a,b) (a)+(b)7设有宏定义 #define M 3+2 则表达式 2 * M * 3 的值为 B 。A) 30B) 12C) 10D) 138设有宏定义 #define Y(n) (4*n) 则表

3、达式 3+Y(5+1)的值为 B 。A) 21B) 24C) 27D) 309设有宏定义: #define N 3 #define M N+2 则表达式 2*M/N的值为 A 。A) 6B) 3C) 3.333D) 错误替换为 2*3 + 2 /3,其中, 2/3是整除,值为110在#include命令中,#include后面的文件名用双引号定界,则系统寻找被包含文件的方式是 D 。A) 在C系统的include文件夹查找B) 在源程序所在文件夹查找C) 先在C系统的include文件夹查找,查找失败后再到源程序所在文件夹查找D) 先在源程序所在文件夹查找,查找失败后再到C系统的include

4、文件夹查找11(不要求)设有以下A、B两个程序段,则说法正确的是 B 。/A程序段/B程序段#define N 3#define N 3void main()void main()if(N0) #if(N0)printf(N=%dn,N);printf(N=%dn,N);else#elseprintf(N=0);printf(N=0);#endifA) 两个程序目标代码相同,运行结果也相同B) 两个程序目标代码不同,但运行结果相同C) 两个程序目标代码相同,但运行结果不同D) 两个程序目标代码不同,运行结果也不同12(不要求)执行以下程序,结果为 A 。#define DEBUGvoid ma

5、in()#ifdef DEBUGprintf(DEBUG );#endifprintf(OK);A) DEBUG OKB) OK C) 宏定义错误D) #ifdef命令错误 第八章一、选择题1以下数组定义中,错误的是C。A) int a=1,2,3;B) int a5=1,2,3;C) int a3=1,2,3,4;D) int a5,b;2以下数组定义中,正确的是B。A) int n=4 , an=1,2,3,4;B) int a2=1,2,3,4;C) int a2=1,2,3,4;D) int a=1,2,3,4;3设有如下定义:int a810;在VC中一个整数占用4字节,设a的起始地

6、址为1000,则a11的地址是D。A) 1000B) 1004C) 1036D) 10444已知有数组定义:int a 3=1,2,3,4,5,6,7,8,9,则a12的值是C。A) 2B) 5C) 6D) 85在以下字符串定义、初始化和赋值运算中,错误的是A。A) char str10; str= String;B) char str10= String;C) char str10= S ,t, r ,i,n, g;D) char str= S ,t, r ,i,n, g,0;6设有以下字符串定义,则s1和s2 D。char s1= S ,t, r ,i,n, g;char s2= Stri

7、ng;A) 长度相同,内容也相同 B) 长度不同,但内容相同C) 长度不同,但内容相同D) 长度不同,内容也不同7设有定义 int a10=0; 则说法正确的是 A。A) 数组a有10个元素,各元素的值为0B) 数组a有10个元素,其中a0的值为0,其他元素的值不确定C) 数组a有1个元素,其值为0D) 数组初始化错误,初值个数少于数组元素个数8设已定义 char str6= a,b,0,c,d,0; 执行语句 printf(%s,str) 后,输出结果为B。A) aB) abC) abcdD) ab0cd09引用数组元素时,数组元素下标不可以是C。A) 字符常量B) 整型变量C) 字符串D)

8、 算术表达式10已定义字符数组s1和s2,以下错误的输入语句是C。A) scanf(%s%s , s1 , s2) ;B) scanf(%s%s , &s1 , &s2);C) gets(s1,s2) ;D) gets(s1) ;gets(s2) ;习题九一、选择题1. 若已经定义 struct stu int a, b; student ; ,则下列输入语句中正确的是D。A) scanf(%d, &a);B) scanf(%d, &student);C) scanf(%d, &stu.a);D) scanf(%d, &student.a);2. 若已有以下结构体定义和初始化,则值为2的表达式

9、是A。 struct cmplxint x ; int y; c=1,2,3,4;A) c0.yB) yC) c.y0D) c.y13. 设有如下程序段,则vu.a 的值为D。union u int a;int b;float c; vu;vu.a=1;vu.b=2;vu.c=3;A) 1B) 2C) 3D) A、B、C都不是4. 设已经定义union u char a;int b; vu; 在VC中存储char 型数据需要1个字节,存储int型数据需要4个字节,则存储变量vu需要B个字节。A) 1B) 4C) 5D) 85. 设已经定义union u int a; int b; vu=1,2

10、; 则D。A) 共用体成员a和b的值都是1B) 共用体成员a和b的值都是2C) 共用体成员a的值是1,b的值都是2D) 该定义错误6. 设有定义 enum date year,month,day d ;则下列叙述中正确的是A。A) date是类型、d是变量、year是常量B) date是类型、d和year是变量C) date和d是类型、year是常量D) date和d是变量、year是常量7. 设有定义 enum date year,month,day d ;则正确的表达式是B。A) year=1B) d=yearC) d=yearD) date=year8. 若已经定义 typedef st

11、ruct stu int a, b; student ; ,则下列叙述中正确的是C。A) stu 是结构体变量B) student 是结构体变量 C) student 是结构体类型D) a和b是结构型体变量9. 下面有关typedef语句的叙述中,正确的是C。A) typedef语句用于定义新类型B) typedef语句用于定义新变量C) typedef语句用于给已定义类型取别名D) typedef语句用于给已定义变量取别名习题十一、选择题1. 设已定义 int a, *p; 下列赋值表达式中正确的是C。A) *p=aB) p=*aC) p=&aD) *p=&a2. 设已定义 int x, *

12、p=&x ; 则下列表达式中错误的是B。 A) *&xB) &*xC) * & pD) & * p3. 若已定义 int a=1,*b=&a; , 则printf(%dn,*b);的输出结果为A。A) a的值B) a的地址C) b的值D) b的地址4. 设已定义 int x, *p ,*p1=&x , *p2=&x ; 则下列表达式中错误的是C。 A) x=*p1+*p2B) p=p1C) p =p1+p2 D) x=p1-p25. 设有函数定义 void p(int *x)printf(%dn,*x) ; 和变量定义a=3; 则正确的函数调用是C。A) p(a)B) p(*a)C) p(&a

13、) D) p(int *a)6. 函数 int fun( char *x)char *y=x; while(*y)y+; return(y-x); 的功能是A。A) 求字符串的长度B) 比较两个字符串的大小C) 将字符串x复制到字符串y D) 将字符串x连接到字符串y后面7. 运行以下程序,输出结果为B。int fun(int a,int *b)a+; (*b)+;return a+*b;void main()int x=1,y=2;printf(%d ,fun(x,&y);printf(%d ,fun(x,&y);A) 5 5B) 5 6C)6 5 D) 6 68. 运行以下程序,输出结果为

14、C。#include int* fun(int a,int *b)a+; (*b)+;*b=a+*b;return b;void main()int x=1,y=2,*z;z=fun(x,&y);printf(%d ,*z);z=fun(x,&y);printf(%d ,*z);A) 5 6B) 5 7C)5 8 D) 6 89. 若已定义 int a=1,2,3,4,*p=a; 则下面表达式中值不等于2的是C。A) *(a+1)B) *(p+1)C) *(+a)D) *(+p)10. 若已定义 int a=1,2,3,4,*p=a+1; 则p2的值是C。A) 2B) 3C) 4D) 无意义1

15、1. (不要求)设已定义 int x410, *p=x0 ; 则下列表达式中的值为整型的是B。A) &x12B) *(p+1)C) x1D)p+112. 设已定义 char s = ABCD; printf(%s,s+1)的值为C。A) ABCD1B) BC) BCDD) ABCD13. 设已定义 char str=abcd , *ptr=str;,则 *(ptr+5)的值为B。A) dB) 0C) 0D) 字符d的地址14. 下面对字符串变量的初始化或赋值操作中,错误的是C。A) char a=OK;B) char *a=OK;C) char a10; a=OK;D) char *a; a=OK;15. (不要求)设已定义 char *ps2= abc,1234; 则以下叙述中错误的是A。A) ps为指针变量,它指向一个长度为2的字符串数组B) ps为指针数组,其两个元素分别存储字符串abc和1234的地址C) ps12的值为3D) *(ps0+1) 的值为b16.设已定义 struct int

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论