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语言题库(带详解答案)

(完整版)C语言题库(带详解答案)

(完整版)C语⾔题库(带详解答案)⼀单项选择题1.(A)是构成C语⾔程序的基本单位。

A、函数B、过程C、⼦程序D、⼦例程2.C语⾔程序从 C开始执⾏。

A) 程序中第⼀条可执⾏语句 B) 程序中第⼀个函数C) 程序中的main函数 D) 包含⽂件中的第⼀个函数3、以下说法中正确的是(C)。

A、C语⾔程序总是从第⼀个定义的函数开始执⾏B、在C语⾔程序中,要调⽤的函数必须在main( )函数中定义C、C语⾔程序总是从main( )函数开始执⾏D、C语⾔程序中的main( )函数必须放在程序的开始部分4.下列关于C语⾔的说法错误的是(B)。

A) C程序的⼯作过程是编辑、编译、连接、运⾏B) C语⾔不区分⼤⼩写。

C) C程序的三种基本结构是顺序、选择、循环D) C程序从main函数开始执⾏5.下列正确的标识符是(C)。

A.-a1B.a[i]C.a2_iD.int t5~8题为相同类型题考点:标识符的命名规则(1)只能由字母、数字、下划线构成(2)数字不能作为标识符的开头(3)关键字不能作为标识符选项A中的“-” ,选项B中“[”与“]”不满⾜(1);选项D中的int为关键字,不满⾜(3)6.下列C语⾔⽤户标识符中合法的是( B)。

A)3ax B)x C)case D)-e2 E)union选项A中的标识符以数字开头不满⾜(2);选项C,E均为为关键字,不满⾜(3);选项D中的“-”不满⾜(1);7.下列四组选项中,正确的C语⾔标识符是(C)。

A) %x B) a+b C) a123 D) 123选项A中的“%” ,选项B中“+”不满⾜(1);选项D中的标识符以数字开头不满⾜(2)8、下列四组字符串中都可以⽤作C语⾔程序中的标识符的是(A)。

A、print _3d db8 aBcB、I\am one_half start$it 3paiC、str_1 Cpp pow whileD、Pxq My->book line# His.age选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满⾜(1);选项C中的while 为关键字,不满⾜(3)9.C语⾔中的简单数据类型包括(D)。

(完整版)C语言试卷及答案

(完整版)C语言试卷及答案

(完整版)C语言试卷及答案一、选择题(每题2分,共40分)1、C语言源程序的基本单位是( )A.程序行B.语句C.函数D.字符2、C语言规定:在一个源程序中,main函数的位置()。

A.必须在最开始B.必须在系统调用的库函数的后面C.可以任意D.必须在最后3、在下列字符列中,合法的标识符是( )A.p12&.aB.stud_100C. water$12D.88sum4、在C语言中,要求运算的数必须是整数的运算符是()A./B.!C.%D.= =5、设有语句 int a =3;则执行了语句a + = a - = a*a;后,变量a 的值是()A、3B、0C、9D、-126、设a=5,b=6,c=7,d=8,m=2,n=2,执行(m=a > b)&&(n=c>d)后n的值为()A、1B、2C、3D、47、执行下列程序时输入:1234567,程序的运行结果是()main(){int x,y;scanf(“%2d%*2c%1d”,&x,&y);printf(“%d\n”,x+y);}A.17B.46C.15D.98、下述程序的输出结果是() #includevoid main(){int x=-1,y=4;int k;k=++x<=0&&!(y--<=0);printf("%d,%d,%d",k,x,y);}A.0,0,3B.0,1,2,C.1,0,3,D.1,1,29、为了避免嵌套的if-else语句的二义性,C语言规定else总是与()组成配对关系。

A.缩排位置相同的ifB.在其之前未配对的ifC.在其之前未配对的最近的ifD.同一行上的if10、两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是()main(){int x;scanf(“%d“,&x);if(x++>5)printf(“%d”,x);else printf(“%d\n”,x--);}A.7和5B.6和3C.7和4D.6和411、若变量c为char类型,能正确判断出c为小写字母的表达式是( )A. 'a'<=c<= 'z'B. (c>= 'a')||(c<= 'z')C. ('a'<=c)and ('z'>=c)D. (c>= 'a')&&(c<= 'z')12、已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是。

(完整版)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.以下叙述正确的是_____。

A) 在C程序中,main函数必须位于程序的最前面。

B) C语言本身没有输入输出语句。

C) C程序的每行只能写一条语句。

D) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误。

2.下面四个选项中,均是不合法的用户标识符的选项是。

A) A B) float C) b-a D) _123P_0 1a0 goto tempdo _A int INT3、下列四个选项中都是合法的转义字符的A) ‘\’’‘\\’‘\n’B) ‘\’‘\017’‘\”’C) ‘\018’‘\f’‘xab’D) ‘\\0’‘\101’‘x1f’4、设所有变量均为整型,则表达式z=(a=2,b=5,b++,a+b)的值是:A)7 B)8 C)6 D)25、若有代数式,则不正确的C语言表达式是:A) a/b/c*e*3 B) 3*a*e/b/cC) 3*a*e/b*c D) a*e/c/b*36、若希望当A的值为奇数时,表达式的值为”真”, A的值为偶数时,表达式的值为”假”。

则以下不能满足要求的表达式是_________。

A) A%2==1 B) !(A%2==0)C) !(A%2) D) A%27、以下程序的运行结果是 :main(){int m=6;if(m++> 6) printf(" %d\n",m);e1se printf("%d\n",--m );}A)4 B)5 C) 7 D) 68、当a=1,b=3,c=5,d=4,执行完下面一段程序后x 的值是 :if(a<b)if(c<d) x=1;elseif(a<c)if(b<d) x=2;else x= 3;else x=6;else x=7;A)1 B)2 C)3 D)69、阅读以下程序,当输入数据的形式为25,13,10<CR>正确的输出结果为 main(){int x,y,zscanf("%d%d%d",&x,&y,&z );printf(“x+y+z=%d\n” ,x+y+z);。

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、Print f("%c\n",class[2].name[l]);
D、print f("%c\n",class[2].name[0]);
标准答案:D
【5】设单精度变量f,g的值均为5.0,则下面的表达式中,使f为10.0的表达式是。
A、f+=g
B、f-=g+5
C、f*=g-5
D、f/=g*5
标准答案:A
if(ch=='/')w=a/b;
B、B)if(ch=='*')w=a*b;
else if(ch=='/')w=a/b;
if(ch=='+')w=a+b;
else if(ch=='-')w=a-b;
C、if(ch=='+')w=a+b;
else if(ch=='-')w=a-b;
if(ch=='*')w=a*b;
A、15
B、10
C、25
D、20
标准答案:A
【15】程序段的基本结构中,不包含()。
A、函数结构
B、循环结构
C、顺序结构
D、分支结构
标准答案:A
【1】执行语句scanf("%d,%d",&m,&n);使m和n的值分别为1和2,正确输入是。
A、1
B、2
C、1,2
D、12
标准答案:c
【3】若用数组名作为函数调用的实参,传递给形参的是()。
#include<stdio.h>
main()
{int i=1;

c语言考试试题

c语言考试试题

c语言考试试题一、选择题1. C语言中,用于表示整数常量的是()。

A. 123.45B. 0x1A3C. 0177D. 1e62. 下列哪个关键字用于定义一个循环,该循环会一直执行直到给定条件不满足为止?()。

A. doB. whileC. forD. if3. 在C语言中,用于动态分配内存空间的函数是()。

A. mallocB. freeC. callocD. realloc4. 下列关于指针的说法,错误的是()。

A. 指针是一种特殊类型的变量,其值为另一个变量的地址。

B. 指针可以被解引用来获取其所指向的内存中存储的值。

C. 指针的算术运算是合法的。

D. 指针不能被赋值为非整数值。

5. 在C语言中,用于字符串连接的函数是()。

A. strcatB. strcmpC. strcpyD. strlen二、填空题1. 在C语言中,一个基本的整型变量(int)通常占用的内存大小是______字节。

2. 如果一个函数需要返回两个值,它必须返回一个______类型的结构体。

3. 在C语言中,使用关键字______可以定义一个不占用存储空间的临时变量。

4. 为了在C语言程序中引入标准输入输出库函数,需要在程序顶部包含的头文件是______。

5. 一个C语言程序由______组成,它是程序执行的起点。

三、判断题1. 在C语言中,所有的函数都必须有一个返回类型。

()2. 任何在main函数中定义的局部变量都可以在main函数之外被访问。

()3. 在C语言中,数组的大小可以在运行时确定。

()4. 字符串在C语言中是一个以空字符'\0'结尾的字符数组。

()5. 通过使用const关键字,可以声明一个只读的变量。

()四、简答题1. 请简述C语言中的指针和数组的关系。

2. 解释C语言中的结构体,并给出一个使用结构体的例子。

3. 什么是递归函数?请举例说明。

4. 描述动态内存分配的过程,并说明其优缺点。

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

2.若有以下定义,则数值不为3的表达式是int x[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, *p1;(A) x[3](B) p1 = x + 3, *p1++(C) p1 = x + 2, *(p1++)(D) p1 = x + 2, *++p14.若有说明: char *language[] = {"FORTRAN", "BASIC", "PASCAL", "JAVA", "C"};则表达式*language[1] > *language[3] 比较的是(A) 字符F和字符P(B) 字符串BASIC和字符串JAVA(C) 字符B和字符J(D) 字符串FORTRAN和字符串PASCAL设有说明int (* ptr) [M]; 其中ptr(A) M个指向整型变量的指针(B) 指向M个整型变量的函数指针(C) 一个指向具有M个整型元素的一维数组的指针(D) 具有M个指针元素的一维指针数组,每个元素都只能指向整型量8.*以下定义语句中正确的是。

A) char a="A", b="B" ;B) char *p="abcd", *q=p+1;C) int a=b=0;D) float *a, b=&a;10.(A) int *b[] = {1, 3, 5, 7, 9};(B) int a[5], *num[5] = {&a[0], &a[1], &a[2], &a[3], &a[4]};(C) int a[] = {1, 3, 5, 7, 9}; int *num[5] = {a[0], a[1], a[2], a[3], a[4]};(D) int a[3][4], (*num)[4]; num[1] = &a[1][3];(B) scanf(“%d”, p);(C) printf(“%d”, a);(D) printf(“%d”, p);12.设有定义int a[]={1,3,5,7,9},*p=a;结果为7的表达式是。

A) *(p+3)B) *(p+4)C) *p+3D) *p+414.以下4个变量定义中,定义p为二级指针的是。

A) int **p;B) int (*p)( );C) int *p[10];D) int (*p)[10];16.若有说明: char *language[] = {"FORTRAN", "BASIC", "PASCAL", "JAVA", "C"};则以(A) language+2 表示字符串"PASCAL"的首地址(B) *language[2]的值是字母P(C) language是一个字符型指针数组,它包含5个元素,每个元素都是一个指向字符串变量的指针(D) language包含5个相同长度的数组17.A阅读程序,选择程序的运行结果:#include <stdio.h>main(){int x;X = try(5);printf("%d\n",x);}try(int n){if(n>0)return ( n*try(n-2));elsereturn (1);}A.15B.120C.1D.前面的答案均不正确18.c(A)主函数必须在其他函数之前,函数内可以嵌套定义函数(B)主函数可以在其他函数之后,函数内不可以嵌套定义函数(C)主函数必须在其他函数之前,函数内不可以嵌套定义函数(D)主函数必须在其他函数之后,函数内可以嵌套定义函20.若用数组名作为函数调用的实参,(A) 数组的首地址(B) 数组第一个元素的值(C) 数组中全部元素的值(D) 数组元素的个数22.以下正确的函数声明形式是(A) double fun(int x, int y)(B) double fun(int x; int y)(C) double fun(int x, int y);(D) double fun(int x, y);24.设有说明int n; char str[80];与函数调用:n=hex2dec(str); 则函数hex2dec正确的函数说明应该是:。

A) int hex2dec(char str[]);B) void hex2dec(char str[]);C) int hex2dec(char str);D) void hex2dec(char str);26.设有下列变量说明与函数说明,则合法的函数调用语句是。

int func( int a[], int n );int a[10], n, x;A) func( a, n ) = x;B) x = func( a, n );C) x = func( a[], n );D) x = func( a[10], n );27.*主调函数中要实现交换两个整型变量的值,应该调用下列4个函数中的(C)。

A) void fun_a (int x, int y){ int *p;*p=x; x=y; y=*p;}B) void fun_b (int *x, int *y){ int *p;*x=*y; *y=*x;}C) void fun_c (int *x, int *y){ *x=*x+*y;*y=*x-*y;*x=*x-*y;}D) void fun_d ( int x, int y){ int p;p=x; x=y; y=p;}28.要打开一个已存在的非空文件“file”用于修改,正确的语句是A.fp=fopen("file","r");B.fp=fopen("file","a+");C.fp=fopen("file","w");D.fp=fopen("file","r+");30.要打开一个已存在的非空文件“file.dat”A. fp=fopen(“file.dat”,”r”);B. fp=fopen(“file.dat”,”a+”);C. fp=fopen(“file.dat”,”w”);D. fp=fopen(“file.dat”,”r+”);32.下列语句中,将c定义为文件型指针的是A. FILE c;B. FILE *c;C. file c;D. file *c;34.需要以写模式打开一个名为myfile.txt的文本文件,下列打开文件正确的选项是。

A) fopen("myfile.txt","r");B) fopen("myfile.txt","w");C) fopen("myfile.txt","rb");D) fopen("myfile.txt","wb");36.若要用fopen函数打开一个新的二进制文件,该文件要既能读也能写,则文件方式字符串应该是A. “ab+”B. “wb+”C. “rb+”D. “w+”38.*设有定义语句:char c1=92, c2=92; , 则以下表达式中值为零的是。

A) c1^c2B) c1&c2C) ~c2D) c1|c240.设int n=-1; 则n在内存中的16位编码是。

A) 1111 1111 1111 1111B) 1000 0000 0000 0001C) 1111 1111 1111 1110D) 0000 0000 0000 000042.在位运算中,操作数每右移一位,其结果相当于。

A) 操作数乘以2B) 操作数除以2C) 操作数乘以4D) 操作数除以444.设有定义char a[]="abcDEF",*p=a+3;则puts(p)的输出结果是。

A) abcDEFB) bcDEFC) cDEFD) DEFD) *p[1]+346.*以下程序执行后输出结果是。

main(){ char *s[]={"one", "two", "three"},*p;p=s[1];printf("%c,%s\n", *(p+1), s[0]);}A) n,twoB) t,oneC) w,oneD) o,two48.设建立了一个链表结构,head指向链表头结点,p指向链表中某个结点,q是一个指向结点的指针,以下组语句的功能是输出p下一结点(数据为E的结点)的数据项。

A) q = p; printf("%c",q->data);B) q = p->next; printf("%c",q->data);C) q = p; printf("%c",q);D) q = p->next; printf("%c",q);data next┌─┬─┐┌─┬─┐┌─┬─┐head →│A││→│E ││→│Y ││→……└─┴─┘└─┴─┘└─┴─┘↑p49.*设有以下语句:struct st{ int n;struct st *next;}a[3]={5, &a[1], 7 , &a[2], 9, '\0'}, *p=a;50.设有以下结构体定义及初始化,表达式x.fz*y.fm的结果是。

struct fs { int fz, fm; };struct fs x={2,3}, y={5,7};A) 14B) 10C) 21D) 1551.设有以下结构体定义及初始化,表达式p->score的结果是(B)。

struct node{int num;float score;} stu[2]={101,91.5,102,92.5},*p=stu;A) 101B) 91.5C) 102D) 92.552.设有以下结构体定义及初始化,则表达式结果为'i'的是。

struct node{int num;char name[20];} stu[2]={101, "Wang",102, "Li"},*p=stu;A) stu[1].name[1]B) p->name[1]C) stu[0].name[1]D) p->name[1]+153.若有以下定义,输出字母M的语句是(D)。

相关文档
最新文档