C语言选择题复习精选.

合集下载

C语言期末复习题

C语言期末复习题

第一单元程序设计和C语言一、选择题1.C语言的基本构成单位是: A 。

A. 函数B. 函数和过程C. 超文本过程D. 子程序2.一个C语言程序总是从 B 开始执行。

A. 主过程B. 主函数C. 子程序D.主程序3.C语言的程序一行写不下时,可以。

A. 用逗号换行B. 用分号换行C. 在任意一空格处换行D. 用回车符换行4.以下叙述不正确的是: C 。

A. 在C程序中,语句之间必须要用分号";"分隔B. 若a是实型变量,C程序中a=10是正确的,因为实型变量中允许存放整型数C. 在C程序中,无论是整数还是实数都能正确无误地表示D. 在C程序中,%是只能用于整数运算的运算符5.以下不正确的C语言标识符是 D 。

A. ABCB. abcC. a_bcD. ab.c6.下列字符串是标识符的是: A 。

A. _HJB. 9_studentC. longD. LINE 17.以下说法中正确的是: C 。

A. C语言程序总是从第一个定义的函数开始执行B. 在C语言程序中,要调用的函数必须放在main()函数中定义C. C语言程序总是从main()函数开始执行D. C语言程序中的main()函数必须放在程序的开始部分8.不合法的常量是: D 。

A. ‘\2’B. ""C. ‘3’D. ‘\483’9.已知各变量的类型说明如下,则以下不符合C语言语法的表达式是: A 。

int k,a,b;unsigned long w=5;double x=1.422;A. x%(-3)B. w+=-2C. k=(a=2,b=3,a+b)D. a+=a=+(b=4)*(a=3)10.在C语言中,字符型数据在内存中以 D 形式存放。

A. 原码B. BCD码C. 反码D. ASCII码11.若有定义:int a=7; float x=2.5; y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是: A 。

C语言选择题(1-4章期末复习)

C语言选择题(1-4章期末复习)

第1章1.以下叙述不正确得就是( )。

A、C程序得基本组成单位就是函数B、在C程序中,注释说明只能位于一条语句得后面C、一个C源程序必须包含一个main函数D、一个C源程序可由一个或多个函数组成2.C语言得注释定界符就是( )。

A、\* *\B、{ }C、[ ]D、/* */3.C语言规定,在一个源程序中,main函数得位置( )。

A、必须在最开始B、必须在系统调用得库函数得后面C、必须在最后D、可以任意4.一个C程序得执行就是从( )。

A、本程序文件得第一个函数开始,到本程序main函数结束B、本程序得main函数开始,到main函数结束C、本程序得main函数开始,到本程序文件得最后一个函数结束D、本程序文件得第一个函数开始,到本程序文件得最后一个函数结束5.以下叙述中正确得就是( )。

A、C程序中注释部分可以出现在程序中任意合适得地方B、分号就是C语句之间得分隔符,不就是语句得一部分C、花括号“{“与”}”只能作为函数体得定界符D、构成C程序得基本单位就是函数,所有函数名都可以由用户命名6.以下叙述正确得就是( )。

A、在对一个C程序进行编译得过程中,可发现注释中得拼写错误B、C语言本身没有输入输出语句C、在C程序中,main函数必须位于程序得最前面D、C程序得每行中只能写一条语句7.C语言源程序得基本单位就是( )。

A、子程序B、过程C、函数D、标识符8.下列标识符中,不合法得C语言用户自定义标识符就是( )。

A、printfB、sinC、enumD、_9.下列四个选项中,均就是C语言关键字得选项就是( )。

A、if struct typeB、switch typedef continueC、signed union scanfD、auto enum include10.以下叙述中错误得就是( )A、用户所定义得标识符应尽量做到"见名知意"B、用户所定义得标识符允许使用关键字C、用户定义得标识符中,大、小写字母代表不同标识D、用户所定义得标识符必须以字母或下划线开头11.下列字符序列中,可用作C标识符得一组字符序列就是( )。

c语言期末复习试题附答案

c语言期末复习试题附答案

c语言期末复习试题附答案一、选择题(每题2分,共20分)1. C语言中,下面哪个选项不是合法的数据类型?A. intB. floatC. doubleD. character答案:D2. 在C语言中,下面哪个选项是合法的变量名?A. 2abcB. abc12C. abc_12D. abc&12答案:B3. 下面哪个选项不是C语言的运算符?A. +C.D. %答案:D4. 在C语言中,下面哪个选项表示取模运算?A. %B. /C.D. ^答案:A5. 下面哪个选项是C语言中的关系运算符?A. ==B. !=C. >D. <答案:A、B、C、D6. 下面哪个选项是C语言中的逻辑运算符?B. ||C. !D. &答案:A、B、C7. 下面哪个选项是C语言中的赋值运算符?A. =B. +=C. -=D. =答案:A、B、C、D8. 下面哪个选项不是C语言中的控制语句?A. ifB. whileC. do-whileD. for答案:D9. 在C语言中,下面哪个选项表示循环不变量?A. 初始化表达式B. 循环条件C. 循环体D. 步进表达式答案:D10. 下面哪个选项是C语言中的递归调用?A. function(function());B. function();function();C. function(function());function();D. function();function(function());答案:A二、填空题(每题2分,共20分)1. C语言中,一个整型数据占____个字节。

答案:42. C语言中,一个浮点型数据占____个字节。

答案:43. 在C语言中,一元运算符“++”和“--”的优先级高于二元运算符“+”、“-”、“”、“/”、“%”。

答案:正确4. 在C语言中,关系运算符“==”和“!=”的优先级高于“<”、“>”、“<=”、“>=”。

c语言复习题

c语言复习题

C语言复习题一、单项选择题(每小题2分)1. 对于一个正常运行的C程序,以下叙述正确的是_______。

A. 程序的执行总是从main()开始,在main()中结束。

B. 程序的执行总是从第一个函数开始,在main()中结束。

C. 程序的执行总是从main()开始,在最后一个函数中结束。

D. 程序的执行总是从main()开始,在最后一个函数中结束。

2. 下列数据中,为字符型常量的是_______。

A. "ab"B. "a"C.‘a’D. a3. int u=010,v=0x10,w=10; printf("%d,%d,%d\n",u,v,w);则输出结果是_______。

A. 8,16,10B.10,10,10C. 8,8,10D. 8,10,104. (a=3)&&(b=-3)的运算结果是_______。

A. -3B. 1C. 0D. 35. 在C语言中,字符串"\xaf\thello\65"的长度是_______。

A. 5 B.7 C. 8 D. 126. 设float x,由键盘输入:12.45, 能正确读入数据的输入语句是_________。

A.scanf("%5f",&x);B.scanf("%5d",&x);C.scanf("%f",x);D.scanf("%s",&x);7.int a=65,则printf("%d,%o,%x",a,a,a)的结果是_________。

A. 65,65,65B. 65,101,41C. A,101,41D. 65,41,1018. char c1=’a’,c2=’b’; c1=getchar(); c2=getchar();运行程序时,从键盘输入a<Enter键>,以下说法正确的是_________。

C语言复习题及答案

C语言复习题及答案

复习A:一、单项选择题1、如果要把常量327存入变量a中,a不能定义的类型是哪一个? ( )A)int B)char C)long D)float2、若x 为unsigned int 型变量,则执行下列语句后x值为()x = 65535;printf(“%d\n”,x);A)65535 B)1 C)无定值D)-13、有以下程序main(){int a=1,b=2,m=0,n=0,k;k=(n=b>a)||(m=a<b);printf(″%d,%d\n″,k,m);}程序运行后的输出结果是()A)0,0 B)0,1 C)1,0 D)1,14、在C语言中,如果下面的变量都是int类型,则输出的结果是()。

sum=pad=5; pAd=sum + + ,pAd + +, + + pAd;printf("%d\n",pad);A) 7 B) 6 C) 5 D) 45、以下程序的输出结果是()。

main(){ int a=4,b=5,c=0,d;d=!a&&!b||!c;printf("%d\n",d);}A)1 B)0 C)非0的数D)-16、当执行以下程序段时()。

x=-1;do{x=x*x;}while(!x);A)循环体将执行一次B)循环体将执行两次C)循环体将执行无限次D)系统将提示有语法错误7、全局变量的存储类型可以定义为()。

A)auto或static B)extern或registerC)auto或extern D)extern或static8、定义全局变量时,若变量的的存储类别缺省,则默认的存储类型是()。

A)auto B)registerC)extern D)static9、已知:int a, x; 则正确的赋值语句是()。

A)a=(a[1]+a{2})/2; B)a*=*a+1; C)a=(x=1, x++, x+2); D)a="good";10、已知:int a, *p=&a; 则下列函数调用中错误的是()。

C语言选择题 (附答案)

C语言选择题  (附答案)

第一单元C语言概述一、选择题1、C语言中主函数的个数为(A)个。

A)1 B)2C)无穷个D)任意个2、以下关于C语言描述错误的是(D)。

A)一个C程序总是从main函数开始执行TB)每个语句和数据声明的最后必须有一个分号TC)C语言的注释符是以“/*”开始并以“*/”结束的TD)一个C程序可以包含多个main函数F3、C 语言源程序文件后缀为(C )。

A).EXE B).OBJ C).C D).ASM4、C语言是由(C )组成的。

A)子程序B)主程序与子程序C)函数D)过程5、C语言属于(B )语言A)机器语言B)汇编语言C)高级语言D)面向对象语言第二单元C语言基础一、选择题1、C语言中普通整型变量int在内存中占(B )字节。

A)1 B)2 C)3 D)42、下列不是C语言基本数据类型的是(A )。

A)字符型B) 整型C) 浮点型D) 结构体3、有关自增、自减运算,以下只有(D )是正确的。

A) ---f B) ++78 C) a—b++ D) d++4、已知A=7.5,B=2,C=3.6,表达式(A>B && C>A) || (A<B && !C>B)的值是(A )。

A)0 B)10 C)1 D)55、若有x=1,y=2,z=3,则表达式(x<y?x:y)= =z的值是(D )。

A)1 B)2 C)3 D)06、判断char型变量ch是否为大写字母的正确表达式是(C )。

A) ‘A’<=ch<=‘Z’B) (ch>=‘A’)&(ch<=‘Z’)C) (ch>=‘A’)&&(ch<=‘Z’) D) (‘A’<= ch)AND(‘Z’>= ch)7、判断整型变量digit是否为数字的正确表达式是(C )。

A) ‘0’<=ch<=‘9’B) (ch>=‘0’)&(ch<=‘9’)C) (ch>=‘0’)&&(ch<=‘9’) D) (‘0’<= ch)AND(‘9’>= ch)8、一个C程序的执行是从(A )。

C语言复习题及参考答案

C语言复习题及参考答案

C语言复习题及参考答案一、单项选择1、以下叙述正确的是:__B__。

A)C语言的源程序不必通过编译就可以直接运行。

B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令。

C)C语言源程序经编译形成的二进制代码可以直接运行。

D)C语言中的函数不可以单独进行编译。

2、以下4个用户定义标识符中,全部合法的一组是__A__。

A)_main enclude sin B)if –max turbo C)txt REAL 3COM D)int k_2 _001 3、以下不能定义为用户标识符的是_D__。

A)scanf B)Void C)_3com D)int4、C语言中用于结构化程序设计的3种基本结构是__A__。

A)顺序结构、选择结构、循环结构B)if、switch、breakC)for、while、do-whileD)if、for、continue5、为解决某一特定问题而设计的指令序列称为__C__。

A)文档B)语言C)程序D)系统6、用高级程序设计语言编写的程序称为__C__。

A)目标程序B)可执行程序C)源程序D)伪代码7、能将高级语言编写的源程序转换成目标程序的是__B__。

A)编辑程序B)编译程序C)驱动程序D)链接程序8、下列叙述中,正确一条是__C__。

A)计算机语言中,只有机器语言属于低级语言。

B)高级语言源程序可以被计算机直接执行。

C)C语言属于高级语言。

D)机器语言是所用机器无关的。

9、以下符合C语言语法的实型常量是__C__。

A)1.2E0.5B)3.14159E C).5E-3D)E1510、下面叙述正确的是__A___。

A)C程序中注释部分可以出现在程序中任何合适的地方。

B)花括号“{”和“}”只能作为函数体的定界符。

C)构成C程序的基本单位是函数,所有函数名都可以由用户命名。

D)分号是C语句之间的分隔符,不是语句的一部分。

11、设有以下定义:int a=0; double b=1.25; char c=’A’;#define d 2则下面语句中,错误是__D__。

C语言选择题(1-4章期末复习)

C语言选择题(1-4章期末复习)

C语言选择题(1・4章期末复习)第1章1 .以下叙述不正确的是()。

A、C程序的基本组成单位是函数B、在C程序中,注释说明只能位于一条语句的后面C、一个C源程序必须包含一个main函数D、一个C源程序可由一个或多个函数组成2 .C语言的注释定界符是()。

A、V *\B、{}C []D、/**/3 .C语言规定,在一个源程序中,main函数的位置()。

A、必须在最开始B、必须在系统调用的库函数的后面C、必须在最后D、可以任意4 .一个C程序的执行是从()。

A、本程序文件的第一个函数开始,到本程序main函数结束B、本程序的main函数开始,到main函数结束C、本程序的main函数开始,到本程序文件的最后一个函数结束D、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束5 .以下叙述中正确的是()。

A、C程序中注释部分可以出现在程序中任意合适的地方B、分号是C语句之间的分隔符,不是语句的一部分C、花括号〃{〃和〃 }〃只能作为函数体的定界符D、构成C程序的基本单位是函数,所有函数名都可以由用户命名6 .以下叙述正确的是()。

52 .已有定义:int x=3/y=4,z=5; z则表达式!(x+y)+z-l && y+z/2的值是()A、6B、1C、0D、253 .若给定条件表达式(M)?(a + +):(a--),则其中表达式M( )oA、和(M! = l)等价B、和(M = = l)等价C、和(M!=0)等价D、和(M = =0)等价54 .用下列语句定义a , b , c ,然后执行b=a, c='b'+b,则b , c 的值是()olong a=3;int b; char c;A、2 和101B、3 和101C、3 和100D、3 和9955 .表达式18/4*sqrt(4.0)/8值的数据类型为()。

A、不确定B、doubleC、intD、float56 .若a为int类型,且其值为3 ,则执行完表达式a+=a-=a*a后, a 的值是()。

C语言的选择题含解答共120道题

C语言的选择题含解答共120道题

C语言的选择题含解答共120道题1. 下列哪个不是C语言的关键字?a) ifb) thenc) elsed) switch解答:b) then。

C语言中没有关键字"then"。

2. 在C语言中,如何声明一个整数型变量?a) int x;b) integer x;c) var x;d) int = x;解答:a) int x;3. 下列哪个运算符用于取地址?a) &b) *c) #d) $解答:a) &4. 下列哪个C语言关键字用于定义一个循环?a) forb) ifc) switchd) do解答:a) for5. 下列哪个选项可以用于在C语言中打印输出?a) print()b) log()c) printf()d) display()解答:c) printf()6. 在C语言中,如何定义一个字符数组?a) char name[20];b) string name[20];c) array name[20];d) character name[20];解答:a) char name[20];7. 下列哪个数据类型用于存储小数?a) floatb) intc) chard) double解答:d) double8. 在C语言中,如何注释一行代码?a) // This is a commentb) /* This is a comment */c) -- This is a commentd) comment: This is a comment解答:a) // This is a comment9. 下列哪个关键字用于退出循环?a) stopb) exitc) breakd) quit解答:c) break10. 下列哪个运算符用于逻辑与操作?a) &&b) ||c) !d) &解答:a) &&11. 在C语言中,如何定义一个常量?a) const x;b) constant x;c) #define x;d) const int x;解答:d) const int x;12. 下列哪个C语言数据类型用于存储单个字符?a) stringb) charc) characterd) letter解答:b) char13. 在C语言中,以下哪个运算符用于求余数?a) %b) /c) *d) //解答:a) %14. 下列哪个关键字用于定义一个函数?a) funcb) defc) functiond) void解答:d) void15. 在C语言中,如何定义一个指向整数的指针?a) int ptr;b) pointer int;c) int *ptr;d) *int ptr;解答:c) int *ptr;16. 下列哪个运算符用于自增操作?a) ++b) --c) +=d) -=解答:a) ++17. 下列哪个条件语句用于多个条件的判断?a) ifb) elsec) switchd) elif解答:c) switch18. 在C语言中,如何声明一个常量字符串?a) string const str = "Hello";b) const char str[] = "Hello";c) constant str = "Hello";d) char str[const] = "Hello";解答:b) const char str[] = "Hello";19. 下列哪个关键字用于引入标准输入输出库?a) importb) usingc) included) require解答:c) include20. 在C语言中,以下哪个关键字用于动态内存分配?a) mallocb) newc) allocated) create解答:a) malloc21. 下列哪个运算符用于按位与操作?a) &b) |c) ^d) ~解答:a) &22. 在C语言中,如何定义一个枚举类型?a) enum type {RED, GREEN, BLUE};b) type enum {RED, GREEN, BLUE};c) enum {RED, GREEN, BLUE} type;d) int enum {RED, GREEN, BLUE};解答:a) enum type {RED, GREEN, BLUE};23. 下列哪个关键字用于定义一个结构体?a) classb) structurec) structd) object解答:c) struct24. 下列哪个运算符用于比较两个值是否相等?a) ==b) =c) !=d) ===解答:a) ==25. 在C语言中,如何定义一个全局变量?a) local int x;b) global x;c) static int x;d) int x;解答:d) int x;26. 下列哪个关键字用于函数返回一个值?a) voidb) returnc) valued) result解答:b) return27. 在C语言中,如何使用条件运算符(三元运算符)?a) if-elseb) switchc) ?:d) ternary解答:c) ?:28. 下列哪个运算符用于逻辑或操作?a) ||b) &&c) !d) |解答:a) ||29. 在C语言中,如何定义一个二维整数数组?a) int array[];b) int matrix[][];c) int array[][];d) int matrix[][];解答:d) int matrix[][];30. 下列哪个关键字用于声明一个函数参数是常量?a) constb) staticc) volatiled) mutable解答:a) const31. 在C语言中,如何通过指针访问结构体的成员?a) struct->memberb) struct.memberc) struct[member]d) struct(member)解答:b) struct.member32. 下列哪个运算符用于按位或操作?a) |b) &c) ^d) ~解答:a) |33. 在C语言中,如何声明一个字符型指针?a) char *ptr;b) pointer char;c) char ptr*;d) char& ptr;解答:a) char *ptr;34. 下列哪个关键字用于定义一个宏?a) macrob) definec) constantd) var解答:b) define35. 在C语言中,如何打开一个文件以供读取?a) open()b) read()c) fopen()d) file_open()解答:c) fopen()36. 下列哪个关键字用于定义一个结构体类型的别名?a) typedefb) aliasc) typed) struct解答:a) typedef37. 在C语言中,如何用条件语句检查多个条件?a) if-elseb) forc) whiled) switch解答:a) if-else38. 下列哪个关键字用于声明一个常量指针?a) constb) pointerc) staticd) readonly解答:a) const39. 在C语言中,如何分配内存以存储多个元素的数组?a) newb) mallocc) created) allocate解答:b) malloc40. 下列哪个运算符用于按位异或操作?a) ^b) &c) |d) ~解答:a) ^41. 在C语言中,如何在代码中添加注释以便于代码维护和理解?a) // 这是一个注释b) /* 这是一个注释*/c) --这是一个注释d) comment: 这是一个注释解答:a) // 这是一个注释42. 下列哪个关键字用于退出整个程序?a) exit()b) returnc) breakd) quit解答:a) exit()43. 在C语言中,如何声明一个包含浮点数的数组?a) float array[10];b) array float[10];c) double array[10];d) int array[10];解答:a) float array[10];44. 下列哪个关键字用于循环中跳到下一次迭代?a) nextb) continuec) breakd) exit解答:b) continue45. 在C语言中,如何将一个整数转换为浮点数?a) int_to_float()b) (float)c) float()d) cast_float()解答:b) (float)46. 下列哪个运算符用于递增指针的值?a) ++b) --c) +=d) -=解答:a) ++47. 在C语言中,如何声明一个具有常量值的枚举?a) const enum {RED = 1, GREEN = 2, BLUE = 3};b) enum {RED = 1, GREEN = 2, BLUE = 3} const;c) enum const {RED = 1, GREEN = 2, BLUE = 3};d) enum {const RED = 1, const GREEN = 2, const BLUE = 3};解答:a) const enum {RED = 1, GREEN = 2, BLUE = 3};48. 下列哪个运算符用于取反操作?a) !b) ~c) -d) ++解答:a) !49. 在C语言中,如何定义一个无符号整数型变量?a) signed int x;b) unsigned x;c) int x;d) int unsigned x;解答:b) unsigned x;50. 下列哪个关键字用于定义一个函数参数是可选的?a) optionalb) requiredc) defaultd) void解答:a) optional51. 在C语言中,如何将一个字符转换为整数?a) (int)char_var;b) int(char_var);c) char_var - '0';d) convert_to_int(char_var);解答:c) char_var - '0';52. 下列哪个关键字用于在循环中跳出当前迭代?a) continueb) exitc) returnd) break解答:d) break53. 在C语言中,如何声明一个指向函数的指针?a) int *func_ptr();b) func_type *ptr;c) typedef int (*func_type)();d) pointer_to_function func_ptr;解答:c) typedef int (*func_type)();54. 下列哪个运算符用于逻辑非操作?a) !b) &&c) ||d) ~解答:a) !55. 在C语言中,如何声明一个二维字符数组?a) char matrix[][];b) char array[][];c) char matrix[][];d) char array[][];解答:c) char matrix[][];56. 下列哪个关键字用于定义一个函数的局部变量?a) localb) varc) staticd) global解答:c) static57. 在C语言中,如何进行字符串连接?a) strconcat()b) strcat()c) strjoin()d) strmerge()解答:b) strcat()58. 下列哪个运算符用于左移位操作?a) <<b) >>c) &d) |解答:a) <<59. 在C语言中,如何使用条件语句检查多个条件的组合?a) if-elseb) switchc) whiled) if-else if-else解答:d) if-else if-else60. 下列哪个关键字用于定义一个宏函数?a) functionb) macroc) defined) method解答:c) define61. 在C语言中,以下哪个关键字用于定义结构体成员的位字段?a) fieldb) bitfieldc) memberd) flag解答:b) bitfield62. 下列哪个运算符用于按位左移操作并将结果赋值给左操作数?a) <<=b) >>=c) &=d) |=解答:a) <<=63. 在C语言中,如何定义一个带有默认参数值的函数?a) int func(int x, int y = 5);b) int func(int x, int y default 5);c) int func(int x = 10, int y);d) int func(int x, int y = default 5);解答:a) int func(int x, int y = 5);64. 下列哪个关键字用于在C语言中定义一个联合?a) unionb) combinec) merged) structure解答:a) union65. 在C语言中,如何在代码中生成一个伪随机数?a) random()b) srand()c) rand()d) randomize()解答:c) rand()66. 下列哪个运算符用于按位右移操作?a) <<b) >>c) &d) |解答:b) >>67. 在C语言中,如何声明一个指向常量的指针?a) const *ptr;b) *const ptr;c) *ptr const;d) const ptr*;解答:b) *const ptr;68. 下列哪个关键字用于定义一个函数参数是可变数量的?a) varargsb) argsc) variabled) ...解答:d) ...69. 在C语言中,如何检查两个字符串是否相等?a) strcompare()b) strcasecmp()c) strcmp()d) strmatch()解答:c) strcmp()70. 下列哪个运算符用于按位异或操作并将结果赋值给左操作数?a) ^=b) &=c) |=d) ~=解答:a) ^=71. 在C语言中,如何定义一个多维数组?a) int array[];b) int matrix[][];c) int array[][];d) int matrix[][];解答:c) int array[][];72. 下列哪个关键字用于定义一个函数参数是不定类型的?a) varargsb) argsc) variabled) void解答:a) varargs73. 在C语言中,以下哪个运算符用于按位取反?a) ~b) !c) -~d) not解答:a) ~74. 下列哪个关键字用于定义一个枚举类型的别名?a) enum typedefb) typedefc) aliasd) enumalias解答:b) typedef75. 在C语言中,如何声明一个指向函数的指针数组?a) int (*ptr_array[])();b) function ptr_array[]();c) ptr_array[]() int;d) int ptr_array[*]();解答:a) int (*ptr_array[])();76. 下列哪个运算符用于检查两个值是否不相等?a) !=b) ==c) <>d) !==解答:a) !=77. 在C语言中,如何定义一个指向常量字符的指针?a) const char *ptr;b) char const *ptr;c) char *const ptr;d) const *char ptr;解答:a) const char *ptr;78. 下列哪个关键字用于定义一个函数的返回值是指向字符的指针?a) char *b) pointerc) returnd) string解答:a) char *79. 在C语言中,如何将一个浮点数转换为整数?a) int(float_var);b) (int)float_var;c) convert_to_int(float_var);d) float_var - int;解答:b) (int)float_var;80. 下列哪个运算符用于按位或操作并将结果赋值给左操作数?a) |=b) ^=c) &=d) <<=解答:a) |=81. 在C语言中,如何将一个字符转换为小写?a) charlower()b) tolower()c) lowerchar()d) casechange()解答:b) tolower()82. 下列哪个关键字用于定义一个函数参数是不可修改的?a) unmodifiableb) immutabilityc) constd) readonly解答:c) const83. 在C语言中,如何声明一个指向结构体的指针数组?a) struct *ptr_array[];b) struct ptr_array[];c) struct *ptr_array[];d) struct array_ptr[];解答:c) struct *ptr_array[];84. 下列哪个运算符用于按位异或操作并将结果赋值给左操作数?a) ^=b) |=c) &=d) ~=解答:a) ^=85. 在C语言中,如何获取字符串的长度?a) strlength()b) strlen()c) stringlength()d) length()解答:b) strlen()86. 在C语言中,以下哪个关键字用于定义一个局部变量是静态的?a) localb) varc) staticd) global解答:c) static87. 下列哪个运算符用于按位与操作并将结果赋值给左操作数?a) &=b) ^=c) |=d) <<=解答:a) &=88. 在C语言中,如何声明一个指向常量整数的指针?a) int const *ptr;b) const int *ptr;c) int *const ptr;d) const *int ptr;解答:b) const int *ptr;89. 下列哪个关键字用于在C语言中定义一个联合体的别名?a) typedefb) unionaliasc) aliasd) typeunion解答:a) typedef90. 在C语言中,如何将一个整数转换为字符?a) (char)int_var;b) char(int_var);c) int_var + '0';d) convert_to_char(int_var);解答:c) int_var + '0';91. 下列哪个关键字用于在C语言中定义一个类型别名?a) aliasb) definec) typedefd) type解答:c) typedef92. 在C语言中,如何将一个整数转换为字符串?a) convert_to_string(int_var);b) (string)int_var;c) sprintf()d) itoa()解答:c) sprintf()93. 下列哪个运算符用于按位左移操作并将结果赋值给左操作数?a) <<=b) >>=c) &=d) |=解答:a) <<=94. 在C语言中,如何声明一个包含指针的结构体?a) struct pointer_struct { int *ptr; };b) struct { int *ptr; } pointer_struct;c) struct { pointer *int; } pointer_struct;d) struct int *pointer_struct;解答:a) struct pointer_struct { int *ptr; };95. 下列哪个关键字用于在C语言中定义一个宏的别名?a) macroaliasb) definec) aliasmacrod) typedef解答:d) typedef96. 在C语言中,如何将一个字符转换为大写?a) toupper()b) charupper()c) upperchar()d) casechange()解答:a) toupper()97. 在C语言中,以下哪个关键字用于定义一个指向函数的常量指针?a) const *ptr;b) *const ptr;c) *ptr const;d) const ptr*;解答:b) *const ptr;98. 下列哪个运算符用于按位左移操作并将结果赋值给右操作数?a) <<=b) >>=c) &=d) |=解答:b) >>=99. 在C语言中,如何声明一个指向常量字符的常量指针?a) const *char ptr;b) char *const ptr;c) const char *const ptr;d) ptr const *char;解答:c) const char *const ptr;100. 下列哪个关键字用于在C语言中定义一个函数参数是不可修改的常量?a) immutabilityb) unmodifiablec) constd) readonly解答:c) const101. 在C语言中,如何声明一个函数参数是不定数量的可选参数?a) varargsb) argsc) variabled) ...解答:d) ...102. 下列哪个关键字用于在C语言中定义一个指向函数的指针参数是不可修改的常量?a) constb) readonlyc) immutabled) funcconst解答:a) const103. 在C语言中,如何声明一个指向函数参数是不定数量的可选参数的指针?a) varargsptrb) args*c) variable*d) ...*解答:d) ...*104. 下列哪个关键字用于在C语言中定义一个结构体成员是不可修改的常量?a) readonlyb) immutablec) constd) unmodifiable解答:c) const105. 在C语言中,如何声明一个指向常量整数的指针数组?a) const int *ptr_array[];b) int const *ptr_array[];c) int *const ptr_array[];d) const *int ptr_array[];解答:a) const int *ptr_array[];106. 下列哪个关键字用于在C语言中定义一个函数参数是不定数量的可选参数的指针?a) varargsptrb) args*c) variable*d) ...*解答:d) ...*107. 在C语言中,如何声明一个指向整数的常量指针数组?a) int const *ptr_array[];b) const int *ptr_array[];c) const *int ptr_array[];d) int *const ptr_array[];解答:d) int *const ptr_array[];108. 下列哪个关键字用于在C语言中定义一个函数参数是不定数量的可选参数的指针数组?a) varargsptrb) args*c) variable*d) ...*解答:d) ...*109. 在C语言中,以下哪个关键字用于定义一个指向常量整数的常量指针数组?a) int const *const ptr_array[];b) const int *const ptr_array[];c) const *int const ptr_array[];d) int *const *const ptr_array[];解答:b) const int *const ptr_array[];110. 下列哪个运算符用于按位异或操作并将结果赋值给右操作数?a) ^=b) |=c) &=d) ~=解答:a) ^=111. 在C语言中,如何声明一个指向整数的指针参数是不可修改的常量?a) constb) readonlyc) immutabled) intconst解答:a) const112. 下列哪个关键字用于在C语言中定义一个枚举类型的常量别名?a) constenumb) enumconstc) typedefd) enumtypedef解答:c) typedef113. 在C语言中,如何声明一个函数参数是不定数量的可选参数的常量指针?a) varargsconstptrb) argsconstptrc) variableconstptrd) ...constptr解答:d) ...constptr114. 下列哪个关键字用于在C语言中定义一个指向函数的常量指针参数是不可修改的常量?a) constb) readonlyc) immutabled) funcconst解答:a) const115. 在C语言中,如何声明一个指向函数参数是不定数量的可选参数的常量指针数组?a) const varargsptr_array[];b) const argsptr_array[];c) const variableptr_array[];d) const ...ptr_array[];解答:d) const ...ptr_array[];116. 下列哪个关键字用于在C语言中定义一个枚举类型的别名?a) constenumb) enumconstc) typedefd) enumtypedef解答:c) typedef117. 在C语言中,如何声明一个指向函数参数是不定数量的可选参数的常量指针数组的指针?a) const varargsptr_array*;b) const argsptr_array*;c) const variableptr_array*;d) const ...ptr_array*;解答:d) const ...ptr_array*;118. 下列哪个关键字用于在C语言中定义一个指向结构体的常量指针?a) constb) readonlyc) immutabled) structconstptr解答:a) const119. 在C语言中,如何声明一个指向结构体的常量指针参数是不可修改的常量?a) constb) readonlyc) immutabled) structconstptr解答:a) const120. 下列哪个关键字用于在C语言中定义一个指向结构体的常量指针参数是不可修改的常量?a) constb) readonlyc) immutabled) structconstptr解答:a) const。

C语言复习题及答案

C语言复习题及答案

C语言复习题及答案一.单项选择题1.下列选项中,不是转义字符集中的符号是( C )。

A \\B \’C 074D \02. 下列给出的符号串中,不属于C语言保留字的是( B )。

A switchB cherC caseD else3. 下列给出的符号串中,不能作为C语言标识符的是( C )。

A a_2B _2aC a.3D a_34. 下列属于C语言字符常量的是( C )。

A ‘abc’B “\n”C ‘a’D ‘a\0’5. 字符串”ABC”再内存占用的字节数为( B )。

A 3B 4C 6D 86. 设有宏定义“#define R 2+3”,则R*R的宏替换结果正确的是( B )。

A (2+3)*(2+3)B 2+3*2+3C 5*5D 5.0*5.07. 设整形变量I的值为3,则表达式i---i的值为( A )。

A 0B 1C 2D 38. 表达式“10!=9”的值为( D )。

A trueB 非零值C 0D 19. 设有语句int a=3;则执行了语句a+=a-=a*a;后,变量a的值为( D )。

A 3B 0C 9D -1210. 下列选项中,正确的赋值表达式为( C )。

A a=7+b+c=a+7B a=7+b++=a+7C a=(7+b,b++,a+7)D a=7+b,c=a+711. 若有以下定义语句:char a;float c; double d; 则表达式a*b+d-c值的类型为( D )。

A floatB intC charD double12. 用十进制数表示表达式“12||012”的运算结果是( A )。

A 1B 0C 14D 1213. 下列一组运算符中,优先级别最高的运算符是( C )。

A <=B =C %D &&14. 设定“ char a=3,b=6,c;”,计算表达式c=(a^b)<<2后c的二进制值是( D )。

A 00011100B 00000111C 00000001D 0001010015. 设x,y,z,t 均为int类型,则执行下列语句串后,变量t的值为(C )。

C语言常见复习题(选择填空)及参考答案

C语言常见复习题(选择填空)及参考答案

C语言常见复习题及参考答案一、选择题1.下述标识符中,()是合法的用户标识符。

A.A#CB.getchC.voidD.ab*2.在C语言中,字符型数据在内存中是以()形式存放的。

A.原码B.BCD码C.反码D.ASCII码3.以下选项中不合法的用户标识符是()。

A.abc.cB.fileC.MainD.PRONTF4.以下选项中不合法的用户标识符是()。

A.123B.printfC.Anbsp;D.Dim5.可以在C语言程序中用做用户标识符的一组标识符是()。

A.voidB.as-b3C.forD.2cdefine -123 -abc DoWORD If cas SIG6.在以下各组标识符中,合法的用户标识符是(1)、(2)、(3)。

(1)A.001 B.table_1 C.0_t D.k%Int t*.1 W10 point(2)A.Fast_ B.void C.pbl D.Fast+Big abs fabs beep(3)A.xy_ B.longdouble C.*p D.CHAR变量1 signed history Float7.()是构成C语言的基本单位。

A.函数B.过程C.子程序D.子例程8.若有说明:char s1='\067';char s2="1";char s3='1';则s1中(1),s2中(2),s3中(3)。

(1).A.包含3个字符 B.包含2个字符C.包含1个字符D.无定值,说明不合法(2).A.包含1个字符 B.包含2个字符C.包含3个字符D.无定值,说明不合法(3).A.包含1个字符 B.包含2个字符C.包含3个字符D.无定值,说明不合法9.若x为int型变量,则执行以下语句后,x的值为x=6;x+=x-=x*xA.36B.-60C.60D.-2410.在C语言中,char 型数据在内存中是以()形式存储的。

A.原码B.补码C.ASCII码D.反码11.以下运算符中优先级最低的算符为(),优先级最高的为()。

C语言的选择题和详细的解释共30题

C语言的选择题和详细的解释共30题

C语言的选择题和详细的解释共30题1. C语言中,以下哪个关键字用于定义一个常量?a) varb) constc) letd) static解释:正确答案是b) const。

const关键字用于定义常量,表示其值在程序执行过程中不能被修改。

2. 在C语言中,以下哪个关键字用于声明一个函数?a) funcb) methodc) defined) int解释:正确答案是d) int。

在C语言中,函数声明通常以返回类型(如int)开头。

3. 下面的代码片段有什么问题?cint main() {printf("Hello, World!\n")return 0;}a) 缺少分号b) 函数名错误c) 缺少#include指令d) 无问题解释:正确答案是a) 缺少分号。

printf语句末尾缺少分号,应该写成printf("Hello, World!\n");。

4. C语言中,以下哪个关键字用于声明一个指针?a) pointerb) varc) intd) char *解释:正确答案是d) char *。

在C语言中,char *用于声明一个字符指针。

5. 以下哪个运算符用于在C语言中获取变量的地址?a) &b) *c) #d) ->解释:正确答案是a) &。

&运算符用于获取变量的地址。

6. 下面的哪个循环结构在C语言中是无限循环?a) forb) whilec) do-whiled) goto解释:正确答案是d) goto。

goto语句可以用于创建无限循环。

7. 在C语言中,下面的哪个类型用于表示整数值?a) floatb) charc) intd) double解释:正确答案是c) int。

int用于表示整数值。

8. 以下哪个函数用于从标准输入读取一个字符?a) getchar()b) scanf()c) gets()d) read()解释:正确答案是a) getchar()。

(完整版)C语言考试题库及答案

(完整版)C语言考试题库及答案

(完整版)C语言考试题库及答案一、选择题1. 以下哪个选项是C语言的合法标识符?A. intB. 2abcC. voidD. a+b答案:C2. 在C语言中,下列哪个选项是正确的数据类型?A. floatB. integerC. doubleD. All of the above答案:D3. 若变量定义如下:int a = 5;,则执行语句printf("%d", a++); 后,a的值是多少?A. 4B. 5C. 6D. 无法确定答案:C4. 以下哪个函数用于动态分配内存?A. malloc()B. alloc()C. new()D. calloc()答案:A5. 在C语言中,哪个运算符用于取模(取余)?A. %B. /C. &D. |答案:A以下是判断题部分:6. C语言中的数组名可以作为指向该数组首元素的指针使用。

()答案:正确7. 在C语言中,结构体变量可以作为函数的参数传递。

()答案:正确8. 在C语言中,静态存储类别的变量在程序运行期间始终占据内存空间。

()答案:正确二、填空题9. 在C语言中,定义一个整型变量需要使用关键字______。

答案:int10. 若变量定义如下:int a = 10;,则执行语句printf("%d", a--); 后,a的值是______。

答案:911. 在C语言中,用于动态分配内存的函数是______。

答案:malloc12. 在C语言中,用于释放动态分配的内存的函数是______。

答案:free13. 在C语言中,用于清空标准输入缓冲区的函数是______。

答案:getchar()三、编程题14. 编写一个C语言程序,实现以下功能:输入一个整数,输出它的阶乘。

答案:```c#include <stdio.h>int main() {int n, i;long factorial = 1;printf("Enter an integer: ");scanf("%d", &n);if (n < 0) {printf("Factorial of a negative number doesn't exist.\n");} else {for (i = 1; i <= n; i++) {factorial = i;}printf("Factorial of %d is %ld\n", n, factorial);}return 0;}```15. 编写一个C语言程序,实现以下功能:输入一个字符串,判断它是否是回文(正读和反读都一样的字符串)。

C语言选择题题库(116道)

C语言选择题题库(116道)

C语言选择题1、用C语言编写的源文件经过编译,若没有产生编译错误,则系统将()。

——[单选题]A 生成可执行目标文件B 生成目标文件C 输出运行结果D 自动保存源文件正确答案:B2、一个C语言程序是由()——[单选题]A 一个主程序和若干子程序组成B 函数组成C 若干过程组成D 若干子程序组成正确答案:B3、C 程序的执行过程在下列说法中,▁▁▁▁▁ 是正确的。

——[单选题]A C 程序从第一个函数开始执行,直到最后一个函数结束B C 程序从第一个函数开始执行,直到主函数结束C C 程序从主函数开始执行,直到最后一个函数结束D C 程序从主函数开始执行,直到主函数结束正确答案:D4、结构化程序由三种基本结构组成,三种基本结构组成的算法——[单选题]A 可以完成任何复杂的任务B 只能完成部分复杂的任务C 只能完成符合结构化的任务D 只能完成一些简单的任务正确答案:A5、以下叙述中错误的是()——[单选题]A c语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令B c程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件C 用c语言编写的程序称为源程序,它以ASCIl代码形式存放在一个文本文件中D c语言源程序经编译后生成后缀为.obj的目标程序正确答案:A6、以下叙述中,正确的是。

——[单选题]A C语言程序总是从第一个函数开始执行B 在C语言程序中,要调用的函数必须在main()函数中定义C C语言程序总是从main()函数开始执行D C 语言程序中的main()函数必须放在程序的开始部分正确答案:C7、C 风格的注释 C 风格的注释,也称块注释或多行注释,以▁▁▁ 开始,以▁▁▁ 结束。

——[单选题]A /* 和 */B { 和 }C [ 和 ]D ( 和 )正确答案:A8、空语句仅有一个▁▁▁▁▁ 的语句称为空语句。

——[单选题]A 逗号( , )B 句号( . )C 分号( ; )D 冒号( : )正确答案:C9、c语言规定,在一个源程序中,main函数的位置()。

C语言复习题(选择题)

C语言复习题(选择题)
1.有以下函数 #include <sthio.h> #define S(x) (x)*x*2 main() {int k=5,j=2; printf("%d,",S(k+j)); printf("%d\n",S(k-j))); }程序运行输出结果是 A:98,18 B:39,11 C:39,18 D:98,11 答案:B 2.int a=2,b;b=(2*a,3,a-3)则 b 的值为(). A:2 B:-1 C:3 D:1 答案:B 3.下列叙述中正确的是 A:每个 C 程序文件中都必须要有一个 main()函数 B:在 C 程序中 main()函数的位置是固定的 C:C 程序中所有函数之间都可以相互调用,与函数所在位置无关 D:在 C 程序的函数中不能定义另一个函数 答案:D 4. C 语言规定:简单变量做实参时,它和对应形参之间的数据传递方式是(). A:地址传递 B:单向值传递 C:由实参传给形参,再由形参传回给实参 D:由用户指定的传递方式 答案:B 5.有以下程序 #include <stdio.h> int fun (int x,int y) { if (x!=y) return (x+y); else return (x); } main() { int a=4,b=5,c=6; printf("%d\n",fun(2*a,fun(b,c))); } 程序运行后的输出结果是 A:3 B:6 C:8
D:5 答案:A 29.C 语言中,定义结构体的保留字是()。 A:union B:struct C:enum D:typedef 答案:B 30.有以下程序 main() { int i; for(i=0;i<3;i++) switch(i) { case 0:printf("%d",i); case 2:printf("%d",i); default:printf("%d",i); } } 程序运行后的输出结果是 A:022111 B:21021 C:000122 D:00012 答案:C 33.若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是 A:函数实参和其对应的形参共占同一存储单元 B:形参只是形式上的存在,不占用具体存储单元 C:同名的实参和形参占同一存储单元 D:函数的形参和实参分别占用不同的存储单元 答案:D 34.有以下程序 main() { int a=666,b=888; printf("%d\n",a,b); } 程序运行后的输出结果是()。 A:错误信息 B:666 C:888 D:666,888 答案:B 35.char h,*s=&h;可将字符 H 通过指针存入变量 h 中的语句是()。 A:*s=H; B:*s='H'; C:s=H;

c语言选择题考试题库及答案

c语言选择题考试题库及答案

c语言选择题考试题库及答案一、单项选择题1. C语言中,用于定义变量的关键字是()。

A. varB. defineC. intD. void答案:C2. 下列哪个选项是C语言中的合法标识符?()A. 2variableB. variable2C. variable-2D. variable$2答案:B3. C语言中,用于表示逻辑“与”操作的运算符是()。

A. &&B. ||C. !D. &答案:A4. C语言中,用于表示逻辑“或”操作的运算符是()。

A. &&B. ||C. !D. &答案:B5. C语言中,用于表示逻辑“非”操作的运算符是()。

A. &&C. !D. &答案:C6. C语言中,用于表示“等于”关系的运算符是()。

A. ==B. =C. !=D. <=答案:A7. C语言中,用于表示“不等于”关系的运算符是()。

A. ==B. =C. !=答案:C8. C语言中,用于表示“小于等于”关系的运算符是()。

A. ==B. =C. <=D. >=答案:C9. C语言中,用于表示“大于等于”关系的运算符是()。

A. ==B. =C. <=D. >=答案:D10. C语言中,用于表示“取模”操作的运算符是()。

A. %B. /C. *D. -答案:A11. C语言中,用于表示“整除”操作的运算符是()。

A. %B. /C. *D. -答案:B12. C语言中,用于表示“乘法”操作的运算符是()。

A. %C. *D. -答案:C13. C语言中,用于表示“加法”操作的运算符是()。

A. +B. -C. *D. /答案:A14. C语言中,用于表示“减法”操作的运算符是()。

A. +B. -C. *答案:B15. C语言中,用于表示“左移”操作的运算符是()。

A. <<B. >>C. <=D. >=答案:A16. C语言中,用于表示“右移”操作的运算符是()。

C语言选择题(1-4章期末复习)

C语言选择题(1-4章期末复习)

第1章1.以下叙述不正确的是()。

A、C程序的基本组成单位是函数B、在C程序中,注释说明只能位于一条语句的后面C、一个C源程序必须包含一个main函数D、一个C源程序可由一个或多个函数组成2.C语言的注释定界符是()。

A、\* *\B、{ }C、[ ]D、/* */3.C语言规定,在一个源程序中,main函数的位置()。

A、必须在最开始B、必须在系统调用的库函数的后面C、必须在最后D、可以任意4.一个C程序的执行是从()。

A、本程序文件的第一个函数开始,到本程序main函数结束B、本程序的main函数开始,到main函数结束C、本程序的main函数开始,到本程序文件的最后一个函数结束D、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束5.以下叙述中正确的是()。

A、C程序中注释部分可以出现在程序中任意合适的地方B、分号是C语句之间的分隔符,不是语句的一部分C、花括号“{“和”}”只能作为函数体的定界符D、构成C程序的基本单位是函数,所有函数名都可以由用户命名6.以下叙述正确的是()。

A、在对一个C程序进行编译的过程中,可发现注释中的拼写错误B、C语言本身没有输入输出语句C、在C程序中,main函数必须位于程序的最前面D、C程序的每行中只能写一条语句7.C语言源程序的基本单位是()。

A、子程序B、过程C、函数D、标识符8.下列标识符中,不合法的C语言用户自定义标识符是()。

A、printfB、sinC、enumD、_9.下列四个选项中,均是C语言关键字的选项是()。

A、if struct typeB、switch typedef continueC、signed union scanfD、auto enum include10.以下叙述中错误的是()A、用户所定义的标识符应尽量做到"见名知意"B、用户所定义的标识符允许使用关键字C、用户定义的标识符中,大、小写字母代表不同标识D、用户所定义的标识符必须以字母或下划线开头11.下列字符序列中,可用作C标识符的一组字符序列是()。

c语言复习试题及答案

c语言复习试题及答案

c语言复习试题及答案C语言复习试题及答案一、选择题1. C语言中,一个整型变量的取值范围是:A. -128 到 127B. -32768 到 32767C. -2147483648 到 2147483647D. 取决于编译器答案:D2. 下列哪个关键字用于定义C语言的结构体?A. structB. defineC. unionD. enum答案:A3. C语言中,字符串在内存中是以什么方式存储的?A. 字符串名B. 字符串长度C. 字符串本身D. 字符串结束标志 '\0'答案:D4. 在C语言中,函数返回值的类型由什么决定?A. return 语句B. 函数名C. 函数定义时指定的类型D. 函数参数的类型答案:C5. 下列哪个操作符不能用于位操作?A. &B. |C. ^D. ++答案:D二、填空题6. C语言中,预处理器指令 `#include` 的作用是_______。

答案:引入其他文件7. `int main()` 函数中的 `void` 表示该函数_______。

答案:不返回任何值8. 在C语言中,数组的索引是从_______开始的。

答案:09. `printf` 函数的返回类型是_______。

答案:int10. 表达式 `3.0 / 0` 在C语言中会导致_______。

答案:运行时错误三、简答题11. 请简述C语言中指针的概念及其用途。

答案:指针是一种变量,它存储的是另一个变量的内存地址。

指针在C语言中用于直接访问内存、动态内存分配、数组操作、函数参数传递等。

12. 解释C语言中数组和指针之间的关系。

答案:在C语言中,数组名可以作为指针使用,它指向数组的第一个元素的地址。

通过指针可以遍历数组,也可以通过指针修改数组元素的值。

四、编程题13. 编写一个C语言程序,实现对整数数组的排序。

```c#include <stdio.h>void sort(int arr[], int n) {int i, j, temp, min_idx;for (i = 0; i < n - 1; i++) {min_idx = i;for (j = i + 1; j < n; j++) {if (arr[j] < arr[min_idx]) {min_idx = j;}}if (min_idx != i) {temp = arr[i];arr[i] = arr[min_idx];arr[min_idx] = temp;}}}int main() {int arr[] = {64, 34, 25, 12, 22, 11, 90}; int n = sizeof(arr) / sizeof(arr[0]);sort(arr, n);printf("Sorted array: \n");for (int i = 0; i < n; i++) {printf("%d ", arr[i]);}printf("\n");return 0;}```14. 编写一个C语言程序,实现字符串的反转。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

选择题复习1.表达式“(a=4*5, b=a*2), b-a, a+=2”的值是(C)。

A.2 B.20 C.22 D.422.以下是一个自定义函数的头部,其中正确的是(C )。

A.int fun(int a[ ], b) B.int fun(int a[ ], int a)C.int fun(int*a, int b) D.int fun(char a[ ][ ], int b)3.以下数组声明语句中正确的是(D )。

A.int n, a[n]; B.int a[ ];C.int a[2][3]={{l},{2},{3}}; D.int a[ ][3]={{l},{2},{3}};4.已知在某C语言编译系统中表达式sizeof(int)的值是2,如果希望将常量-70 000正确地保存在一个变量a中,该变量声明语句应当是(B )。

A.int a; B.long int a; C.unsigned int a; D.unsigned int a;5.以下声明语句中,用于声明一个行指针变量的是(C )。

A.int *p(int); B.int *p; C.int (*p)[3]; D.int (*p)(int);6.在以下程序中,需要在fun函数中声明一个int型的变量,以下选项中(A )不能用做该变量的名字。

#include <math.h>int y;main( ){ int a=1;fun(a);}int fun(int x){_______; /*int型变量声明语句位置*/… /*若干执行语句*/}A.x B.y C.fabs D.fun7.如有语句“int x,y=0,z,*p[3]; p[0]=&x; p[1]=&y; p[2]=&z;”,以下表达式中有语法错误的是(B )。

A.y++ B.p++ C.*++p[0] D.(*p[0])++8.设有声明语句“int a[3][3]={1,2,3,4,5,6,7,8,9};”,以下语句中除(D )外均能输出a[1][2]的值。

A.printf("%d ",*(*(a+1)+2)) B.printf("%d ",*(&a[2][0]-1));C.printf("%d ",*(a[1]+2)); D.printf("%d ",*(a+1)[2]);9.已知有声明语句int x=8,则下列表达式中,值为2的是(B )。

A.x+=x-=x B.x% = x-2 C.x>8?x=0:x++ D.x/= x + x10.以下关于函数的叙述中正确的是(D )。

A.在函数体中可以直接引用另一个函数中声明为static类别的局部变量的值B.在函数体中至少必须有一个return语句C.在函数体中可以定义另一个函数D.在函数体中可以调用函数自身11.若有声明语句“int a[10], b[3][3];”,则以下对数组元素赋值的操作中,不会出现越界访问的是(D )。

A.a[-1]=0 B.a[10]=0 C.b[3][0]=0 D.b[0][2]=012.若有声明语句“char ch=’a’, *pc=&ch;”,以下语句中有语法错误的是(C )。

A.(*pc)++; B.ch+= -‘a’ + ‘A’;C.toupper(ch)=ch; D.ch++;13.已知有声明语句“int a[5]={1, 2, 3, 4, 5}, *p, i;”,以下语句中(C )不能正确输出a数组全部元素的值。

A.for(p=a, i=0;i<5;i++)printf("%d",*(p+i));B.for(p=a;p<a+5;p++)printf("%d", *p);C.for(p=a, i=0;p<a+5;p++, i++)printf("%d", p[i]);D.for(p=a;p<a+5;p++)printf("%d", p[0]);14.已知某程序如下:float p=1.5;#define p 2.5main( ){printf("%f", p);}则main函数中标识符p代表的操作数是(D )。

A.float型变量B.double型变量C.float型常量D.double型常量15.已有声明“int S[2][3]”,以下选项中(A )正确地引用了数组S中的基本元素。

A.S[1>2][!1] B.S[2][0] C.S[1] D.S16.逻辑“异或”运算可描述为“a xor b”,其中a和b为参加运算的两个操作数,运算结果为当且仅当a、b两个操作数中只有一个为真时才为真,其他情况下均为假。

以下表达式中(D )可以正确表示逻辑“异或”运算。

A.a || b B.a && b C.(a&&b)&&!(a || b) D.(a || b)&&!(a&&b) 17.若有声明“int a[5],*b=a,(*c)[3],*d[3];”,则在以下表达式中有语法错误的是(C )。

A.a[0]=0 B.b[0]=0 C.c[0]=0 D.d[0]=018.若有声明:int k, a, b;unsigned long y=5;double x=1.23;则以下表达式中正确的是(D )。

A.x%(-5) B.x=y[6] C.k=(a=1,b=2,&a + &b) D.a+=a- = (b=2) * (a = 3) 19.一个用C语言编写的源程序中,(A )是必不可少的。

A.取名为main的函数定义B.#include<stdio.h>C.变量声明D.注释20.以下声明中正确的是(D )。

A.int n=2, a[n]={10}; B.int n=10, *p[2]=&n;C.int n=10, a[2]={n}; D.int a[2][2]={10}, (*p)[2]=a+1;21、若有函数fun的定义为void fun(…){static int a=1;…}则下列叙述中不正确的是(B )。

A.在每次调用fun函数时,变量a的值是上次调用结束时a的值B.在fun函数之外,可以用变量名a直接引用a的值C.在其他函数中,可以出现声明double a=2.5;D.fun函数的形式参数不能取名为a22.以下单目运算符均只需要一个操作数,其中要求操作数的类型只能是指针型的是(D )。

A.& B.++ C.! D.*23.已知有声明“int good=l; ”,若要使得表达式“p="good"+good”无语法错误(包括警告错误),p应当声明为(B )。

A.char p; B.char*p; C.int p; D.int *p;24.以下全局变量声明中正确的是(D )。

A.auto int i=1; B.float a=1, b=0.5, c=a+b;C.char for=1; D.static char ch;25.若已有声明“double a[2][3]={1, 2, 3, 4, 5, 6};”,则下列表达式中不能正确引用a[1][1]值的是(C )。

A.*(a[0]+4)B.*(a[1]+1)C.*(*(a+3)+1)D.*(*a+4)26、已有声明“int a[5];”,以下表达式中不能正确取得a[1]指针的是(B )。

A.&a[1]B.++aC.&a[0]+1D.a+l27.以下关于语句的说法中正确的是(A )。

A.do-while语句的循环体至少会被执行1次B.while语句的循环体至少会被执行1次C.for语句的循环体至少会被执行1次D.在C语言中只能用do、do-while或for语句实现循环结构28.已知函数f的定义如下:void f(void){printf("That’s great! ");}则调用f函数的正确形式是(B )。

A.f;B.f();C.f(void);D.f(1);29.以下程序在编译时在第三行报错“Redeclaration of ‘a’in function d”,如果决定修改该行声明中出现的局部变量a的名字,则下列选项中不能用来替换变量名a的是(A )。

int b;void d(int a){ int f; double a=1;printf("%d",a);}main( ){int e=1;d(e);}A.f B.e C.d D.b30、以下语句中不包含关键字的是(A )。

A.x=sqrt(2);B.while(x!=0)x--;C.if(x<0)x=-x;D.return x;31.在main函数体内部和外部均允许出现的实体是(B )。

A.预处理命令B.语句C.另一函数的定义D.函数形式参数声明32、已知有声明int x=2:,以下表达式中值不等于8的是(D )。

A.x+=2,x*2B.x+=x*=XC.(x+7)/2*((x+1)%2+1)D.x*7.2/x+133、执行以下程序时,#include<stdio.h>main(){ int a; float b;scanf("%3d%f",&a,&b);printf("%d\t%f",ab);}若要求变量a和b分别从键盘获得输入值45和678.0,则以下四种输入数据中( 代表“空格”键,<CR>代表“回车”键),不能达到该要求的输入数据是(C )。

A.45 678<CR>B.45<CR>678<CR>C.45,678<CR>D.045678<CR>34.下列程序段中,能将变量x、y中值较大的数保存到变量a、值较小的数保存到变量b 的程序段是(C )。

A.if(x>y)a=x;b=y;else a=y;b=x;B.if(x>y){a=x;b=y;}else a=y;b=x;C.if(x>y){a=x;b=y;}else{a=y;b=x;}D.if(x>y){a=x;b=y;}else(x<y){a=y;b=x;}35.已知函数fun的定义如下:void fun(int x[], int y){ int k;for(k=0;k<y;k++)x[k]+=y;}若main函数中有声明int a[10]={10}及调用fun函数的语句,则正确的fun函数调用形式是(C )。

相关文档
最新文档