搜档网
当前位置:搜档网 › C语言复习题54894

C语言复习题54894

C语言复习题54894
C语言复习题54894

C语言复习题

一、选择题:

1.以下不是C语言的特点的是( B )

A.C语言简洁、紧凑 B.能够编制出功能复杂的程序

C. C语言可以直接对硬件进行操作 D.C语言移植性好

2. 以下不正确的C语言标识符是( D )。

A.ABC B.abc C.a_bc D.ab.c

3.一个c程序的执行是从( A ).

A.main( )函数开始,直到main( )函数结束

B.第一个函数开始,直到最后一个函数结束

C.第一个语句开始,直到最后一个语句结束

D.main( )函数开始,直到最后一个函数结束

4.以下不正确的语句(设有int p,q)是( D )。

A.P*=3; B.p/=q; C.p十=3; D.p&&=q

5.下列四组选项中,均不是C语言关键字的选项是( A ).

A.define B.getc C.include D.while

if char sanf go

type printf case pow

6.下面四个选项中,均是合法整形常量的选项是( A ).

A.160

B.-0xcdf

C.-01

D.-0x48a

-0xffff 01a 986,012 2e5

011 0xe 0668 0x

7. 下面四个选项中,均是不合法浮点数的选项是( B ).

A.160.

B.123

C.-.18

D.-e3

0.12 2e4.2 123e4 0.234

e3 .e5 0.0 1e3

8. 若有代数式3ae/bc,则不正确的C语言表达式是( C )

A.a/b/c*e*3

B.3*a*e/b/c

C.3*a*e/b*c

D.a*e/c/b*3

9. 若以下变量均是整形,且num=sum=7;则计算表达式sUM=num++,sUM++,++num后sum 的值为(A ).

A.7

B.8

C.9

D.10

10.若有定义:int a=7; float x=205 ,y=4.7; 则表达式x+a%3*(int)(x+y)%2/4的值是( A )。

11. s izeof(float)是( B )。

A.一个双精度型表达式

B. 一个整型表达式

C.一种函数调用

D. 一个不合法的表达式

12. 设int n=3;则n十十的结果是( B )。

A.2

B.3

C.4

D.5

13. 设有说明: char w; int x; float y; double z; 则表达式w*x+z-y值的数据类型为( D )。

A.float

B.char

C.int

D.double.

14. 若x,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是( D ).

A. scanf(“%d%d1x,%1e”,&x,&y,&z);

B. scanf(“%2d*%d%1f”,&x,&y,&z);

C. scanf(“%x%*d%o”,&x,&Y);

D. scanf(“%x%o%6.2f”, &x,&y,&z);

15. 以下说法正确的是( D ).

A. 输入项可以为一个实型常量,如scanf(“%f”,3.5);

B. 只有格式控制,没有输入项,也能进行正确输入,如scanf(“a=%d,b=%d”);

C. 当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(“%4.2f”,&f);

D. 当输入数据时,必须指明变量的地址,如scanf(“%f”,&f);

16. 以下程序的执行结果是( A )。

#include

main()

{

int sum,pad;

sum=pad=5;

pad=sum++;

pad++;

++pad;

printf("%d\n",pad);

}

A.7

B.6

C.5

D.4

17. 巳知字母A的ASCII码是65,以下程序的执行结果是( D )。

#include

main()

{

char c1='A',C2='Y';

printf("%d,%d\n",c1,c2);

A.A,Y

B.65,65

C.65,90

D.65,89

18. 为了避免嵌套的if-else语句的二义性,c语言规定else总是与( C )组成配对关系。

A.缩排位置相同的if

B.在其之前末配对的if

C.在其之前未配对的最近的if

D.同一行上的if

19. 逻辑运算符两侧运算对象的数据类型( D ).

A.能是0或1

B.只能是0或非0正数

C.只能是整型或字符型数据

D.可以是任何类型的数据

20. 设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是( D ).

A.’x’&&’y’

B.x<=y

C. x||y+z&&y-z

D.!((x<y)&&!z ||1)

21. 若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是( C ).

A.A%2==1

B.!(A%2==0)

C.!(A%2)

D.A%2

22. 以下不正确的if语句形式是( C ).

A.if(x>y&&x!=y);

B.if(x==y)x十=y;

C.if(x ! =y)scanf(“%d”,&x) e1se scanf(”%d,&y);

D.if(x<y){x十十;y十十;}

23. 以下if语句语法正确的是( B ).

A.if(x>0)

printf(“%f“,x)

else printf(“%f”,-x);

B.if(x>0)

{x=x+y;printf(“%f“,x);}

else printf(“%f”,-x)

C.if(x>0)

{x=x+y;printf(“%f“,x);}

else printf(“%f”,-x)

D.if(x>0)

{x=x+y;printf(“%f“,x);}

else printf(“%f”,-x)

else printf(“%f”,-x);

24. 阅读以下程序

main()

{int a=5,b=0,c=0;

if(a=b+c) printf(“***\n”);

else printf(“$$$\n”);

}

以上程序 ( D ).

A.语法有错不能通过编译

B.可以通过编译但不能通过连接

C.输出***

D.输出$$$

25. 以下程序运行结果是( C).

main()

{int a=100,x=10,y=20,ok1=5,ok2=0;

if (x

if (y!=10)

If(!ok1)

a=1;

else

if(ok2) a=10;

a=-1;

printf(“%d\n”,a);

}

c语言模拟测试

1、如果函数不要求带回值,可用void来定义函数返回值为空 2、将数组a的首地址赋给指针变量p的语句是p=a; 3、c语言表达式!(4>=6)&&(3<=7)的值是1 4、Int a=1,b=2,c=3;执行语句a=b=c;后a的值是3 5、c语言的三种基本结构是顺序结构、选择结构、循环结构 6、c语言中,数组元素的下标下限为0 7、若有以下数组a,数组元素:a[0]~a[9],其值为9 4 12 8 2 10 7 5 1 3 数值最大的元素下标值是2 8、结构体是不同数据类型的数据集合,作为数据类型,必须先说明结构体类型,再说明结构体变量 9、若s是int型变量,且s=6,则s%2+(s+1)%2值为1 10、设i,j,k均为int型变量,则执行完下面的for循环后,k的值为10 for(i=0,j=10,i<=j;i++,j--)k=i+j; 11、已知i=5,语句a=(i>5)?0:1;执行后整型变量a的值为1 12、字符串的结束标志是’\0’ 13、当a=1,b=2,c=3时,执行以下程序段if(a>c)b=a;a=c;c=b;后a=3 14、执行下列语句char s[3]=”ab”,*p;p=s;后,*(p+1)的值是b 15、定义int a[2][3];表示数组a中元素的个数是6 16、一个c源程序中至少包括一个main 函数 17、程序段int k=10;while(k=0) k=k-1循环体语句执行0次 18、程序#include”stdio.h”main(){int a;for(a=0;a<10;a++);printf(“%d”,a);}输出结果10 19、已知i=5,写出语句i*i+1;执行后整型变量i的值为30 20、Static int a[3][3]={1,2,3},{4,5,6},{7,8,9}};其中a[1][2]的值为6 21、#define和printf都不是c语句Y 22、共同体变量所占的内存长度等于最长的成员长度Y 23、若a=3,b=2,c=1则关系表达式”(a>b)==c”的值为真Y 24、Char c[]=”Very Good”;是一个合法的为字符串数组赋值的语句Y 25、变量根据其作用域的范围可以分为局部变量和全局变量Y 26、c语言中”%”运算符的运算对象必须是整型Y 27、while和do...while循环不论什么条件下结果都是相同的N 28、如果函数值的类型和return语句中的表达式值不一致,则以函数类型为准Y 29、参加位运算的数据可以是任何类型的数据N 30、字符处理函数strcpy(str1,str2)的功能是把字符串1接到字符串2的后面N 31、以下c语言常量中错误的是B A OxFF B 1.2e0.5 C 2L D‘、72’ 32、编译时系统提示错误,不能正确赋字符串的是C A char s[10]=”abcdefg”; B char t[]=”abcdefg”,*s=t; C char s[10];s=”abcdefg”; D char s[10];strcpy(s,”abcdefg”); 33、变量的指针是指该变量的地址 34、系统标准输入文件指键盘 35、定义共用体的关键字是union 36、优先级最高的运算符是C A*= B>= C(类型) D+ 37、不能作为合法的c用户定义标识符的是D AFor BPrintf CWORD Dsizeof 38、调用函数时实参是一个数组名,则向函数传送的是数组的首地址 39、定义int*p[3],则定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针 40、以下不正确的定义语句是 B Adouble x[5]={2.0,4.0,6.0,8.0,1.0}; Bint y[5]={0,1,3,5,7,9}; Cchar c1[]={‘1’,’2’,’3’,’4’,’5’}; Dchar c2[]={‘\x10’,’\xa’,’\x8’}; 41、凡是函数中未指定存储类别的局部变量其隐含的存储类别为自动(auto) 42、当定义一个结构体变量时系统分配给它的内存是各成员所需内存量的总和 43、以下数组定义中不正确的是D Aint a[2][3]; B int b[][3]={0,1,2,3}; Cint c[100][100]={0}; Dint d[3][]={{1,2},{1,2,3},{1,2,3,4}}; 44、P,p1为指针变量,a为数组名,j为整型变量,不正确的是D Ap=&j,p=p1; Bp=a; Cp=&a[j]; Dp=10; 45、合法的用户标识为B Along B_2Test C3Dmax DA.dat 46、不正确的字符串常量是A A’abc’ B”12’12” C”0” D”“ 47、在c语言程序中函数的定义不可以嵌套,但函数的调用可以嵌套 48、先用语句定义字符型变量c,然后将字符a赋给c,则c=’a’;(c=97) 49、return语句可以在同一个函数中出现多次 50、char a[10];不能将字符串”abc”储存在数组中的是 C Astrcpy(a,”abc”); B a[0]=0;strcat(a,”abc”); Ca=”abc”; Dint i;for(i=0;i<3;i++)a[i]=i+97;a[i]=0; 51、功能:将一个数组中的元素按逆序存放 #include #define N 7 main() { static int a[N]={12,9,16,5,7,2,1},k,s; printf(“\n the origanal array:\n”); for (k=0;k

嵌入式C语言经典笔试题目

嵌入式c语言经典笔试题目 1 .用预处理指令#define声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在这想看到几件事情: 1) #define语法的基本知识(例如:不能以分号结束,括号的使用,等等) 2)懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值,是更清晰而没有代价的。 3)意识到这个表达式将使一个16位机的整型数溢出-因此要用到长整型符号L,告诉编译器这个常数是的长整型数。 4)如果你在你的表达式中用到UL(表示无符号长整型),那么你有了一个好的起点。记住,第一印象很重要。 2 .写一个"标准"宏MIN,这个宏输入两个参数并返回较小的一个。 #define MIN(A,B)((A)<= (B) ? (A) : (B)) 这个测试是为下面的目的而设的: 1)标识#define在宏中应用的基本知识。这是很重要的。因为在嵌入(inline)操作符变为标准C的一部分之前,宏是方便产生嵌入代码的唯一方法,对于嵌入式系统来说,为了能达到要求的性能,嵌入代码经常是必须的方法。 2)三重条件操作符的知识。这个操作符存在C语言中的原因是它使得编译器能产生比if-then-else更优化的代码,了解这个用法是很重要的。 3)懂得在宏中小心地把参数用括号括起来 4)我也用这个问题开始讨论宏的副作用,例如:当你写下面的代码时会发生什么事? least = MIN(*p++, b); 3.预处理器标识#error的目的是什么? 如果你不知道答案,请看参考文献1。这问题对区分一个正常的伙计和一个书呆子是很有用的。只有书呆子才会读C语言课本的附录去找出象这种问题的答案。当然如果你不是在找一个书呆子,那么应试者最好希望自己不要知道答案。 死循环(Infinite loops) 4.嵌入式系统中经常要用到无限循环,你怎么样用C编写死循环呢? 这个问题用几个解决方案。我首选的方案是: while(1) { } 一些程序员更喜欢如下方案: for(;;) { } 这个实现方式让我为难,因为这个语法没有确切表达到底怎么回事。如果一个应试者给出这个作为方案,

C语言基础知识_测试题

C语言程序设计基础测试题 一、单选 [1] 下面叙述中错误的是____。 A. 复合语句中定义的函数只在该复合语句中有效 B. return( )语句中的括号中,可以是变量,常量或有确定值的表达式 C. 形式参数也是局部变量 D. 主函数中定义的变量在整个程序中都是有效的 [2]下列说法中正确的是____。 A.带参数的宏定义中的参数是没有类型的 B.宏展开将占用程序的运行时间 C.宏定义命令是C语言中的一种特殊语句 D.使用#include命令包含的头文件必须以“.h"为后缀 [3.] 若函数的形参为一维数组,则下列说法中正确的是____。 A.调用函数时的对应实参必为数组名 B.形参数组可以不指定大小 C.形参数组的元素个数必须等于实参数组的元素个数 D.形参数组的元素个数必须多于实参数组的元素个数 [4]. 系统的标准输出设备是____。 A.键盘 B.硬盘 C.内存 D.显示器 [5] 下面叙述中正确的是____。 A.全局变量在定义它的文件中的任何地方都是有效的 B.全局变量在程序的全部执行过程中一直占用内存单元 C. C语言的switch语句中case后可为常量或表达式或有确定值的变量及表达式 D. 说明函数时必须明确其参数类型和返回类型 [6]. C程序的基本结构单位是____。 A.文件 B.语句 C.函数 D.表达式 [7] 对于定义,char *aa[2]={"abcd","ABCD"},选项中说法正确的是____。 A.aa数组元素的值分别是"abcd"和"ABCD" B.aa是指针变量,它指向含有两个数组元素的字符型一维数组 C.aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址 D.aa数组的两个元素中各自存放了字符'a'和'A'的地址 [8]. 任何一个C语言的可执行程序都是从____开始执行的。 A.程序中的第一个函数 B.main( )函数的入口处

C语言题库

C语言基本概念 能将高级语言编写的源程序转换成目标程序的是______。 A) 编辑程序B) 编译程序C) 解释程序D) 链接程序 您的答案为:B 参考答案为:B 以下选项中合法的用户标识符是______。 A) long B) _2Test C) 3Dmax D) A.dat 您的答案为:B 参考答案为:B 以下叙述正确的是 A) 可以把define和if定义为用户标识符 B) 可以把define定义为用户标识符,但不能把if定义为用户标识符 C) 可以把if定义为用户标识符,但不能把define定义为用户标识符 D) define和if都不能定义为用户标识符 您的答案为:D 参考答案为:B 以下叙述正确的是 A) C语言比其他语言高级 B) C语言可以不用编译就能被计算机识别执行 C) C语言以接近英语国家的自然语言和数学语言作为语言的表达形式 D) C语言出现的最晚、具有其他语言的一切优点 您的答案为:C 参考答案为:C 在一个C语言程序中 A) main函数必须出现在所有函数之前 B) main函数必须出现在所有函数之后 C) main函数可以在任何地方出现 D) main函数必须出现在固定位置 您的答案为:C 参考答案为:C 一个C语言程序是由_______组成的。 A) 一个主程序和若干子程序 B) 若干子程序 C) 函数 D) 若干过程您的答案为:C 参考答案为:C 以下叙述中正确的是() A) C语言的源程序不必通过编译就可以直接运行 B) C语言中的每条可执行语句最终都将被转换成二进制的机器指令 C) C源程序经编译形成的二进制代码可以直接运行 D) C语言中的函数不可以单独进行编译 您的答案为:B 参考答案为:B 下列关于C语言用户标识符的叙述中正确的是

c语言模拟试题

试卷编号:8156 所属语言:C语言 试卷方案:C语言201006模拟 试卷总分:100分 共有题型:5种 ━━━━━━━━━━━━━━━ 一、判断共10题(共计20分) ━━━━━━━━━━━━━━━ 第1题(2.0分)题号:1225 在给变量命名时,C语言区分大小写字母,即认为Name和name不是同一个变量. 答案:Y 第2题(2.0分)题号:1279 循环结构while、do while、for不可以互相嵌套. 答案:N 第3题(2.0分)题号:1140 链表中的任何一个结点,必然要包括一个指针域. 答案:Y 第4题(2.0分)题号:1265 在书写C程序时,一行内只能写一条语句,一条语句也不能写在多行上. 答案:N 第5题(2.0分)题号:1280 C语言程序中用到的所有变量必须在使用之前进行定义. 答案:Y 第6题(2.0分)题号:1269 若定义int a[4]={1,2,3,4};若超界引用a[4]则编译时不报错. 答案:Y 第7题(2.0分)题号:19 C语言本身不提供输入输出语句,输入和输出操作是由函数来 实现的。 答案:Y 第8题(2.0分)题号:11 通过return语句,函数可以带回一个或一个以上的返回值。 答案:N 第9题(2.0分)题号:24

对于数值型数组,C语言中只能逐个引用数组元素而不能一次引用整个数组。答案:Y 第10题(2.0分)题号:33 int i,*p=&i;是正确的C说明。 答案:Y ━━━━━━━━━━━━━━━━━ 二、单项选择共15题(共计30分) ━━━━━━━━━━━━━━━━━ 第1题(2.0分)题号:87 C语言源程序的基本单位是()。 A:过程 B:函数 C:子程序 D:标识符 答案:B 第2题(2.0分)题号:110 C语言中,char类型数据占()。 A:1个字节 B:2个字节 C:4个字节 D:8个字节 答案:A 第3题(2.0分)题号:112 下列程序的输出结果是()。 main() {char c1=97,c2=98; printf("%d %c",c1,c2); } A:97 98 B:97 b C:a 98 D:a b 答案:B 第4题(2.0分)题号:170 关于return语句,下列正确的说法是()。

c语言笔试题(答案)(精心整理)

笔试题 一、填空题(每个空4分,共28分) 1)struct tagABC { char name[10]; char sex; long sno; float score[4]; }*pAbc;(四字节对齐) pAbc=NULL; 那么,执行pAbc+=2;之后pAbc的值为(64 ) 2)如下代码,最终value的值是(8) int *p1,*p2; int value; p1=(int*)0×400; p2=(int*)0×408; value = p2-p1; 3)如下代码,printf的结果为(2) #include〈stdio.h〉 #include〈string.h〉 void main(void) { char acNew[20]= “\\0\0”; printf(“%d\n”,strlen(acNew)); } 4) 有如下程序段,运行该程序的输出结果是(33) main () { int y=3,x=3,z=1; printf(“%d%d\n”,(++x,y++),z+2); } 5)设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后,n的值为(2)6)struct tagAAA { Unsigned char ucId:1; Unsigned char ucPara0:2; Unsigned char ucState:6; Unsigned char ucTail:4; Unsigned char ucAvail; Unsigned char unTail2:4; Unsigned long ulData; }AAA_S 问:AAA_S在字节对齐分别为1,4情况下,占用的空间大小分别是多少?( 9)(12 )

年C语言程序设计基础期末考试试卷‘B’及答案

年C语言程序设计基础期 末考试试卷‘B’及答案 The following text is amended on 12 November 2020.

一、单项选择题 1. 在C语言中,下面字符串能用作变量名的是( )。 A、a+b B、auto C、2-and D、a2 2. 若double x=2,y;则执行y=x+3/2;后,y的值是( )。 A、 B. C. D. 3 3. 下列关于C语言中字符常量与字符串常量的叙述中,错 误的是( )。 A、字符常量是用单撇号括起来的一个字符 B、空格字符也可用作字符常量 C、字符串常量是用单撇号括起来的一个字符序列 D、字符串常量是用双撇号括起来的一个字符序列 4. 若有以下变量说明和数据的输入方式,则正确的输入语 句为( )。

变量说明:float x1,x2; 数据的输入方式:<回车> <回车> A、scanf(“%f,%f”,&x1,&x2); B、scanf(“%f%f”,&x1,&x2); C、scanf(“%,%”,&x1,&x2); D、scanf(“%%”,&x1,&x2); 6. 在一个源文件中定义的全局变量的作用域为()。 A. 本文件的全部范围 B. 从定义该变量开始至本文件结束 C. 本函数的全部范围 D. 本程序的全部范围

7. 当调用函数时,实参是一个数组名,则向函数传送的是( )。 A、数组的长度 B、数组的首地址 C、数组每一个元素的地址 D、数组每个元素中的值 8.若j为整型变量,则下面while循环( )。 j=10; while(j!=0) j=j-1; A、执行0次 B、执行1次 C、执行10次 D、执行无限次 9. 在while(x)语句中的x与下面条件表达式等价的 是:( )。 A、x!=0 B、 x==1 C、x!=1 D、x==0 10. 以下对C语言函数的描述中,正确的是( )。 A、调用函数时,参数可以是表达式

2020C语言考试题库及答案

精选考试类应用文档,如果您需要使用本文档,请点击下载,另外祝您生活愉快,工作顺利,万事如意! 精选考试类文档,如果需要,请下载,希望能帮助到你们! 2020C语言考试题库及答案

姓名成绩 温馨提示:同学们,经过培训学习,你一定积累了很多知识,现在请认真、仔细地完成这张试题吧。加油! 一单项选择题 1. 在C语言中,以 D 作为字符串结束标志 A)’\n’ B)’ ’ C) ’0’ D)’\0’ 2.下列数据中属于“字符串常量”的是( A )。 A.“a” B.{ABC} C.‘abc\0’ D.‘a’ 若干个字符构成字符串 在C语言中,用单引号标识字符;用双引号标识字符串 选项B,C,分别用{}和’’标识字符串 选项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.-a1 B.a[i] C.a2_i D.int t 6.下列C语言用户标识符中合法的是( B )。 A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是( C )。 A) %x B) a+b C) a123 D) 123 8、下列四组字符串中都可以用作C语言程序中的标识符的是( A )。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 9.C语言中的简单数据类型包括(D )。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是 C 。

C语言程序设计模拟试题1(附答案)

《C语言程序设计》模拟试卷一 一、单项选择题(每题2分,共30分) 1、下列有关C语言的叙述中错误的是()。 A) C语句必须以分号结束 B) 任何一个C程序中有且只有一个主函数 C) 复合语句在语法上可被看作一条语句 D) C程序中对数据的任何操作都可由运算符实现 2、以下不能定义为用户标识符的是()。 A) MAIN B) _HJ C) 2ong D) LINE1 3、下列符号中用来表示C语言中的回车换行的是()。 A) \r B) \n C) \b D) \t 4、如有如下定义:int a=1,则语句printf(“%d,%d”, a, ++a);的运行结果为()。 A) 1, 1 B) 1, 2 C) 2, 2 D) 2, 1 5、已知ch为字符型变量,下面表达式中正确的是()。 A) ch=’\xff ’B) ch=’\ff ’C) ch=’ ff ’D) ch=” ff ” 6、以下能正确定义一维数组的是()。 A) int a[5]={0,1,2,3,4,5}; B) int a[5]=”012345”; C) char a[ ]=”012345”; D) char a[5]={0,1,2,3,4,5}; 7、以下语句中能正确定义变量并赋初值的是()。 A) char c=65; B) float f=f+1.1; C) double x=12.3e3.6; D) int m=n=2.0; 8、在执行下列程序时输入:1357924,则程序的运行结果为()。 main( ) { int x, y; scanf(“%2d%2d”,&x,&y); printf(“%2d”,x*y); } A) 13 B) 1357 C) 74 D) 741 9、执行下列程序段后输出的结果是()。 x = 9; while (x > 7)

c语言笔试题目及答案

c语言笔试题目及答案 C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。下面是c语言笔试题目及答案,请参考。 c语言笔试题目及答案 一、选择题((1)~(10)每小题2分,(11)~(50)每小题1分,共60分) 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选 项涂写在答题卡相应位置上,答在试卷上不得分。 (1)数据的存储结构是指________。 A)存储在外存中的数据 B)数据所占的存储空间量 C)数据在计算机中的顺序存储方式 D)数据的逻辑结构在计算机中的表示 答案:D 评析:数据的逻辑结构在计算机存储空间中的存放形式形式称为数据的存储结构(也称数据的物理结构)。 (2)下列关于栈的描述中错误的是________。 A)栈是先进后出的线性表

B)栈只能顺序存储 C)栈具有记忆作用 D)对栈的插入与删除操作中,不需要改变栈底指针 答案:B 评析:栈是一种特殊的线性表,又称先进后出表(FILO—First In Last Out)。 (3)对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是 ________。 A)冒泡排序为n2 B)冒泡排序为n C)快速排序为n D)快速排序为n(n一1)/2 答案:D 评析:假设线性表的长度为n,则在最坏情况下,冒泡排序需要经过n/2遍的从前往后扫描和n/2遍的从后往前扫描,需要比较次数为n(n-1)/2。快速排序法的最坏情况比较次数也是n(n-1)/2。 (4)对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为________。 A)log2n B)n/2 C)n D)n+l 答案:C 评析:顺序查找过程中,如果被查找的元素是线性表中的最后一个元素,或者元素不在线性表中,则需要与线性表中所有的元素进行比较。对长度为n的线性表进行顺序查找,在最坏情况下需要比较

C语言试题库(完整版)

C语言试题库 一、单项选择 第一章 C语言概述 (1)一个C程序的执行是从 A、本程序的MAIN函数开始,到MAIN 函数结束。 B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。 C、本程序的MAIN函数开始,到本程序的最后一个函数结束。 D、本程序文件的第一个函数开始,到本程序的MAIN函数结束。(2)以下叙述正确的是 A、在C程序中,MAIN函数必须位于程序的最前面。 B、 C程序的每行中只能写一条语句。 C、 C语言本身没有输入输出语句。 D、在对一个C程序进行编译的过程中,可发现注释中的拼写错误。(3) C语言规定,在一个源程序中,MAIN主函数的位置是在: A、必须在最前面。 B、必须在系统调用的库函数的后面 C、可以在任意位置。

D、必须在最后面 (4)一个C程序是由: A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 (5)以下叙述不正确的是: A、一个C源程序可由一个或多个函数组成 B、一个C源程序必须包含一个MAIN函数 C、 C程序的基本组成单位是函数 D、在C程序中,注释说明只能位于一条语句的后面 第二章数据类型、运算符与表达式 (1)若x, i, j, k都是int型变量,则计算下面表达式后,x的值为x=( i=4, j=16, k=32) A、4 B、16 C、32

D、52 (2)下列四组选项中,均不是C语言键字的选项是 A、define , IF, type B、getc, char, printf C、include, scanf, case E、 if, struct, type (3)下面四个选项中,均是不合法的用户标识符的选项是A、A,P_0,do B、float,1a0, _A C、b-a, goto, int D、_123, temp, INT (4)若有代数式3ae/bc,则正确的C语言表达式是A、a/b/c*e*3 B、3*a*e/bc C、3*a*e/b*c D、a*e/c/b*3 (5)已知各变量的类型说明如下:

C语言等级考试模拟试题答案

一、选择题 1、若有说明语句:int x=10,y=20,z=30; 则执行语句:if(x>y) z=x; x=y; y=z; printf(“%d,%d,%d”,x,y,z); 后,输出是20,30,30 2、若有以下语句:char x=3,y=6,z; z=y^x<<2; 则z的二进制值是00001010 3、若有定义:int i,j,*pi=&i; 则与i==j等价的比较表达式是*pi==j 4、程序段:int num=0; while(num<=2) printf(“%d ,”,num++); 的运行结果是0 ,1 ,2 , 5、若用数组名作为函数调用时的实参,则实际上传递给形参的是数组的首地址 6、若已定义: int x; 则表达式((x=4*5,x*5),x+25) 的值是45。 7、若有说明:int a[3][4],s; ,则对数组a的元素引用错误的是____________ 8、下列C语言的标识符中,合法的标识符为____________ 9、若x是int类型变量,y是float类型变量,则为了将数据55和55.5分别赋给x和y,则执行语句:scanf(“x=%d, y=%f”,&x,&y,); 时,正确的键盘输入是x=55, y=55.5。 10、若有定义:struct person{ int id ; char name[20]; } per,*s=&per; 则以下对结构体成员的引用中错误的是____________ 二、填空题 1、下列程序的输出结果是6 long fib(int g) { switch(g){ case 0: return(0); case 1: case 2: return(2); } return ( fib(g-1) + fib(g-2) ); }

嵌入式C语言面试题汇总(超经典)

第一部分:基本概念及其它问答题 1、关键字static的作用是什么? 这个简单的问题很少有人能回答完全。在C语言中,关键字static有三个明显的作用: 1). 在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。 2). 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。 3). 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。 大多数应试者能正确回答第一部分,一部分能正确回答第二部分,同是很少的人能懂得第三部分。这是一个应试者的严重的缺点,因为他显然不懂得本地化数据和代码范围的好处和重要性。 2、“引用”与指针的区别是什么? 答、1) 引用必须被初始化,指针不必。 2) 引用初始化以后不能被改变,指针可以改变所指的对象。 3) 不存在指向空值的引用,但是存在指向空值的指针。 指针通过某个指针变量指向一个对象后,对它所指向的变量间接操作。程序中使用指针,程序的可读性差;而引用本身就是目标变量的别名,对引用的操作就是对目标变量的操作。 流操作符<<和>>、赋值操作符=的返回值、拷贝构造函数的参数、赋值操作符=的参数、其它情况都推荐使用引用。 3、.h头文件中的ifndef/define/endif 的作用? 答:防止该头文件被重复引用。 4、#include 与#include “file.h”的区别? 答:前者是从Standard Library的路径寻找和引用file.h,而后者是从当前工作路径搜寻并引用file.h。 5、描述实时系统的基本特性 答:在特定时间内完成特定的任务,实时性与可靠性。 6、全局变量和局部变量在内存中是否有区别?如果有,是什么区别? 答:全局变量储存在静态数据区,局部变量在堆栈中。 7、什么是平衡二叉树? 答:左右子树都是平衡二叉树且左右子树的深度差值的绝对值不大于1。 8、堆栈溢出一般是由什么原因导致的? 答:1.没有回收垃圾资源 2.层次太深的递归调用

C语言考试试题基础版

一、选择题 1. 在每个C 程序中都必须包含有这样一个函数,该函数的函数名为 。 A. main B. MAIN C. name D. function 2. 在以下关于C 语言的注释的叙述中,不正确的是 。 A .注释可用"/*"、"*/"形式表示,也可用"//"形式表示 B .编译器在编译一个程序时,将跳过注释,不对其进行处理 C .编译器在编译一个程序时,可发现注释中的单词拼写错误 D .程序中注释的多少不会影响所生成的可执行文件的长度 3. 以下叙述不正确的是 。 A .在C 程序中,严格区分大小写字母 B .一个C 源程序有且仅有一个main 函数 C .在C 程序中,注释只能位于一条语句的后面 D .一个C 程序总是从main 函数开始执行 4. 下列合法的标识符为 A. abde+ B. #KDJF C. 67KDJ D. DK3_ 5. 关于字符串和字符的关系正确的是 A. “A ”与’A ’是相同的 B. 字符串是常量,字符是变量 C. “A ”与’A ’是不同的 D. “A ”与“A ”是相同的 6. 下面关于语句的说法正确的是 A. 下面这两段程序的执行效果是一致的 B. 空语句是只有一个分号的语句,它其实什么也不干 C. 语句的构成不一定需要分号 D. 语句的书写对程序的运行不起作用,因此可以随便写都可以 7. 以下各标识符中,合法的用户标识符组为 。 A. PAd ,P#d ,b-b ,abc ,_0123,ssiped B. cin ,a10,CPP ,float ,del_word ,signed C. void ,max ,hiy ,,list ,*jer if (x>y) {z=x; s=z*z;} else {z=y;s=1/(z*z);} if (x>y) z=x; s=z*z; else z=y;s=1/(z*z);

C语言题库

一、判断题(每题1分) 1.函数即可以嵌套定义,又可以嵌套调用.( × ) 2.unsigned 和void 在C 中都是保留字.( √ ) 3.表达式 ++i 表示对变量i 自加1. (√ ) 4.C 语言源程序的基本结构单位是main 函数. ( × ) 5.字符常量的长度肯定为1. (√ ) 6.char a[]={'a','b','c'};char b[]={"abc"};数组a和数组b 占用的内存空间大小不一样. ( √ ) 7.若有int i=10,,j=2; 则执行完i*=j+8;后i 的值为28. (× ) 8.int i,*p=&i;是正确的C 说明。( √ ) 9.While 循环语句的循环体至少执行一次. ( × ) 10.有数组定义int a[2][2]={{1},{2,3}};则a[0][1]的值为0. ( √ ) 11. 7&3+12的值是15.( × ) 12. C 语言本身不提供输入输出语句,输入和输出操作是由函数来 实现的.( √ ) 13. 若 a=3,b=2,c=1 则关系表达式"(a>b)==c" 的值为"真". (√ ) 14. 在C 语言中,整型数据在内存中占2个字节. ( × ) 15. 对二维数组a 来说,由于a+1与*(a+1)的值相等,因此二者的含义是一样的. (× ) 16. break 语句可用于循环体内,它将退出该重循环. ( √ ) 17. 将一个字符串"abc"赋给字符串变量str 的方法是str="abc".. (× ) 18. 参加位运算的数据可以是任何类型的数。( × ) 19. C 语言规定:在一个源程序中,main 函数的位置必须在最开始. ( × ) 20. 静态外部变量只在本文件内可用. ( √ ) 21. 若有宏定义:#define S(a,b) t=a;a=b;b=t由于变量t 没定义,所以此宏定义是错误的.( × ) 22. 字符串只能存放在字符型数组中. ( √ ) 23. 若 a=3,b=2,c=1 则关系表达式"(a>b)==c" 的值为"真". (√ ) 24. 在标准C 中,"="是判断两个数是否相等. ( × ) 25. 函数调用可以出现在执行语句中,但不能出现在表达式中. (× ) 26. break 语句可用于循环体内,它将退出该重循环. ( √ ) 27. strcat(s1,s2)函数是将字符串s1复制到字符串s2中. (× ) 28. 函数若无返回值,则它一定无形参。( × )

C语言自学考试模拟试题及答案

C语言自学考试模拟试题及答案 一、单项选择题 1.各种基本数据类型的存贮空间正确的长度排列为_____C_____. A.Char12?15:6>7?8:9)的值为____C________. A 9 B 8 C 15 D. 1 7.若x=5,y=3 则y*=x+5;y的值为___D____________. A. 10 B. 20 C. 15 D. 30 8.C语言的输入与输出操作是由______C______完成的。 A.输入语句 B.输出语句

C语言模拟试题II

《C语言程序设计教程实验与练习》(第二版)模拟试题II及答案 一、单项选择题(每题2分,30道题,共60分) 1.下面的程序将输出: main() { float f; int x=1,y=2.5; f=x/y; printf("f=%1.1f,y=%#X", f, y ); } A.f=0.0 , y=2 B.f=0.5 , y=0X2 C.f=0.0 , y=0X2 D.f=0.5 , y=2 2.下面的程序将输出: #include "string.h" main() { int len; char str[]="a\b\04235\0"; len=strlen(str); printf("%d",len); } A. 10 B. 5 C. 6 D. 7 3.下面的程序将输出: main() { int a=0x31; char *str[]={"this is one. ","this is two. "}; char ch; ch=++a-’0’; switch(ch) { case 1: printf ("%s", str[0]); case 2: printf ("%s", str[1]); default: printf ("no way! "); } } A.this is one. B.this is two. C.no way! D.this is two.no way! 4.下面的程序将输出: main() { int a[5]={1,2,3}; int k,j; for(k=1;k<4;k++) a[k]++;

for(j=0;j<5;j++) printf("%d ",a[j]); } A.1 3 4 1 0 B.2 3 4 1 0 C.2 3 4 0 0 D.1 3 4 0 0 5. 已知有下面两个变量,将数组a 的第2个单元赋值为1的C 语句是: int a[10]; int *p; p=a; A.a[2]=1; B.p[1]=1; C.*(p++)=1; D.*(++a)=1; 6. 下面程序将输出: void add(int a) { a++; return; } main() { int k; k=3.4; add(k); printf("%d ",k); } A. 3.4 B. 4.4 C. 3 D. 4 7. 下列循环结构中,不是.. 无限循环的是: A. for(i=1, s=0; ; i++) B. i=10; s=s+i ; while(1) {i=i%10+1; if(i>10) break; } C. int i=0; D. i =100; do{ ++i ; }while(i>=0); while(++i%2) i++; 8. 若已知int a[3][4],*p;p=(int *)a;那么对数组a 的第2行第2列的正确引用是: A.a[2][2] B.p[5] C.a[5] D.p[1][1] 9. 已知:int (*p)[20]; 且p 的值是0X5000,请问表达式p+2的值是多少? A. 0X5050 B. 0X5002 C. 0X5004 D. 0X5040 10. 若有说明int a[2][2];那么,下面正确的C 赋值语句是: A.a=2; B.a[1]=2; C.a[1]={1,2}; D.a[0][1]=a[1][0]; 11. 设x 为int 型变量,则执行以下语句后,x 的值为 x=10; x+=x-=x-x; A .10 B .20 C .40 D .30 12. 已知x=43,ch='A',y=0;则表达式(x>=y&&ch<'B'&&!y )的值是: A .0 B .语法错 C .1 D ."假" 13. 下面能正确进行字符串... 赋值操作的语句是: A .char s[5]={"ABCDE"}; B .char s[]={'A','B','C','D','E'}; C .char *s ;s="ABCDEF"; D .char *s ;scanf ("%s",s ); 14. 已知:int a[3][4], *p=&a[0][0]; p+=6; 那么*p 和_____的值相同.

c语言经典面试题

C语言面试题大汇总之华为面试题 1、局部变量能否和全局变量重名? 答:能,局部会屏蔽全局。要用全局变量,需要使用"::" ;局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。 2、如何引用一个已经定义过的全局变量? 答:extern 可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变理,假定你将那个编写错了,那么在编译期间会报错,如果你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错。 3、全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么?答:可以,在不同的C文件中以static形式来声明同名全局变量。 可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错. 4、请写出下列代码的输出内容 #include int main(void) { int a,b,c,d; a=10;

c=++a; d=10*a++; printf("b,c,d:%d,%d,%d",b,c,d); return 0; } 答:10,12,120 5、static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别? 答: 1) 全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。这两者的区别在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用域,即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用,因此可以避免在其它源文件中引起错误。 2) 从以上分析可以看出, 把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域,限制了它的使用范围。3) static函数与普通函数作用域不同,仅在本文件。只在当前源文件中使用的函数应该说明为内部函数(static),内部函数应该在当前源文件中说明和定义。对

相关主题