ImageVerifierCode 换一换
格式:DOCX , 页数:32 ,大小:45.42KB ,
资源ID:8598687      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8598687.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(《C语言》复习题160题08级.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

《C语言》复习题160题08级.docx

1、C语言复习题160题08级注: 颜色字母为答案, 请大家把颜色先去掉, 做完再核对答案! (2010年)= 一、单项选择题 ( 共200题, 180 为基本概念题, 81160题为程序阅读题) 基本概念题第1、2章 概述、数据类型、运算符与表达式1. 计算机能直接执行的程序是:A) 源程序 B) 目标程序 C) 汇编程序 D) 可执行程序2. 下列叙述中错误的是:A) 计算机不能直接执行用C语言编写的源程序 B) 程序经C编译程序编译后,生成后缀为.obj的文件是一个二进制文件 C) 后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件 D) 后缀为.obj和.exe的二进

2、制文件都可以直接运行3. 若变量均已正确定义并赋值,以下合法的C语言赋值语句是:A) x = y = = 5; B) x = n % 2.5; C) x + n = i; D) x = 5 = 4 + 1; 4. 若以下选项中的变量已正确定义,则正确的赋值语句是:A) x1 = 26.8 %3 B) 1+2 = x2 C) x3 = 0x12 D) x4 = 1+2 = 3;5. 若已定义x和y为double类型,则表达式:x = 1,y = x + 3/2的值是:A) 2.0 B) 2 C) 2.5 D) 16. 已知字符 A 的ASC代码值是65,字符变量c1的值是 A, c2的值是 D,

3、执行语句print f ( %d, %d , c1, c2-2 );后,输出结果是:A) A,B B) A,68 C) 65,66 D) 65,68 7. main ( ) char a1 = M, a2 = m; printf ( %c n , (a1, a2) ); 根据以上程序, 以下叙述中正确的是:A) 程序输出大写字母M B) 程序输出小写字母mC) 格式说明符不足,编译出错 D) 程序运行时产生出错信息8. 已有定义:int x = 3, y = 4, z = 5;,则表达式 ! ( x + y ) + z -1 & y + z / 2的值是:A) 6 B) 0 C) 2 D) 1

4、9. 设x和y均为int 型变量,则以下语句:x += y; y = x-y; x -= y; 的功能是:A) 交换x和y中的值 B) 把x和y按从小到大排列C) 无确定结果 D) 把x 和y按从大到小排列10. 以下选项中非法的表达式是A) 0 = x 100 B) i = j = = 0 C) (char) ( 65+3 ) D) x+1 = x+111. 若x和y代表整型数,以下表达式中不能正确表示数学关系 | x - y | 10的是:A) abs (x-y ) -10 & x-y10 C) (x-y) 10 D) (x-y) * (x-y) b) & +n; 则n的值是:A) 1 B

5、) 2 C) 3 D) 413. 若有表达式 (w) ? (-x):(+y), 则其中与w等价的表达式是:A) w = = 1 B)w = = 0 C) w!=1 D) w != 014. 设已有定义 int a = 5, b = 6, c = 7, d = 8, m = 2,n = 2; 则逻辑表达式 ( m = ab ) & ( n = cd ) 运算后,n的值为:A) 0 B) 1 C) 2 D) 315. 已有定义:char c; ,程序前面已在命令行中包含ctype.h文件,不能用于判断c中的字符是否为大写字母的表达式是:A) isupper (c) B) A= c = Z C)A=

6、 c & c = Z D) c = (z-32) & (a-32) = c第3章 语句和控制结构16. 以下叙述中错误的是A) C语言是一种结构化程序设计语言 B) 结构化程序有顺序、分支、循环三种基本结构组成C) 使用三种基本结构构成的程序只能解决简单问题 D) 结构化程序设计提倡模块化的设计方法17. 有以下程序段int m = 0, n = 0; char c = a;scanf ( %d %c %d , &m,&c,&n); printf ( %d, %c, %d n , m, c, n);若从键盘上输入:10A10,则输出结果是:A) 10, A, 10 B) 10, a, 10 C

7、) 10, a, 0 D) 10, A, 018. 若有说明语句:int a, b, c, *d = &c;,则能正确从键盘读入三个整数分别赋给a、b、c的语句是:A) scanf ( %d %d %d, a, b, *d ); B) scanf ( %d %d %d, &a, &b, &d );C) scanf (%d %d %d, a, b, d ); D) scanf (%d %d %d,&a, &b, d ) 19. 若在定义语句:int a, b, c,*p = &c; 之后,接着执行以下选项中的语句,则能正确执行的语句是:A) scanf (%d, a,b,c); B)scanf

8、(%d%d%d, a,b,c); C) scanf (%d, p); D) scanf (%d, &p);20. 有定义语句:int x, y; ,若要通过scanf ( %d,%d, &x, &y ); 语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,错误的是:A) 11 12 B) 11,12 C) 11, 12 D) 11,1221. 若变量已正确定义为int 型,要通过语句scanf (”%d, %d, %d”, &a, &b, &c ); 给a赋值1、给b赋值2、给c赋值3,以下输入形式中错误的是:(代表一个空格符)A) 1, 2, 3 B) 123 C) 1,2,

9、 3 D) 1, 2, 322. 有以下程序段 int j; float y; char name50; scanf ( %2d %f %s, &j, &y, name); 当执行上述程序段,从键盘上输入55566 7777abc后,y的值为:A) 55566.0 B) 566.0 C) 7777.0 D) 566777.0 23. 当用户要求输入的字符串中含有空格时,应使用的输入函数是:A) scanf ( ) B) getchar ( ) C) gets ( ) D) getc( ) 24. C语言中用于结构化程序设计的三种基本结构是:A) 顺序、选择、循环 B) if、switch、br

10、eak C) for、while、do-while D) if、for、continue25. 要使以下程序中t的输出结果为4,则输入a和b应满足的条件是:main () int s = 1, t = 1, a, b;scanf ( %d %d , &a, &b );if ( a 0 ) s += 1; if ( ab ) t = s + t;else if ( a= =b ) t = 5;else t = 2 * s;printf ( %d n , t );A) a0并且ab B) a0并且a0并且ab D) ab26. 有以下程序段int n, t = 1, s = 0; scanf (

11、%d , &n); do s = s + t; t = t-2; while (t != n );为使此程序段不陷入死循环,从键盘输入的数据应该是:A) 任意正奇数 B) 任意负偶数 C) 任意正偶数 D) 任意负奇数27. 在循环语句的循环体中,continue语句的作用是:A) 立即终止整个循环 B) 继续执行continue语句之后的循环体各语句C) 结束本次循环 D) 结束本次循环并跳出循环28. 若变量已正确定义,有以下程序段,其输出结果是:i = 0; do printf ( %d, , i ) ; while ( i+ ); printf ( %d n , i );A) 0,0

12、B) 0,1 C) 1,1 D) 程序进入无限循环 29. 若定义int i;, 则循环语句:for ( i = 2;i = = 0;) printf ( %d , i-);执行次数是:A) 无限次 B) 2次 C) 1次 D) 0次30. 若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值 ( c大于0) for (s = a, b = 1; b= c; b +) s = s + 1;则与上述程序段功能等价的赋值语句是:A) s = a + b; B) s = a + c; C) s = s + c; D) s = b + c;第4章 函数与程序结构31. 对于一个正常运

13、行的C程序,以下叙述中正确的是:A) 程序的执行总是从main函数开始,在main函数结束 B) 程序的执行总是从程序的第一个函数开始,在main函数结束 C) 程序的执行总是从main函数开始,在程序的最后一个函数中结束 D) 程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束32. 以下正确的叙述是:A) 在C语言中,main函数必须位于文件的开头B) C语言的每行中只能写一条语句C) C语言本身没有输入、输出语句D) main函数可以在任何地方出现33. C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是:A) void B) int C) float D) dou

14、ble34. 下面的函数调用语句中func ( f2 (v1,v2), (v3, v4, v5), (v6, max (v7, v8) ) );,函数的实参个数是:A) 3 B) 4 C) 5 D) 835. 以下叙述中错误的是A) 用户自定义的函数中可以没有return语句B) 用户自定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值C) 用户自定义的函数中若没有return语句,则应当定义函数为void类型D) 函数的return语句中可以没有表达式36. 若程序中定义了以下函数double myadd (double a,double b) return (a+b);

15、 并将其放在调用语句之后,则在调用之前应该对函数进行说明,以下错误的说明是:A) double myadd (double a, b); B) double myadd (double, double );C) double myadd (double b, double a); D) double myadd (double x, double y);37. 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是:A) 地址传递 B) 双向值传递 C) 单向值传递 D) 传递方式由用户指定38. 若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是:A) 函数的实参

16、和其对应的形参共占同一存储单元B) 形参只是形式上的存在,不占用具体存储单元C) 同名的实参和形参占同一存储单元 D) 函数的形参和实参分别占用不同的存储单元 39. 若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是:A) 函数调用可以作为独立的语句存在 B) 函数调用可以作为一个函数的实参C) 函数调用可以出现在表达式中 D) 函数调用可以作为一个函数的形参40. 凡在函数内未指定的存储类型变量,其隐含的存储类型为:A) register B) static C) extern D) auto41. 以下叙述中正确的是:A) 未在定义语句中赋初值的变量初值都是随机值 B) 全局变

17、量的作用域一定比局部变量大 C) static类别变量的生存期贯穿于整个程序的运行期间 D) 函数的形参都属于全局变量42. 在一个C语言源程序文件中所定义的全局变量,其作用域为: A) 所在文件的全部范围 B) 所在程序的全部范围 C) 所在函数的全部范围 D) 由具体定义位置和extern 说明来决定范围 第6章 数组43. 若在main ( ) 中有定义 int a 5 ; 则数组a 中所有元素的初值为:A) 不确定 B) 0 C) 1 D) -144. 若有以下定义语句:int m = 5, 4, 3, 2, 1 ,i = 4;, 则下面对m数组元素的引用中错误的是:A) m -i B

18、) m 2*2 C) m m 0 D) m mi 45. 若定义a 2 = 1, 2, 3, 4, 5, 6, 7 ;则a数组中行的大小是:A) 2 B) 3 C) 4 D) 无确定值46. 若有定义语句:int a36; ,按在内存中的存放顺序,a数组的第10个元素是 A) a04 B) a13 C) a03 D) a14 47. 以下能正确定义数组并正确赋初值的语句是:A) int N = 5, bNN; B) int a12 = 1, 3;C) int c2 = 1, 2, 3, 4 D) int d32 = 1, 2, 3, 4;48. 以下能正确定义二维数组的是:A) int a 3

19、; B) int a 3=22*3; C) int a 3=1; D) int a23=1,2,3,449. 若定义a 3 = 1, 2, 3, 4, 5, 6, 7,8 ;,则数组a中行的大小是:A) 2 B) 3 C) 4 D) 无确定值50. 在以下定义中,正确的说明语句为:A) int a a B) int a3, 4 C) int a D) int *a10; 51. 用数组名作为函数参数时,它传递给函数是:A) 数组首地址 B) 整个数组 C) 数组的第一个值 D) 数组的全部地址52. 以下能正确定义一维数组的选项是: A) int a3=0,1,2,3; B) char a =

20、0,1,2,3,; C) char a=A,B,C; D) int a3=012;53. 若有定义语句:char s10 = 123456700 ; ,则strlen (s) 的值是:A) 7 B) 8 C) 9 D) 10 第7章 指针54. 设有定义:int n1=0, n2, *p = &n2, *q = &n1;,以下赋值语句中与n2 = n1;语句等价的是:A) *p = *q; B) p = q; C) *p = &n1; D) p = *q;55. 若有定义:int x = 0, *p = &x;,则语句printf ( %d n , *p ); 的输出结果是:A) 随机值 B)

21、 0 C) x的地址 D) p的地址 56. 设有定义:char p =1,2,3, *q = p; ,不能计算出一个char型数据所占字节数的表达式是:A) sizeof ( p ) B) sizeof ( char ) C) sizeof ( *q ) D) sizeof ( p0 )57. 有如下说明 int a 10 = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 , *p = a; 则数值为9的表达式是:A) *p+9 B) *(p+8) C) *p += 9 D) p+858. 有以下定义和语句: int a32=1,2,3,4,5,6, *p3; p0 = a1;

22、 则*p0+1所代表的数组元素是:A) a01 B) a10 C) a11 D) a1259. 若有以下说明和语句,int c45, (*p)5; p = c; 能正确引用c数组元素的是:A) p+1 B) *(p+3) C) *(p+1)+3 D) *( p0+2)60. 若有定义语句:int a23, *p3; ,则以下语句中正确的是:A) p=a; B) p0=a; C) p0=&a12; D) p1=&a; 61. 若有定义int a35,i,j;(且0i3,0j5), 则地址 &aij 对应元素的不正确表示是:A) *(a+i*5+j) B) *(ai+j) C) *(a+i)+j

23、D) *(*(a+i)+j);62. 以下各语句或语句组中,正确的操作是:A) char s5=abcde; B) char *s; gets(s); C) char s5; gets (&s); D) char *s =abcde;63. 把字符串 OK! 赋值给变量不正确的语句或语句组是:A) char a = OK! ; B) char a 8 = O, K, ! , 0 ;C) char *p ; p = OK! ; D) char p; strcpy ( p , OK! ) ;64. 定义compare (char*s1,char*s2) 函数,以实现比较两个字符串大小的功能。以下程

24、序运行结果为 -32,选择正确答案填空。main ( ) printf ( ”%d n”, compare ( ”abCd”, ”abc”) ); compare (char*s1,char*s2) while (*s1 & *s2 & ) s1+; s2+;return *s1-*s2;A) *s1 != *s2 B) *s1 = = *s2 C) *s1 = *s2 D) s1 != s265. 有以下函数,关于aaa函数的功能叙述正确的是:int aaa (char *s) char *t = s; while ( *t+ ); t-; return (t-s); A) 求串s的长度 B

25、) 比较两串的大小 C) 将串s复制到串t D) 求串s所占字节数 66. 设有定义:int n = 0, *p = &n, *q = &p; ,则以下选项中,正确的赋值语句是:A) p = 1; B) *q = 2; C) q = p; D) *p = 5;67. 若有定义 char * language = FORTRAN, BASIC , PASCAL, C; 则language2的值是:A) 一个字符 B) 一个地址 C) 一个字符串 D) 不定68. 若指针p已正确定义,要使p指向两个连续的整型动态存储单元,不正确的语句是:A) p =2* (int*) malloc (sizeof

26、 (int) ); B) p = (int*) malloc (2 * sizeof (int) );C) p = (int*) malloc (2*2 ); D) p = (int*) calloc (2, sizeof (int) ); 第8章 结构及其地数据类型69. 若要说明一个类型名STP,使得定义语句STP s;等价于char *s;,以下选项中正确的是:A) typedef STP char *s; B) typedef *char STP; C) typedef STP *char; D) typedef char* STP70. 若有定义typedef char STR 52

27、0;STR s;,则s是:A) 字符指针数组变量 B) 字符数组变量 C) 字符变量 D) 字符指针变量71. 有以上程序段:typedef struct NODE int num; struct NODE *next; OLD;以下正确的叙述是:A) 以上的说明形式非法 B) NODE是一个结构体类型C) OLD是一个结构体类型 D) OLD是一个结构体变量72. 设有以下说明语句 typedef struct int n; char ch8; PER;,则下面叙述中正确的是:A) PER 是结构体变量名 B) PER是结构体类型名C) typedef struct 是结构体类型 D) st

28、ruct 是结构体类型名73. 根据下面的定义,能打印出字母M的语句是:struct person char name9; int age; class10 = John,17, Paul,19, Mary,18, Adam,16;A) printf (%cn, class3.name ); B) printf (%cn, class3.name1 ); C) printf (%cn, class2.name1 ); D) printf (%cn, class2.name0 );74. 设有说明如下, 则能正确定义结构体数组并赋初值的语句是:typedef struct int n; char c; double x; STD ; A) struct STD tt 2 = 1,A, 6, 2,B, 7; B) struct tt 2 = 1,A,2,B;C) STD tt 2 = 1, A, 6, 2, B, 7 ; D) STD tt 2 = 1,A, 6, 2, 7;75. 若定义:struct ss

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1