c语言试题 说明语句2
C语言程序设计试题集及其答案 (2)

第一章基础知识一.填空1.每个C程序都必须有且仅有一个________ 函数。
2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。
3. 软件是程序,以及______、使用和维护所需要的所有文档。
4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。
5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。
6. C语言是由________组成的。
7. C语言的函数可分为主函数main、标准库函数和_________。
8. 一个函数是由两部分组成的,即:________和函数体。
9. 编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。
10.程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作的要求。
不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。
11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。
12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对象,也可以用标号和符号来代替地址、常量和变量。
13.在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。
14. C程序的执行均是由执行_________开始。
15.函数体即为包含在{}内的部分。
它分为________和为完成功能任务由若干个C 语句组成的执行部分。
16.C语言程序中一条简单语句是以________字符作为结束符的。
17.C语言是结构化、________的程序设计语言。
C语言模拟试题二

C语⾔模拟试题⼆C语⾔程序设计》模拟试题⼆⼀、选择题(每题1.5分,共45分)1. 设有 int x=11; 则表达式 (x++ * 1/3) 的值是A) 3 B) 4 C) 11 D) 122. 下列程序的输出结果是A) 3 B) 3.2 C) 0 D) 3.07 main(){ double d=3.2; intx,y;x=1.2; y=(x+3.8)/5.0; x为整形⾃动舍去⼩数部分printf("%d \n", d*y);}3. 下列程序执⾏后的输出结果是(⼩数点后只写⼀位)A) 6 6 6.0 6.0 B) 6 6 6.7 6.7C) 6 6 6.0 6.7 D) 6 6 6.7 6.0main(){ double d; float f; long l; inti;i=f=l=d=20/3;printf("%d %ld %f %f \n", i,l,f,d);}4. 下列变量定义中合法的是A) short _a=1-.le-1; B) double b=1+5e2.5;C) long do=0xfdaL; D) float 2_and=1-e-3;5. 设 int x=1, y=1; 表达式(!x||y--)的值是A) 0 B) 1 C) 2 D) -16. 与 y=(x>0?1:x<0?-1:0);的功能相同的if语句是A) if (x>0) y=1; B) if(x)else if(x<0)y=-1; if(x>0)y=1;else y=0; else if(x<0)y=-1;else y=0;C) y=-1 D) y=0;if(x) if(x>=0)if(x>0)y=1; if(x>0)y=1;else if(x==0)y=0; else y=-1;A) 3 B) 2 C) 1 D) 0 main(){ inti,j;for(i=0,j=1; i<=j+1; i+=2, j--)printf("%d \n",i);}8. 以下叙述正确的是A) do-while语句构成的循环不能⽤其它语句构成的循环来代替。
重庆市职业高中计算机专业c语言试题 (2)

一、填空题1.C语言以_____________作为语句的结束字符。
2.如变量a,b,c都是整数,则代数式3cba++的C语言表达式为。
3.C语言支持模块化程序设计方法,C程序中的模块是。
4.表达式21/6*6的运算结果是。
5.定义符号常量TITLE为字符串“JAVA”的命令是。
6.要使用库函数,必须使用命令把存放人该库函数声明的文件包含到相应的源程序文件中。
7.C语言中的函数通常由和组成。
8.存放字符串″beijing″所需空间为字节。
9.表达式3*20/4%10的计算结果为。
10.已知int x=10;执行x+=x-=x-x;后,x的值为。
11.标识符break不能作为用户标识符,是因为break是。
12.存储字符串"\0"需要占用字节的存储单元。
13.有int x=5;x=-5;则x的值为。
14.定义x,y为双精度型变量的语句是。
15.C程序的基本单位是函数,一个C程序至少包含一个函数。
16.定义符号常量NUM为10的C语言表达式是。
17.在内存中存储“A”要占用个字节18.是构成C语言的基本单位。
19.设x的值为12,y的值为2;则表达式x%=(y+=3)运算后x的值为。
20.C语言中,把“战争与和平”定义为符号常量BOOK的表达式为。
21.当表达式中的运算符优先级相同时根据来确定运算的先后次序22.有定义int m=5;则表达式m+=m- =m%m的值为。
23.与数学表达式ab yx53+有相同功能的C语表达式为。
24.C语言中,函数由函数头和函数体组成。
25.有int x=6;则表达式x+=x/=x%=4执行后,x的值为。
26.组成c源程序的各个函数是相互独立的,各个函数的位置是任意的,但程序的执行总是从主函数开始。
27.有运算符:++,&&,*,<= ,其中优先级最高的是&& 。
28.有定义:int m;float x; 则表达式25-x*’x’+m/5的类型是 DOUBLE 。
二级C语言试题(含答案)

二级C语言试题(含答案)二级C语言试题一、判断题(2×8=16分)1、printf()函数总是从新行的起始位置开始打印。
( F )2、所有的变量在使用前都必须予以申明。
(F)3、在申明变量时必须给出变量的类型。
(T)4、C语言认为变量number和NuMbEr是相同的。
( F)5、打印三行输出的C语言程序必须用三条printf语句。
(F)6、求余运算符%只能用于两个整数操作数。
(T)7、switch选择结构中必须有default子句。
(F)8、如果x>y或ay&&a<b)为真。
(f)< p="">二、选择题(3×16=48分)1、下面实现换行功能的格式符为。
(B )A. \tB. \nC. \aD. \k2. C语言程序由什么组成?(单选) CA. 子程序B. 主程序和子程序C. 函数D. 过程3. 下面哪个表达式的值为4. DA. 11/3B. 11.0/3C. (float)11/3D. (int)(11.0/3+0.5)4. 该源程序执行后,屏幕上显示什么?void main(){int a;float b;a=4;b=9.5;printf("a=%d,b=%4.2f\n",a,b);}程序运行结果:a=4,b=9.50A. a=%d,b=%f\nB. a=%d,b=%fC. a=4,b=9.50D. a=4,b=9.55. 若有以下说明语句: Bchar s=’\\\092’;则下面哪一项是正确的.A. 使s的值包含2个字符B. 说明语句不合法C. 使s的值包含6个字符D. 使s的值包含4个字符6.若k,g均为int型变量,则以下语句的输出为哪一项? A int k,g;k=017;g=111;printf("%d,",k);printf("%x\n",g);A. 15,6fB. f,6fC. f,111D. 15,1117. 在C语言的if语句中,用作判断的表达式为___。
C语言程序设计试题二及答案

C语言程序设计试题二及答案一、选择题(共30题,每题2分,共60分)1.在C语言程序中,定义符号常量的标识符是()A.main B.define C.include D.float2. 在Turbo C中,编译并运行一个程序需要使用的菜单项是()A.File B.Edit C.Run D.Compile3. 在一个完整的C语言源程序中,必须包含的函数是()A.main( ) B.scanf( ) C.printf( ) D.getch( )4. 下列选项中,不属于C语言双目运算符的是()A.? :B.%C.* D.+5. 当运行下列程序时,在键盘上从第一列开始输入9876543210后回车,则程序的输出结果是()main(){int a; float b,c;scanf(“%2d%3f%4f”,&a,&b,&c);printf(“\na=%d,b=%.0f,c=%.0f”,a,b,c);}A. a=98,b=765,c=4321B. a=10,b=432,c=8765C. a=98,b=765.0000000,c=4321.000000D. a=98,b=765.0,c=4321.06. 下列表达式的值为0的是()A. 3%5B. 3>=5C. 5&&0||3D. 5/37. C语言程序的基本单位是()A.语句B.表达式C.函数D.标识符8. 使用OS Shell退出Turbo C环境进入DOS后,要想返回Turbo C环境应键入()A. RETURNB. EXITC. QUITD. BREAK9. 在c语言中,要求对象必须为整型的是()A. %B. /C. !D.++10. C语言表达式是按运算符的优先级来决定运算顺序的,下列运算符优先级最高的是()A. =B. !C. ,D. &&11. 下列合法的浮点型常量是()A. 3.4e2B. 2e+1.2C. 3eD. 079612. 如果要将476存入变量,则该变量不能定义成()A. floatB. longC. intD. char13. 设x为整型变量,y为双精度型变量,则表达式x*y+3的数据类型是()A. charB. intC. floatD. double14. 在Turbo C中,存储flaot型数据占用的字节数为()A.1B.2C.4D.815. 若x和y是double类型,则表达式x=1,y=x+3/2执行后的值为()A. 1B. 2C. 2.0D. 2.516. 在C语言中,整数不能使用下列哪种数制表示?()A. 二进制B. 八进制C. 十进制D. 十六进制17. 关系表达式x≤y≤z用C语言来描述,正确的是()A. x<=y<=zB. (x<=y)&(y<=z)C. (x<=y)||(y<=z)D. (x<=y)&&(y<=z)18. 若x为double型变量,执行表达式x=1,x+5,x++后,变量x的值为()A. 1B. 2.0C. 6.0D. 7.019. 执行C程序段int x,y,t; x=y=3; t=++x||++y;后,y的值为()A. 1B. 3C. 4D. 520. 执行C程序段char ch=’a’;ch=(ch>=’a’&&ch<=’z’?(ch-32):ch;后,变量ch的值为()A.‘A’B.‘a’C. ‘z’D.‘Z’21. 在C语言中,关于break和continue,下列说法正确的是()A. break只用于switch开关语句中B. continue只用于循环语句中C. break和continue既可以用于循环体,也可用于switch开关语句D. 程序在执行过程中,一旦遇到break或continue,就会终止程序的执行22. 关于C语言中的do…while循环,下列说法正确的是()A. 必须使用break才能推出循环B. 循环体至少执行一次C. 可以使用continue结束循环D. while后的条件满足时跳出循环23. 下面合法的C语言标识符有()A. A3?BB. _4xC. 3xyD. a2+b24. 下列属于C语言保留字的是()A. intB. mainC. expD. scanf25. 下列不合法的C语言说明语句是()A. int aa[60];B. char aa[];C. char aa[20]=“dream”;D. int aa[5]={3,4,5};26. 下列C语言表达式中,不等价的是()A. x*=3+5B. x*=(3+5)C. (x*=3)+5D. x=x*(3+5)27. 以下程序的输出结果是()# include <stdio.h>main(){int a=2,c=5;printf("a=%%d,b=%%d\n",a,c);}A) a=%2,b=%5 B) a=2,b=5 C) a=%%d,b=%%d D) a=%d,b=%d28. 以下关于数组的定义和初始化中,错误的是()A、int a[5]={1,2,3,4,5}B、int a[5]={1,2,3}C、int a[ ]={1,2,3,4,5}D、int a[3]={1,2,3,4,5}29. 下列各语句定义了数组,其中哪一个是正确的( )A.int a[5],b[[2],3]; B.char no(30);C.int x[]; D.int x[5]={1,2,3};30. 已知字母A的ASCII码为十进制的65,下面程序的输出是:main(){char ch1,ch2;ch1=’A’+’5’-‘3’;ch2=’A’+’6’-‘3’;printf(“%d,%c\n”,ch1,ch2);}A、67,DB、 B,CC、C,DD、不确定的值二、填空题(共10空,每空2分,共20分)1. 在Turbo C中,默认的源程序文件名是。
C语言程序设计试题2

C语言程序设计试题2一、选择题(20分,每小题2分)1.C语言源程序的基本单位是()。
A.过程 B.函数 C.子程序 D.标识符2. 定义int *swap()指的是()A.指一个返回整型值的函数swapB.指一个返回指向整型值指针的函数swapC.一个指向函数swap()的指针,函数返回一个整型值D.以上说法均错3.假设变量a,b均为整型,表达式(a=5,b=2,a>b?a++:b++,a+b)的值是()。
A. 7 B. 8 C. 9 D. 24. C语言中函数返回值的类型是由()决定的。
A.return语句中的表达式类型 B.调用该函数的主函数类型C.定义函数时所指定的函数类型 D.传递给函数的实参类型5. 设有如下程序段,下面描述中正确的是()。
int k=10; while(k=0) k=k-1;A.循环执行一次 B.循环是无限循环C.循环体语句一次也不执行 D.循环体语句执行一次6.以下选项中可用作C程序合法实数的是A.1e0 B.3.0e0.2 C.E9 D.9.12E7.若有定义语句:int a=3,b=2,c=1;,以下选项中错误的赋值表达式是A.a=(b=4)=3;B.a=b=c+1;C.a=(b=4)+c;D.a=1+(b=c=4);8.设有说明“char s1[10],*s2=s1;”,下列语句中正确的语句是______。
A.*s2=”computer”; B.s2=”computer”;C.s1[]=”computer”; D.s1[10]=”computer”;9.x,y,z被定义为int型变量,若从键盘给x,y,z输入数据,正确的输入语句是:A.INPUT x、y、z;B.scanf("%d%d%d",&x,&y,&z);C.scanf("%d%d%d",x,y,z);D.read("%d%d%d",&x,&y,&z);10.具有相同类型的指针类型变量p与数组a,不能进行的操作是()。
计算机应用类专业C语言考试试题和答案2

计算机应用类专业C语言考试试题和答案一、单项选择题(共20题,每题3分,共60分)1、下面程序段的运行结果是。
char *s="abcde";s+=2;printf("%d",s);A)ced B)字符'c' C)字符'c'的地址 D)无确定的输2、设有以下程序段int x=0,s=0;while(!x!=0) s+=++x;printf("%d",s);则。
A)运行程序段后输出0 B)运行程序段后输出1C)循环的控制表达式不正确 D)程序段执行无限次3、若有说明:static int a[3][4];则数组中各元素。
A)可在程序的运行阶段得到初值0B)可在程序的编译阶段得到初值0C)不能得到确定的初值D)可在程序的编译或运行阶段得到初值04、对两个数组a和b进行如下初始化char a[]="ABCDEF";char b[]={'A','B','C','D','E','F'};则以下叙述正确的是。
A)a与b数组完全相同 B)a与b数组长度相同C)a和b中都存放字符串D)a数组比b数组长度长5、下面程序段的运行结果是。
int n=0;while(n++<=2);printf("%d",n);A)2 B)3 C)4 D)语法错误6、下面程序段的运行结果是。
#include "stdio.h"main(){int m=10, n=20;char *format="%s, m=%d, n=%d\n";m*=n;printf(format, "m*=n", m,n);}A. format, "m*=n", m, n B. format, "m*=n" C. m*=n, m=200, n=20 D.以上结果都不对7、下列选项中可用作变量名的是。
计算机二级c语言试题及详细解答答案资料

一、选择题在下列各题的A、B、C、D四个选项中;只有一个选项是正确的;请将正确的选项涂写在答题卡相应位置上;答在试卷上不得分..1下列数据结构中;属于非线性结构的是________..A循环队列B带链队列C二叉树D带链栈2下列数据结构中;能够按照"先进后出"原则存取数据的是________..A循环队列B栈C队列D二叉树3对于循环队列;下列叙述中正确的是________..A队头指针是固定不变的B队头指针一定大于队尾指针C队头指针一定小于队尾指针D队头指针可以大于队尾指针;也可以小于队尾指针4算法的空间复杂度是指________..A算法在执行过程中所需要的计算机存储空间B算法所处理的数据量C算法程序中的语句或指令条数D算法在执行过程中所需要的临时工作单元数5软件设计中划分模块的一个准则是________..A低内聚低耦合B高内聚低耦合C低内聚高耦合D高内聚高耦合6下列选项中不属于结构化程序设计原则的是________..A可封装B自顶向下C模块化D逐步求精7软件详细设计产生的图如下:该图是..AN-S图BPAD图C程序流程图DE-R图8数据库管理系统是________..A操作系统的一部分B在操作系统支持下的系统软件C一种编译系统D一种操作系统9在E-R图中;用来表示实体联系的图形是________..A椭圆形B矩形C菱形D三角形10有三个关系R;S和T如下:其中关系T由关系R和S..A选择B投影C交D并11以下叙述中正确的是________..A程序设计的任务就是编写程序代码并上机调试B程序设计的任务就是确定所用数据结构C程序设计的任务就是确定所用算法D以上三种说法都不完整12以下选项中;能用作用户标识符的是________..Avoid B 8_8C_0_ Dunsigned13阅读以下程序:#include <stdio.h>main{int case;float printF;printf"请输入2个数:";scanf"%d%f";&case;&printF;printf"% d%f\n";case;printF;}该程序在编译时产生错误;其出错原因是________..A定义语句出错;case是关键字;不能用作用户自定义标识符B定义语句出错;printF不能用作用户自定义标识符C定义语句无错;scanf不能作为输入函数使用D定义语句无错;printf不能输出case的值14表达式:intdouble9/2-9%2的值是________..A0 B3C4 D515若有定义语句:int x=10;;则表达式x-=x+x的值为________..A-20 B-10C0 D1016有以下程序:#include <stdio.h>main{int a=1;b=0;printf"%d;";b=a+b;printf"%d\n";a=2程序运行后的输出结果是________..A0;0 B1;0C3;2 D1;217设有定义:int a=1;b=2;c=3;;以下语句中执行效果与其他三个不同的是________..Aifa>bc=a;a=b;b=c;Bifa>b{c=a;a=b;b=c;}Cifa>bc=a;a=b;b=c;Difa>b{c=a;a=b;b=c;}18有以下程序:#include<stdio.h>main{int c=0;k;for k=1;k<3;k++switchk{default: c+=k;case 2:c++;break;case 4:c+=2;break;}printf"%d\n";c;}程序运行后的输出结果是________..A3 B5C7 D919以下程序段中;与语句:k=a>b b>c1:0:0;功能相同的是________.. Aifa>b&&b>ck=1;else k=0;Bifa>b‖b>ck=1;else k=0;Cifa<=bk=0;else ifb<=ck=1;Difa>bk=1;else ifb>c k=1;else k=0;20有以下程序:#include <stdio.h>main{char s={"012xy"};int i;n=0;fori=0;si=0;i++if si>='a'&&si<='z'n++;printf"%d\n";n;}程序运行后的输出结果是________..A0 B2C3 D521有以下程序:#include <stdio.h>main{int n=2;k=0;whilek++&&n++>2;printf"%d%d\n";k;n;}程序运行后的输出结果是________..A0 2 B1 3C57 D1 222有以下定义语句;编译时会出现编译错误的是________..Achar a='a';Bchar a='\n';Cchar a='aa';Dchar a='\x2d';23有以下程序:#include <stdio.h>main{char cl;c2;cl='A'+'8'-'4';c2='A'+'8'-'5';printf"%c;%d\n";cl;c2;}已知字母A的ASCIl码为65;程序运行后的输出结果是________..AE;68 BD;69CE;D D输出无定值24有以下程序:#include <stdio.h>void funint p{int d=2;p=d++;printf"%d";p;}main{int a=1;funa;printf"%d\n";a;}程序运行后的输出结果是________..A32 B12C21 D2225以下函数findmax拟实现在数组中查找最大值并作为函数值返回;但程序中有错导致不能实现预定功能..#define MIN -int findmaxint x;int n{int i;max;fori=0;i<n;i++{max=MIN;ifmax<xi max=xi;}return max;}造成错误的原因是________..A定义语句int i;max;中max未赋初值B赋值语句max=MIN;中;不应给max赋MIN值C语句ifmax<ximax=xi;中判断条件设置错误D赋值语句max=MIN;放错了位置26有以下程序:#include <stdio.h>main{int m=1;n=2;*p=&m;*q=&n;*r;r=p;p=q;q=r;printf"%d;%d;%d;%d\n";m;n;*p;*q;}程序运行后的输出结果是________..A1;2;1;2 B1;2;2;1C2;1;2;1 D2;1;1;227若有定义语句:int a410;*p;*q4;且0≤i<4;则错误的赋值是________..Ap=a Bqi=aiCp=ai Dp=&a2128有以下程序:#include <stdio.h>#include <string.h>main{char str20={"Qne*World";"one*Dream"};*p=str1;printf"%d;";strlenp;printf"%s\n";p;}程序运行后的输出结果是________..A9;One*World B9;One*DreamC10;One*Dream D10;One*World29有以下程序:#include <stdio.h>main{int a={2;3;5;4};i;fori=0;i<4;i++switchi%2{case 0:switchai%2{case 0:ai++;break;case 1:ai--;}break;case 1:ai=0;}fori=0;i<4;i++printf"%d";ai;printf"\n";}程序运行后的输出结果是________..A3 3 4 4 B2 0 5 0C3 0 4 0 D0 3 0 430有以下程序:#include <stdio.h>#include <string.h>main{char a10="abcd";printf"%d;%d\n";strlena;sizeofa;}程序运行后的输出结果是________..A7;4 B4;10C8;8 D10;1031下面是有关C语言字符数组的描述;其中错误的是________.. A不可以用赋值语句给字符数组名赋字符串B可以用输入语句把字符串整体输入给字符数组C字符数组中的内容不一定是字符串D字符数组只能存放字符串32下列函数的功能是________..funchar*a;char*b{while*b=*a='\0'{a++;b++;}}A将a所指字符串赋给b所指空间B使指针b指向a所指字符串C将a所指字符串和b所指字符串进行比较D检查a和b所指字符串中是否有'\0'33设有以下函数:void funint n;char*s{ …… }则下面对函数指针的定义和赋值均正确的是________..Avoid*pf;pf=fun;Bvoid*pf;pf=fun;Cvoid*pf;*pf=fun;Dvoid*pfint;char;pf=&fun;34有以下程序:#include <stdio.h>int fint n;main{int a=3;s;s=fa;s=s+fa;printf"%d\n";s;}int fint n{static int a=1;n+=a++;return n;}程序运行后的输出结果是________..A7 B8C9 D1035有以下程序:#include <stdio.h>#define fx x*x*xmain{int a=3;s;t;s=fa+1;t=fa+1;printf"%d;%d\n";s;t;}程序运行后的输出结果是________..A10;64 B10;10C64;10 D64;6436下面结构体的定义语句中;错误的是________..Astruct ord{int x;int y;int z;};struct ord a;Bstruct ord{int x;int y;int z;}struct ord a;Cstruct ord{int x;int y;int z;}a;Dstruct{int x;int y;int z;a;37设有定义:char*c;;以下选项中能够使字符型指针c正确指向一个字符串的是________..Achar str="string";c=str;Bscanf"%s";c;Cc=getchar;D*c="string";38有以下程序:#include<stdio.h>#include<string.h>struct A{int a;char b10;double c;};struct A fstruct A t;main{struct A a={1001;"ZhangDa";1098.0;a=fa; printf"%d;%s;%6.1f\n";a.a;a.b;a.c;}struct A fstruct A t{t.a=1002;strcpyt.b;"changRong";t.c=1202.0;return t;}程序运行后的输出结果是________..A1001;ZhangDa;1098.0B1002;ZhangDa;1202.0C1001;ChangRong;1098.0D1002;ChangRong;1202.039若有以下程序段:int r=8;printf"%d\n";r>>1;输出结果是________..A16 B8C4 D240下列关于C语言文件的叙述中正确的是________..A文件由一系列数据依次排列组成;只能构成二进制文件B文件由结构序列组成;可以构成二进制文件或文本文件C文件由数据序列组成;可以构成二进制文件或文本文件D文件由字符序列组成;其类型只能是文本文件二、填空题请将每一个空的正确答案写在答题卡序号的横线上;答在试卷上不给分..1某二叉树有5个度为2的结点以及3个度为1的结点;则该二叉树中共有__1__个结点..2程序流程图中的菱形框表示的是__2__..3软件开发过程主要分为需求分析、设计、编码与测试四个阶段;其中__3__ 阶段产生"软件需求规格说明书"..4在数据库技术中;实体集之间的联系可以是一对一或一对多或多对多的;那么"学生"和"可选课程"的联系为__4__..5人员基本信息一般包括:身份证号;姓名;性别;年龄等..其中可以作为主关键字是__5__..6若有定义语句:int a=5;;则表达式:a++的值是__6__..7若有语句double x=17;int y;;当执行y=intx/5%2;之后y的值为__7__..8以下程序运行后的输出结果是__8__..#include <stdio.h>main{int x=20;printf"%d";0<x<20;printf"%d\n";0<x&&x<20;}9以下程序运行后的输出结果是__9__..#include <stdio.h>main{int a=1;b=7;do{b=b/2; a+=b;} whileb>1;printf"%d\n";a;}10有以下程序:#include<stdio.h>main{int f;fl;f2;i;f1=0;f2=1;printf"%d%d";f1;f2;for i=3;i<=5;i++{ f=f1+f2;printf"%d";f;f1=f2;f2=f;}printf"\n";}程序运行后的输出结果是__10__..11有以下程序:#include <stdio.h>int a=5;void funint b{int a=10;a+=b;printf"%d";a;}main{int c=20;func;a+=c;printf"%d\n";a;}程序运行后的输出结果是__11__..12设有定义:struct person{int ID;char name12;}p;请将scanf"%d";__12__;语句补充完整;使其能够为结构体变量p的成员ID正确读入数据..13有以下程序:#include <stdio.h>main{char a20="How are you";b20;scanf"%s";b;printf"%s %s\n";a;b;}程序运行时从键盘输入:How are you<回车>则输出结果为__13__..14有以下程序:#include <stdio.h>typedef struct{int num;double s;}REC;void funlREC x{x.num=23;x.s=88.5;}main{REC a={16;90.0;fun1a;printf"%d\n";a.num;}程序运行后的输出结果是__14__..15有以下程序:#include <stdio.h>funint x{ifx/2>0 funx/2;printf"%d.";x;}main{fun6;printf"\n";}程序运行后的输出结果是__15__..一、选择题1C解析根据数据结构中各数据元素之间前后关系的复杂程度;一般将数据结构分为两大类型:线性结构与非线性结构..线性结构表示数据元素之间为一对一的关系;非线性结构表示数据元素之间为一对多或者多对一的关系..根据各种结构的定义知二叉树是一种非线性结构..2B解析栈是限定只在一端进行插入与删除的线性表;通常称插入、删除的这一端为栈顶;另一端为栈底..栈顶元素总是后被插入的元素;也是最先被删除的元素;栈底元素总是最先被插入的元素;也是最后才能被删除的元素..栈是按照"先进后出"或"后进先出"的原则组织数据的..3D解析循环队列是将顺序队列首尾相连形成的;随着插入元素或删除元素的进行;其队头指针及队尾指针是在不断变化的;有时可能会出现队头指针大于队尾指针的情况;也可能是队尾指针大于队头指针;故答案为D..4A解析算法的空间复杂度是指:算法执行过程中所需的存储空间..一个算法所占用的存储空间包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间..5B解析模块划分应考虑的因素包括模块之间的耦合和内聚..一般来说;要求模块之间的耦合尽可能地低;即模块尽可能独立;要求模块的内聚程度尽可能地高;即遵循高内聚、低耦合的原则..6A解析模块化、自顶向下、逐步求精都是结构化程序设计的原则;可封装是面向对象程序设计原则..7C解析N-S图是由若干基本框图构成的流程图;其特点是没有流程线;PAD图即问题分析图Problem Analysis Diagram;它是一种由左往右展开的二维树形结构;程序流程图用于描述问题解决的过程和步骤;其中方框表示处理步骤;菱形框表示逻辑判断;箭头表示控制流向;E-R图即实体-联系图Entity Relationship Diagram;用来描述现实世界的概念模型;构成元素有实体、属性和联系;分别用矩形、椭圆形和菱形表示..本题答案为C..8B解析数据库管理系统是指位于用户与操作系统之间的数据管理软件..数据库管理系统是为数据库建立、使用和维护而配置的软件..9C解析E-R图中用矩形表示实体等同于表;用椭圆形表示实体的属性等同于表中字段;用菱形表示实体关系等同于外键..10D解析两个相同结构关系的并是由属于这两个关系的元组组成的集合..11D解析程序设计通常分为问题建模、算法设计、编写代码和编译调试四个阶段..所以选项A、B、C说法都不完整..12C解析C语言的标识符命名规则为:①只能由字母、数值和下划线3种字符组成;②第一个字符必须是字母或下划线;③不能与C语言中的关键字或保留字相同..13A解析标识符不能与C编译系统已经预定义的、具有特殊用途的保留标识符即关键字同名;否则程序在编译时会出现错误..题目源程序中使用了已经预定义的关键字case;所以将出现错误.. 14B解析intdouble9/2的值为4;9%2的值为1;因此intdouble9/2-9%2的值为3..15B解析x-=x+x可化为:x=x-x+x;由于x初始值为10;所以计算后;x=10-20=-10;因此选B..16D解析执行第一个printf语句时;b=a+b=1;所以输出1;执行第二个printf语句时;a=2*b=2;所以输出结果为2..17C解析逗号表达式的求解过程是:按表达式顺序从左往右依次求解..本题中由于判断条件a>b 的值为假;所以选项A、B、D中if语句后面的语句均未被执行;而C中的后两条语句a=b和b=c被执行;因此选项C的执行效果与其他三个不同..18A解析第一次循环时;k=1;在switch语句中;先执行default后面的语句;即c=c+k=1;因为没有break语句;所以不会跳出switch结构;会接着执行case2后面的语句;即c=c+1=2;然后跳出switch;第二次循环时;k=2;直接执行case2后面的语句;即c=c+1=3;然后跳出switch语句;结束循环;执行输出语句..19A解析表达式k=a>b b>c1∶0∶0表示:如果a>b条件为真;则k取值b>c1∶0;否则k取值0;当a>b 的情况下;如果b>c;则k值为1;否则为0..所以该表达式与选项A功能相同..20B解析在字符串数组si中;只有当下标i=3和i=4时;才满足if条件;所以n的值从0增加两次;结果为2..21D解析本题考查逻辑运算符的"短路"现象;由于k的值为0;表达式首先去求k++的值;因为表达式k++的值为0;系统完全可以确定逻辑表达式的运算结果总是为0;因此将跳过n++>2;不再对它进行求值;即k的值加1;n的值不变..22C解析aa是字符串;不用加上单引号..23A解析c1输出字符的ASCII码比字母A大4;即字母E;c2以十进制数字形式输出;因此可以判断本题答案为A..24C解析程序运行后;首先输出的是p的值;然后输出a的值..p=d++;得到p的值为d的初始值2;a 的值不变;仍为1..25D解析对max赋初值;应该放在循环语句之前;不然每次循环都将是从MIN开始比较..26B解析m和n的值不变;输出结果为1;2..指针*p和*q交换了指向的位置;即*p=&n;*q=&m;输出结果分别为2;1..27A解析直接将二维数组a赋给p不合法;两者类型不匹配..28C解析可以将二维数组str看成是一个特殊的一维数组;其元素也是一个数组..那么;str0为"One*World";str1为"One*Dream"..29C解析第一次循环;i=0;i%2=0;a0%2=0;a0=a0+1=3;第二次循环;i=1;1%2=1;a1=0;第三次循环;i=2;a2%2=1;a2=a2-1=4;第四次循环;i=3;i%2=1;a3=0..30B解析strlen用来返回字符串的长度;而sizeof返回的是一个对象或者类型所占的内存字节数;即数组所占的内存..31D解析字符数组中的内容既可以是字符;也可以是字符串;选项D说法不正确..32A解析表达式*b=*a是将a所指的字符赋给b所指的空间;然后;指针a和b依次后移;直到到达指针a所指字符串的结尾..33A解析函数指针的定义形式是:数据类型标识符*指针变量名..void*pf定义了一个没有返回值的函数指针pf;在给函数指针变量赋值时;只需给出函数名而不必给出参数..所以给pf赋值时;只把函数名fun赋给pf即可..所以正确答案为选项A..34C解析s=fa表达式第一次调用fn函数时;fn函数运行结果为n=4;a=2;即s等于4;s=s+fa表达式第二次调用fn函数时;fn函数运行结果为n=5;所以得到s值为9..35A解析s=fa+1=a+1*a+1*a+1=10;s=fa+1=a+1*a+1*a+1=64..36B解析定义结构体变量有三种方式:①先声明结构体类型;再定义变量名;如选项A所示;②在声明类型的同时定义变量;如选项C所示;③直接定义结构体类型变量;如选项D所示..37A解析选项B、D中;没有为字符串分配空间;因此不能用c指向字符串..选项C中getchar函数返回一个字符;不能将字符赋给字符指针c..选项A中首先定义了字符数组str;然后将str的首地址赋给指针c;这样就使指针c指向了字符串"string"..38D解析在主函数中;通过a=fa实现函数调用;所以输出的结构体变量相应变为1002;ChangRong;1202.0..39C解析8用二进制表示为1000;右移1位后为0100;即十进制4..40C解析文件由数据序列组成;可以构成二进制文件;也可以构成文本文件..二、填空题1114解析在二叉树中;度为0的结点数是度为2的结点数加1;故二叉树中结点数的总和为度为0的结点数、度为1的结点数及度为2的结点数三者相加;得出结果为14个结点..22逻辑判断解析绘制流程图时事实描述用椭圆形表示、行动方案用矩形表示、问题用菱形表示、箭头代表流动方向..33需求分析解析需求分析阶段的工作主要包括需求获取、需求分析、编写需求规格说明书和需求评审等四方面;产生的主要文档为软件需求规格说明书;它可以为用户、分析人员和设计人员之间的交流提供方便;直接支持目标软件系统的确认;也可以作为控制软件开发进程的依据..44多对多解析一名学生可以选择多门课程;一门课程也可以由多名学生选择;因此是多对多的联系..55身份证号解析主关键字是表中区别不同的记录的标识;在该表中只有身份证号能具有这个作用;所以用其作为主关键字..665解析a++的含义是在使用a值以后;使a值加1;所以a++的值为5..771解析y=intx/5%2=int3.4%2=3%2=1..881 0解析第一个printf语句输出的结果是逻辑表达式x>0||x<20的值;显然为真;即为1;第二个printf 语句输出的是逻辑表达式x>0&&x<20的值;该值为假;即为0..995解析第一次循环执行后;b=3;a=4;满足条件b>1;循环继续;第二次循环执行后;b=1;a=5;不满足条件b>1;结束循环..所以输出的a值为5..10100 1 123解析第一个printf语句输出结果为0 1..循环体总共循环三次;第一次循环结果为;f=1;f1=1;f2=1;第二次循环结果为f=2;f1=1;f2=2;第三次循环结果为f=3;f1=2;f2=3..11113025解析func调用函数funb;函数执行结果为a=a+b=10+20=30;调用完函数后;主函数继续执行;输出结果a=a+c=5+20=25..1212&p.ID解析结构体成员的引用通过符号"."来表示;通过scanf语句对变量进行赋值时;要用取地址符&..1313How are you How解析用%s格式输入字符串时;空格和回车都作为输入数据的分隔符;不能被读入;因此数组b的输出结果为How..141416解析主函数中;通过funl 函数将a值传递给x;但没有把形参x的值返回;此时变量a的值并没有发生变化;所以输出a.num的值为16..15151 3 6解析依次执行fun6;fun3;fun1;当执行fun6时要调用fun3;执行fun3时要调用fun1;所以输出的结果为1 3 6..。
C语言程序设计理论试题库2

《C语言程序设计》理论试题库选择题1.以下选项中属于C语言的数据类型是( )A、复数型B、逻辑型C、双精度型D、集合型2.在C语言中,不正确的int 类型的常数是( )A、32768B、0C、037D、0xAF3.设有说明语句:char a= '\72';则变量a ( )A、包含1个字符B、包含2个字符C、包含3个字符D、说明不合法4.以下所列的C语言常量中,错误的是( )A、0xFFB、1.2e0.5C、2LD、'\72'5.以下选项中合法的字符常量是( )A、"B"B、'\010'C、-268D、D6.在C语言中,合法的长整型常数是( )A、0LB、4962710C、324562&D、216D7.下列标识符中,合法的标识符是( )A、-abc1B、1abcC、_abc1D、 for8.C语言程序的基本单位是( )A、语句B、程序行C、函数D、字符9.以下叙述正确的是()A、可以把define和if定义为用户标识符B、可以把define定义为用户标识符,但不能把if定义为用户标识符C、可以把if定义为用户标识符,但不能把define定义不用户标识符D、define和if都不能定义为用户标识符10.以下叙述正确的是()A、可以把define和if定义为用户标识符B、可以把define定义为用户标识符,但不能把if定义为用户标识符C、可以把if定义为用户标识符,但不能把define定义为用户标识符D、define和if都不能定义为用户标识符11.有如下程序long fib(int n){ if(n>2) return(fib(n-1)+fib(n-2));else return(2);}main( ){printf("%d\n",fib(3));该程序的输出结果是()A、2B、 4C、 6D、8 17.以下程序的输出结果是()A、 0B、 29C、 31D、无定值fun(int x,int y,int z){ z=x*x+y*y;}main( ){ int a=31;fun(5,2,a);printf("%d",a);}18.当调用函数时,实参是一个数组名,则向函数传送的是()A、数组的长度B、数组的首地址C、数组每一个元素的地址D、数组每个元素中的值19.以下只有在使用时才为该类型变量分配内存的存储类说明是()A、auto和staticB、auto和registerC、register和staticD、extern和register20.以下程序的输出结果是()A、1B、2C、3D、4long fun( int n){ long s;if(n= =1 || n= =2) s=2;else s=n-fun(n-1)return s;}main( ){ printf("%ld\n",fun(3)); }21.以下程序的输出结果是()main( ){ int num= 0;while(num<=2){ num++;printf("%d\n",num);}}A、 1B、1C、1D、l2 2 23 3422.以下程序的输出结果是()int f( ){static int i=0;int s=1;s+=i;i++;return s;}main( ){int i,a=0;for(i=0;i<5;i++) a+=f();printf("%d\n",a);}A、20B、24C、25D、1523.以下程序的输出结果是()f(int b[ ],int m,int n){int i,s=0;for(i=m;i<n;i=i+2) s=s+b[i];return s;}main( ){int x,a[ ]={1,2,3,4,5,6,7,8,9};x=f(a,3,7);printf("%d\n",x);}A、10B、18C、8D、1524.下列程序执行后的输出结果是()A、GB、HC、ID、Jmain( ){int x='f';printf("%c \n",'A'+(x-'a'+1));}25.下列程序执行后的输出结果是()A、-32767B、FFFEC、-1D、-32768main( ){int x=0xFFFF;printf("%d \n",x--);}26.语句printf("a\bre\'hi\'y\\\bou\n");的输出结果是()A、a\bre\'hi\'y\\\bouB、a\bre\'hi\'y\bouC、re'hi'youD、abre'hi'y\bou (说明:'\b'是退格符) 27.有如下程序main( ){int y=3,x=3,z=1;printf("%d %d\n",(++x,y++),z+2);}运行该程序的输出结果是()A、3 4B、4 2C、4 3D、3 328.若变量已正确说明为float类型,要通过语句scanf("%f %f %f ",&a,&b,&c);给a 赋于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是:()A、10<回车>22<回车> 33<回车>B、10.0,22.0,33.0<回车>C、10.0<回车>22.0 33.0<回车>D、10 22<回车> 33<回车>29.x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是()A、INPUT x、y、z;B、scanf("%d%d%d",&x,&y,&z);C、scanf("%d%d%d",x,y,z);D、read("%d%d%d",&x,&y,&z);30.以下程序段的输出结果是()int a=1234;printf("%2d\n",a);A、12B、34C、1234D、提示出错、无结果31.设int b=2;表达式(b>>2)/(b>>1)的值是()A、0B、2C、4D、832.有如下定义()struct person{char name[9]; int age;};struct person class[10]={ "Johu",17,"Paul",19,"Mary",18,"Adam",16};根据上述定义,能输出字母M的语句是()A、prinft("%c\n",class[3].mane);B、pfintf("%c\n",class[3].name[1]);C、prinft("%c\n",class[2].name[1]);D、printf("%c\n",class[2].name[0]);33.设有以下说明语句struct ex{ int x;float y;char z;}example;则下面的叙述中不正确的是()A、struct是结构体类型的关键字B、example是结构体类型名C、x,y,z都是结构体成员名D、struct ex是结构体类型名34.以下程序的输出是()A、10B、11C、51D、60struct st{ int x;int *y;} *p;int dt[4]={ 10,20,30,40 };struct st aa[4]={ 50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0]};main( ){ p=aa;printf("%d\n",++(p->x));}35.以下程序的输出结果是()main( ){char x=040;printf("%o\n",x<<1);}A、100B、80C、64D、3236.若有说明语句: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);37.以下程序的输出结果是()main( ){int a=5,b=4,c=6,d;printf("%d\n",d=a>b?(a>c?a:c):(b));}A、5B、4C、6D、不确定38.设x,y,z和k都是int 型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值( )A、4B、16C、32D、5239.当c的值不为0 时,在下列选项中能正确将c的值赋给变量a、b的是( )A、c=b=a;B、(a=c)||(b=c);C、(a=c)&&(b=c);D、a=c=b;40.能正确表示a和b同时为正或同时为负的逻辑表达式是( )A、(a>=0||b>=0)&&(a<0||b<0)B、(a>=0&&b>=0)&&(a<0&&b<0)C、(a+b>0)&&(a+b<=0)D、a*b>041.语句:printf("%d",(a=2)&&(b=-2));的输出结果是( )A、无输出B、结果不确定C、-1D、142.设有 int x=11;则表达式 (x++ * 1/3) 的值是( )A、3B、 4C、 11D、 1243.设 int x=1, y=1;表达式(!x||y--)的值是()A、0B、 1C、 2D、 -144.C语言中运算对象必须是整型的运算符是()A、%=B、/C、=D、〈=45.若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是()A、1B、2C、2.0D、2.546.若有以下程序段int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是()A、0B、0.5C、1D、247.能正确表示逻辑关系:“a》10或a《0”的C语言表达式是()A、a>=10 or a<=0B、a>=0|a<=10C、a>=10 &&a<=0D、a>=10‖a<=048.下程序的输出结果是( )A、-1 1B、0 1C、1 0D、0 0main( ){ int a= -1,b=1,k;if((++a<0)&& ! (b-- <=0)) printf("%d %d\n",a,b);elseprintf("%d %d\n",b,a);}49.若有定义: float w;int a,b;则合法的switch语句是()A、switch(w)B、switch(a){ case 1.0:printf("*\n"); { case 1 printf("*\n");case 2.0:printf("**\n"); case 2 printf("**\n");} }C、switch(b)D、switch(a+b){ case 1:printf("*\n"); { case 1:printf("*\n");default:printf("\n"); case 2:printf("**\n");case 1+2:printf("**\n"); default:printf("\n");} }50.如下程序main( ){ int x=1,a=0,b=0;switch(x){ case 0:b++;case 1:a++;case 2:a++;b++;}printf("a=%d,b=%d\n",a,b);}该程序的输出结果是()A、a=2,b=1B、a=1,b=1C、a=1,b=0D、a=2,b=251.有如下程序main( ){ float x=2.0,y;if(x<0.0) y=0.0;else if(x<10.0) y=1.0/x;else y=1.0;printf("%f\n",y);}该程序的输出结果是()A、0.000000B、0.250000C、0.500000D、1.00000052.有如下程序main( ){ int a=2,b=-1,c=2;if(a<b)if(b<0) c=0;else c++;printf("%d\n",c);}该程序的输出结果是( )53.若执行以下程序时从键盘上输入9,则输出结果是()A、11B、10C、9D、8main(){ int n;scanf("%d",&n);if(n++<10) printf("%d\n",n);else printf("%d\n",n--);}54.阅读以下程序:main( ){ int x;scanf("%d",&x);if(x--<5) printf("%d",x);else printf("%d",x++);}程序运行后,如果从键盘上输人5,则输出结果是()A、3B、4C、5D、655.以下叙述正确的是()A、do-while语句构成的循环不能用其它语句构成的循环代替。
C语言试卷2及答案

C语言试卷2及答案(总8页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--扬州大学试题纸系课程 C语言程序设计(A)卷2002—2003学年第2学期班级_________学号________姓名__________得分___________一、选择题(每题分,共30分):1、已知:char a; int b; float c; double d;则执行语句:c=a+b+c+d; 后,变量c的类型为。
A. charB. intC. floatD. double2、已有定义int x; float y; 且执行scanf(“%2d%f”,&x,&y);语句时,从第一列开始输入数据12345 67<回车>,则y的值是。
A. 无定值B.C.D.3、设有以下程序段int x=0; s=0;while (!x!=0) s+=++x;printf(“%d”,s);则。
A. 运行程序段后输出0B. 运行程序段后输出1C. 程序段中的控制表达式是非法的D. 程序段执行无限次4、若i为整型变量,则以下循环执行次数是。
for(i=2; i==0;) printf(“%d”, i--);A. 无限次B. 2次C. 1次次5、假设char ch=’a’, *p=&ch;,以下语句中,有语法错误的是 .A. (*p)++;B. ch+=—‘a’+’A’;C. toupper(ch)=ch;D. ch++;6、若说明:char *language[ ]={“VFP”,”C”,”VB”,”VC”,”JAVA”};则language[2]的值是。
A. 一个字符B. 一个地址C. 一个字符串D. 一个不定值7、C语言程序中,当调用函数时。
A. 实参和虚参可以共用存储单元B. 实参和虚参各占一个独立的存储单元C. 可以由用户指定是否共用存储单元D. 由计算机系统自动确定是否共用存储单元8、在程序中要使用语句:printf(“%s\n”, STRING);输出提示信息:“OK! ”(包括双引号),则应使用宏定义语句。
C语言程序设计试题及答案解析2

D、char=int=<long int <=float<double 答案:A 在 C 语言中(VC 环境) ,一定是长整型常数的是: ( ) A、0L B、4962710 C、0412765 D、0xa34b7fe 答案:A 若有以下定义语句 char c1=’b’, c2=’e’; printf(“%d,%c\n”,c2-c1,c2-‘a’+’A’);则输 出结果是: ( ) A、2,M B、3,E C、2,E D、输出项与相应的格式控制不一致,输出结果不 确定 答案:B 以下合法的赋值语句是: ( ) A、x=y=100 B、d--; C、 x + y D、c = int(a+b); 答案:B 设变量 t 为 int 型,下列选项中不正确的赋值语句是: ( ) A、++t; B、n1=(n2=(n3=0)); C、k=i==m; D、a=b+c=1; 答案:D 在以下一组运算符中,优先级最高的是: ( ) A、<= B、== C、% D、&& 答案:C 下列能正确表示 a≥10 或 a≤0 的关系表达式是: ( ) A、a>=10 or a<=0 B、a<=10 || a>=0 C、a>=10 || a<=0 D、a>=10 && a<=0 答案:C 下列只有当整数 x 为奇数时,其值为“真”的表达式是: ( ) A、x%2==0 B、!(x%2==0) C、(x-x/2*2)==0 D、!(x%2) 答案:B 设 a 为整型变量,不能正确表达数学关系 10<a<15 的 C 语言表达式是: ( ) A、1 0< a < 15 B、!(a<=10 || a>=15) C、a>10 && a<15 D、!(a<=10) && !(a>=15) 答案:A 已知 x=43, ch=’A’ ,y=0;则表达式(x>=y&&ch<’B’&&!y)的值是: ( ) A、0 B、语法错 C、1 D、 “假” 答案:C 表达式 17%4 /8 的值为: ( ) A、0 B、1 C、2 D、3 答案:A 语句 printf(“%d”,(a=2)&&(b= -2));的输出结果是: ( ) A、无输出 B、结果不确定 C、-1 D、1 答案:D 一个可执行的 C 程序的开始执行点是: ( ) A. 程序中的第一个语句 B. 包含文件中的第一个函数 C. 名为 main 的函数 D. 程序中的第一个函数 答案:C
《C语言程序设计》试题2及答案

二一、填空题1、C语言中普通整型变量的类型说明符为,在内存中占字节,有符号普通整型的数据范围是。
2、C语言中基本的数据类型有:、、。
3、设整型变量n的值为2,执行语句“n+=n-=n*n”后,n的值是。
4、共用体和结构体的定义格式类似,不同点是。
5、有如下输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式应是。
6、有语句:char A[ ]={”I am a student”};该字符串的长度是,A[3]= 。
7、符号”a”和’a’的区别。
8、下列程序的输出结果是。
int ast(int x,int y,int * cp,int * dp){ *cp=x+y; *dp=x-y; }main(){ int a=4,b=3,c,d;ast(a,b,&c,&d);printf("%d,%d/n",c,d); }二、选择题1、以下选项中属于C语言的数据类型是(B )。
A. 复合型B. 双精度型C. 逻辑型D. 集合型2、以下说法中正确的是( C )。
A. C语言程序总是从第一个的函数开始执行B. 在C语言程序中,要调用的函数必须在main()函数中定义C. C语言程序总是从main()函数开始执行D. C语言程序中的main()函数必须放在程序的开始部分3、选出下列标识符中不是合法的标识符的是( D )。
A. hot_doB. cat1C. _priD. 2ab4、下列描述中不正确的是( C )。
A.字符型数组中可能存放字符串。
B.可以对字符型数组进行整体输入、输出。
C.可以对整型数组进行整体输入、输出。
D.不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值。
5、若已定义:int a[9], *p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式为( C )。
(完整版)C语言程序设计试卷及参考答案

《C语言程序设计》期末考试模拟试卷及参考答案(B)2012.6.5整理一、选择题(每题2分,共30分)1、# include 〈stdio.h〉的结果是______void main ( ){ int a[3][3]={1,2,3,4,5,6,7,8,9};int s=0,i;for (i=0;i〈3;i++)s+=(*(a+i))[i];printf("%d",s);}A.9 B。
12 C.14 D。
15参考答案—D2、设有说明语句:char a= ’\123abc';则变量a __________A. 包含7个字符B.包含6个字符 C。
包含5个字符 D。
包含4个字符参考答案-D 3、有以下程序段int k=0while(k=1)k++;while 循环执行的次数是_____A。
无限次B。
有语法错,不能执行 C。
一次也不执行D。
执行1次参考答案—A4、在C语言中,_____。
A。
函数定义可以嵌套,但函数调用不能嵌套 B。
函数定义不可以嵌套,但函数调用可以嵌套C.函数定义和调用均不能嵌套 D.函数定义和调用均可以嵌套参考答案—B 5、以下叙述正确的是________A)do—while语句构成的循环不能用其它语句构成的循环代替.B)do-while语句构成的循环只能用break语句退出。
C)用do—while语句构成的循环,在while后的表达式为非零时结束循环.D)用do—while语句构成的循环,在while后的表达式为零时结束循环。
参考答案—D 6、以下关于函数叙述中,正确的是。
A。
在函数体中可以直接引用另一个函数中声明为static类别的局部变量的值B.在函数体中至少必须有一个return 语句C.在函数体中可以定义另一个函数D。
在函数体中可以调用函数自身参考答案—D 7、以下数组声明语句中正确的是。
A。
int a,a[n]; B。
int a[]; C. int a[2][3]={{1},{2},{3}}; D.int a[][3]={{1},{2},{3}};参考答案—C8、以下不能正确进行字符串赋初值的语句是________A。
C语言模拟试题II

《C语言程序设计教程实验与练习》(第二版)模拟试题II及答案一、单项选择题(每题2分,30道题,共60分)1.下面的程序将输出:main(){float f;int x=1,y=;f=x/y;printf("f=%,y=%#X", f, y );}= , y=2 = , y=0X2 = , y=0X2 = , y=22.下面的程序将输出:#include ""main(){int len;char str[]="a\b\04235\0";len=strlen(str);printf("%d",len);}A. 10B. 5C. 6D. 73.下面的程序将输出: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! ");}}is one. is two. way! is 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]);}3 4 1 0 3 4 1 0 3 4 0 0 3 4 0 05.已知有下面两个变量,将数组a的第2个单元赋值为1的C语句是:int a[10];int *p;p=a;[2]=1; [1]=1; C.*(p++)=1; D.*(++a)=1;6.下面程序将输出:void add(int a){a++;return;}main(){int k;k=;add(k);printf("%d",k);}A. B. C. 3 D. 47.下列循环结构中,不是..无限循环的是: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列的正确引用是:[2][2] [5] [5] [1][1]9.已知:int (*p)[20]; 且p的值是0X5000,请问表达式p+2的值是多少?A. 0X5050B. 0X5002C. 0X5004D. 0X504010.若有说明int a[2][2];那么,下面正确的C赋值语句是:=2; [1]=2; [1]={1,2}; [0][1]=a[1][0];11.设x为int型变量,则执行以下语句后,x的值为x=10; x+=x-=x-x;A.10 B.20 C.40 D.3012.已知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 和_____的值相同.A.(a+6) B.*(&a[0]+6) C.a[2][2] D.*(&a[0][0]+6) 15.设有以下说明和定义:typedef union { long i; int k[4]; char c; }DATE;struct date { int cat; DATE cow; double dog; } too;DATE max;则下列语句的执行结果是printf ("%d",sizeof (struct date ) +sizeof(max));A.26 B.30 C.18 D.816.设有如下定义:int *(*ptr)();则以下叙述中正确的是A.ptr是指向一维组数的指针变量B.ptr是指向int型数据的指针变量C.ptr是指向函数的指针,该函数返回一个int型数据D.ptr是指向函数的指针,该函数的返回值是指向int型数据的指针17.若二维数组a 有m列,则在a[i][j]之前的元素个数为______A.j*m+i B.i*m+j C. i*m+j-1 D.i*m+j+118.以下程序运行后,输出结果是A.13 B.51 C.11 D.53int d=1;fun (int p){int d=5;p=d;printf("%d",p);}main(){int a=3;fun(a);d=a;printf("%d\n",d);}19.以下程序运行后,如果从键盘上输入ABCDE<回车>,则输出结果为A.4 B.7 C.6 D.5#include<>#include<>func(char str[ ] ){ int num =0;while(*(str+num)!='\0') num++;return(num);}main( ){char str[10],*p=str;gets(p); printf("%d\n",func(p));}20.执行以下程序段后,m的值为int a[2][3]={ {1,2,3},{4,5,6} };int m,*p;p=&a[0][0];m=(*p)*(*(p+2))*(*(p+4));A.15 B.14 C.13 D.1221.已知定义了两个结构体变量,下面是正确的语句是:struct {int x; char name[10]; float mark;} S1,S2;A. S1={5, ”yang”, };B. S1=S2;C. = ; = ; =;D. strcpy(S1,S2);22.下面这段程序运行的结果是:int a=0x4145;char *p;p=(char *)&a;*p+=1;printf(“%X” , *p);A. 46B. 4223.下面这段程序运行的结果是:char str[ ]=”%#X”;int a=50;printf(str,a++);D.有语法错24.下面哪个语句是函数的原型声明A. int (*f)(int a , int b);B. int f(int a , 5);C. int f(int a , int b);D. int f(int a=5, int b=6);25.已知int a=0XF11F , b; 执行完下面的操作后,a的值是多少?b=(a&0xFF00)>>4;A. 0X0FF1B. 0XF11F D. 0XFFF126.有以下程序:int a=2;int f(int *a){return (*a)++;}main( ){ int s=0;{ int a=5;s+=f(&a);}s+=f(&a);printf("%d\n",s);}执行后输出结果是。
C语言程序设计试题

(答案直接填写在试卷上)一、选择题(每题2分,共50分)1. 在C 语言中,字符型数据在内存中是以( )形式存放的。
A.原码B.BCD 码C.反码D.ASCII 码 2. 若有以下类型说明语句 char w; int x; float y; double z;则表达式 w*x+z-y 的结果是()类型。
A.float B.char C.int D.double 3. 语句 char s='\092';的作用是( )A.s 包含1个字符B.说明不合法, s 的值不定。
C.使 s 包含4个字符D.使 s 包含3个字符 4. 在C 语言中,int, char, 和short 三种类型数据所占用的内存( ) A.均为2个字节 B.由用户自己定义 C.由所用机器的机器字长决定 D.是任意的 5. 以下()是不正确的转义字符。
A.'\\' B.'\' C.'081' D.'\0' 6. 以下述叙不正确的是( )A.一个C 源程序可以由一个或多个函数组成B.一个C 源程序必须包含一个main 函数C.C 程序的基本组成单位是函数D.在C 程序中注释说明只能位于一条语句的后面 7. 一个C 程序的执行是从( )A.本程序的main 函数开始,到main 函数结束B.本程序文件的第一个函数开始,到本程序的最后一个函数结束C.本程序的main 函数开始,到本程序的最后一个函数结束D.本程序文件的第一个函数开始,到本程序main 函数结束 8. 若i, j 已定义为int 类型,则以下程序段中内循环体的总的执行次数是( )for (i=5; i; i--)for(j=0; j<4; j++) {...}A. 20B. 25C. 24D. 309. 若数组名作实参而指针变量作形参,函数调用实参传给形参的是 ( ) A.数组的长度 B.数组第一个元素的值 C.数组所有元素的值 D.数组第一个元素的地址10.若变量已正确定义并赋值,下面符合C 语言语法的表达式是( ) A. a:=b+1 B. a=b=c+2 C. int 18.5%3 D. a=a+7=c+b11. 有如下程序 main( ) { int y=3,x=3,z=1; printf(“%d %d \n”,(++x,y++),z+2);}运行该程序的输出结果是( ) A. 3 4 B. 4 2 C. 4 3 D. 3 3 12. 有如下程序 int main( ) { int x=1, a=0, b=0; switch(x) { case 0: b++; case 1: a++;case 2: a++; b++; }printf(“a=%d,b=%d \n”,a,b); return 0; } 该程序的输出结果是( )A. a=2,b=1B. a=1,b=1C. a=1,b=0D. a=2,b=213. 有如下程序main(){ float x=2.0, y;if(x<0.0) y=0.0;else if(x<10.0) y=1.0/x;else y=1.0;printf(“%f\n”,y); }该程序的输出结果是( )A. 0.000000B. 0.250000C. 0.500000D. 1.00000014.有如下程序main ( ){ int x=23;do{ printf(“%d”,x--);} while(!x); }该程序的执行结果是( )A. 321B. 23C. 不输出任何内容D. 陷入死循环15.设有说明语句:char a=’\72’;则变量a( )A. 包含1个字符B. 包含2个字符C. 包含3个字符D. 说明不合法16. 有如下程序int func(int a,int b){ return(a+b); }main( ){ int x=2,y=5,z=8,r;r=func(func(x,y),z);printf(“%\d\n”,r); }该程序的输出的结果是( ) A. 12 B. 13 C. 14 D. 1517. 有如下程序段int *p, a=10,b=1;p=&a; a=*p+b;执行该程序段后,a的值为( )A. 12B. 11C. 10D. 编译出错18. 在C语言中,函数的隐含存储类别是( )A. autoB. staticC. externD. 无存储类别19. 有如下说明int a[10]={1,2,3,4,5,6,7,8,9,10}, *p=a;则数值为9的表达式是( )A. *p+9B. *(p+8)C. *p+=9D. p+820.函数调用strcat(strcpy(str1,str2),str3)的功能是( )A. 将串str1复制到串str2中后再连接到串str3之后B. 将串str1连接到串str2之后再复制到串str3之后C. 将串str2复制到串str1中后再将串str3连接到串str1之后D. 将串str2连接到串str1之后再将串str1复制到串str3中21.有如下程序,输出的结果()#include<stdio.h>int main(){int i,j,x=0;for(i=0;i<=2;i++){x++;for(j=0;j<3;j++){if(j%2)continue;x++;}x++;}x++;printf(“%d\n”,x)return 0;}A. 12B.13C.14D.722. 该源程序执行后,屏幕上显示()void main(){int a;float b;a=4;b=9.5;printf("a=%d,b=%4.2f\n",a,b);}A. a=%d,b=%f\nB. a=%d,b=%fC. a=4,b=9.50D. a=4,b=9.523.已知有共用体变量data1定义如下:union data{ int i;char ch;float f;} data1; 则变量data1所占的内存存储空间可表示为()A. size of(int) B. size of(char) C. size of(float)D. size of(int)+size of(char)+size of(float)24. 下面语句执行完后,b的值为。
C语言程序设计试题2

C语言程序设计试题2一、单项选择题(每题2分,共40分)1.以下叙述中正确的是。
A。
C语言系统以函数为单位编译源程序B.main函数必须放在程序开始C。
用户定义的函数可以被一个或多个函数调用任意多次D.在一个函数体内可以定义另外一个函数2.以下选项中,不能用作c语言标识符的是A.printB.FOR C。
&a D。
_003.对于以下程序片段,描述正确的是.int x = -1;do{x = x * x;}while(!x);A。
是死循环B。
循环执行两次C.循环执行一次D。
有语法错误4.已知有声明”int a=3,b=4,c=5;”,以下表达式中值为0的是。
A。
a&&b B.a<=b C.a||b&&c D。
!(!c||1)5.已知有声明"long x,y;"且x中整数的十进制表示有n位数字(4<n<10),若要求去掉整数x 十进制表示中的最高位,用剩下的数字组成一个新的整数并保存到y中,则以下表达式中能正确实现这一功能的是。
A.y=x/(10*(n—1))B.y=x%(10*(n-1))C.y=x%(long)pow(10,n—1)D.y=x%(10^(n-1))6。
已知有声明”int x,y;",若要求编写一段程序实现"当x大于等于0时y取值1,否则Y 取值-1”,则以下程序段中错误的是。
A.if(x〉=0)y=1;else y=-1;B。
y=x>=0?1:—1;C.switch()D.switch(x-abs(x)){case x〉=0:y=1;break; {case 0:y=1;break;default:y=—1; default:y=—1;}}7。
已知有声明"int m[]={5,4,3,2,1},i=0;”,下列对m数组元素的引用中,错误是.A。
m[++i] B.m[5]C。
m[2*2] D。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
若有说明语句:char c='\72';则变量c()。
A.说明不合法,c的值不确定B.包含2个字符C.包含3个字符D.包含1个字符以下程序的输出结果是main(){ int a = 2, b =5;printf(“a=%%d,b=%%d\n”,a, b);}A.a=%2,b=%5B.a=%%d,b=%%dC.a=%d,b=%dD.a=2,b=5若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是()。
A.函数调用可以出现在表达式中B.函数调用可以作为独立的语句存在C.函数调用可以作为一个函数的实参D.函数调用可以作为一个函数的形参以下语句中,不能实现回车换行的是()。
A.fprintf(stdout,"\n");B.fwrite("\n",1,1,stdout);C.printf("\n");D.putchar("\n");下列程序的输出结果为()。
main(){int m=7,n=4;float a=38.4,b=6.4,x;x=m/2+n*a/b+1/2;printf("%f\n",x);}A.28.000000B.27.500000C.28.500000D.27.000000以下运算符中,优先级最高的运算符是()。
A.==B.||C.!D.%已知ch是字符变量,以下不正确的赋值语句是()A.ch='b';B.ch="b";C.ch='\x61'+3;D.ch='\141';若有int w=12;,对以下程序段,描述正确的是(). while(w=0) w=w-1;A.循环是无限循环B.循环体执行了10次C.循环体语句执行了一次D.循环体语句一次也不执行以下不正确的if语句形式是()。
A.if(x!=y) scanf("%d",&x); else scanf("%d",&y);B.if(x>y&&x!=y);C.if(x==y) x+=y;D.if(x<y) {x++;y++;}下列字符序列中,是C语言保留字的是()。
A.includeB.sizeofC.sqrtD.scanf以下数据中,不正确的数值或字符常量是()。
A.8.9e1.2B.82.5C.0xff00D.10以下程序的输出结果是main(){ int i =2, p;p = f(i, i + 1);printf(“%d”, p);}int f(int a, int b){ int c;c = a;if(a > b) c = 1;else if(a == b) c = 0;else c = -1;return ( c );}A.-1B.1D.0一个C程序的执行是从()。
A.本程序文件的第一个函数开始,到本程序main函数结束B.本程序的main函数开始,到main函数结束C.本程序的main函数开始,到本程序文件的最后一个函数结束D.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束下面判断正确的是()。
A.char *a="china";等价于 char *a;*a="china";B.char str[10]={"china"};等价于charstr[10];str[]={"china"};C.char c[4]="abc",d[4]="abc";等价于 charc[4]=d[4]="abc";D.char *s="china";等价于 char *s;s="china";以下所列的函数定义中,正确的是()A.void play(a as int,b as int)B.void play(int a,int b)C.void play(a:int,b:int)D.void play(int a,b)若有int a[][]={{1,2},{3,4}}; 则*(a+1),*(*a+1)的含义分别为()。
A.&a[0][1],3B.非法,2C.&a[1][0],2D.a[0][0],4以下叙述中正确的是A.C语言的每条可执行语句最终都将被转换成二进制的机器指B.C语言的函数不可以单独进行编译C.C语言的源程序不必通过编译就可以直接运行D.C语言的源程序经编译形成的二进制代码可以直接运行以下程序的输出结果为()。
main(){int a=1,b=2,c=3,d=4,e=5;printf("%d\n",func((a+b,b+c,c+a),(d+e)));}int func(int x,int y){return(x+y);}A.15B.9C.函数调用出错D.13设有以下语句, 若0<k<4,下列选项中对字符串的非法引用是()。
char str[4][2]={"aaa","bbb","ccc","ddd"},*strp[4];int j;for (j=0;j<4;j++)strp[j]=str[j];A.*strpB.strp[k]C.str[k]D.strp对用C语言编写的代码程序,以下叙述中哪个是正确的A.是一个源程序B.可立即执行C.经过编译解释才能执行D.经过编译即可执行一个算法应该具有“确定性”等五个特性,下面对另外4个特性的描述中错误的是A.可行性B.有穷性C.有零个或多个输出D.有零个或多个输入设变量定义为"int a, b;",执行下列语句时,输入_____,则a和b 的值都是10.scanf("a=%d, b=%d",&a, &b);A.a=10 b=10B.10 10C.10, 10D.a=10, b=10以下叙述不正确的是()。
A.C程序的基本组成单位是函数B.在C程序中,注释说明只能位于一条语句的后面C.一个C源程序必须包含一个main函数D.一个C源程序可由一个或多个函数组成若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是()。
A.3B.4C.无确定值D.2C语言的if语句嵌套时,if与else的配对关系是()。
A.每个else总是与它上面的最近的if配对B.每个else总是与最外层的if配对C.每个else总是与它上面的if配对D.每个else与if的配对是任意的函数的形式参数隐含的存储类型说明是()。
A.staticB.registerC.externD.auto若想将一个字符数组a的内容存入另一个字符数组b中,下列正确的是:A.strcat(b,a);B.b=a;C.strcpy(b,a);D.strcpy(a,b);以下叙述不正确的是()。
A.在C程序中,注释说明只能位于一条语句的后面B.一个C源程序必须包含一个main函数C.一个C源程序可由一个或多个函数组成D.C程序的基本组成单位是函数以下程序的输出结果是main(){ int x, i;for(i = 1; i <= 100; i++){ x = i;if( ++x % 2 == 0)if( ++x % 3 == 0 )if( ++x % 7 == 0)printf(“%d “, x);}printf(“\n”);}若int a=2,则执行完表达式a-=a+=a*a后,a的值是A.0B.-2C.-8D.-4参加位运算的数据可以是任何类型的数据。
f十进制数15的二进制数是1111. t语句scanf("%7.2f",&a);是一个合法的scanf函数。
f若有定义和语句:int a;char c;float f;scanf("%d,%c,%f",&a,&c,&f);若通过键盘输入:10,A,12.5,则a=10,c='A',f=12.5. t在C语言中,函数的隐含存储类别是auto. f参加位运算的数据可以是任何类型的数据。
f如果想使一个数组中全部元素的值为0,可以写成 fint a[10]={0*10};while和do…while循环不论什么条件下它们的结果都是相同的. f若有定义:int a=15,b=240;则表达式((a&b)&b||b)的结果为1。
t如果想使一个数组中全部元素的值为0,可以写成int a[10]={0*10}; t/*------------------------------------------------ 【程序设计】--------------------------------------------------功能:输入一个字符串,过滤此串,只保留串中的字母字符,并统计新生成串中包含的字母个数。
例如:输入的字符串为ab234$df4,新生成的串为abdf 。
------------------------------------------------*/#include <stdio.h>#include <conio.h>#define N 80void bky();fun(char *ptr){/**********Begin**********//********** End **********/}main(){char str[N];int s;printf("input a string:");gets(str);printf("The origINal string is :"); puts(str);s=fun(str);printf("The new string is :");puts(str);printf("There are %d char IN the new string.",s);bky();}void bky(){FILE *IN,*OUT;char sin[N];int iOUT;IN=fopen("in.dat","r");if(IN==NULL){printf("Please Verify The Currernt Dir..it May Be Changed");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("Please Verify The Current Dir.. it May BeChanged");}fscanf(IN,"%s",sin);iOUT=fun(sin);fprintf(OUT,"%d %s\n",iOUT,sin);fclose(IN);fclose(OUT);}【参考代码】int i,j;for(i=0,j=0;*(ptr+i)!='\0';i++)if(*(ptr+i)<='z'&& *(ptr+i)>='a'||*(ptr+i)<='Z' &&*(ptr+i)>='A'){*(ptr+j)=*(ptr+i);j++;}*(ptr+j)='\0';return(j);===============【考生代码】/*------------------------------------------------------【程序改错】--------------------------------------------------------功能:编制统计营业员一天的营业额的程序,设程序采用一个循环实现,每次循环输入一笔交易金额并累计营业额。