北华航天工业学院c语言期末考试

合集下载

北航2012年8系c语言期末考试题

北航2012年8系c语言期末考试题

生 printf ( "\nThe number of hours is %d", hrs );
printf ("\nThe number of minutes is %d", mns ); printf ( "\nThe number of seconds is %d\n", scs );
return 0; }
航int main() { int hrs = 0, mns = 0, scs = 0;
本int seconds;
printf ( "Enter a number of seconds: " );
科 scanf ( "%d", &seconds );
time(seconds, &hrs, &mns, &scs);
7. 在 switch 语句当中,如果忘记使用 break 命令,则从符合条件的 case 语句开始,
所有的 case 语句都会被执行。
8. break 语句只能用于 switch 和 while 循环当中。
9. 伪随机数并不是真正的随机数,但是对于刻划大多数的随机问题而言已经足够
A
满足要求。
10. 在 C 语言当中,函数不能被嵌套在另一个函数当中声明。
8. 下列哪个语句可以生成 1 到 N 之间的随机整数
试 A. 1+(int) rand()/N
C. (int) rand()/N
B. 1+(int) rand()%N
D. (int) rand()%N
9. 下列哪个字符串初始化语句是正确的?
A. char code[3]={„s‟,‟a‟,‟m‟,‟i‟}; B. char code[]={„s‟,‟a‟,‟m‟,‟i‟};

北京航空航天大学《C语言程序设计》试卷

北京航空航天大学《C语言程序设计》试卷

北京航空航天大学《C语言程序设计》课程考试试卷注意事项: 1、本试卷满分100分;考试时间:90分钟;考试形式:开卷2、请将答案一律写在答题纸上,试卷上作答无效3、考试结束后,考生将试卷及答题纸一并交回4、请将条形码贴在答题纸的指定位置学习中心______________姓名____________学号____________一、单项选择题(本大题共10小题,每小题2分,共20分)1、设有定义语句“char s[]=”123”;”,则表达式“s[3]”的值是______。

()A.' 1' B.'3'C.'\0' D.存在语法错误2、凡是函数中未指定存储类别的局部变量,其隐含的存储类别为______。

()A.自动(auto) B.静态(static)C.外部(extern) D.寄存器(register)3、已知:char w; int x; float y; double z;,则表达式w*x+z-y结果的类型是______。

()A.float B.charC.int D.double4、当声明一个结构变量时,系统分配给它的内存是______。

()A.各成员所需内存量的总和B.结构中第一个成员所需内存量C.成员中占内存量最大者所需的容量D.结构中最后一个成员所需内存量5、C语言中的简单数据类型包括______。

()A.整型、实型、逻辑型B.整型、实型、字符型C.整型、字符型、逻辑型D.整型、实型、逻辑型、字符型6、合法的数组说明语句是______。

()A.int a[]="string";B.int a[]={0,1,2,3,4,5};C.char a="string";D.char a[5]={'0','1','2','3','4','5,};7、定义int i=1;,执行语句while(i++<5);后,i的值为______。

2020c语言期末考试题库及详解答案

2020c语言期末考试题库及详解答案

2020c语言期末考试题库及详解答案一、选择题1. 下列哪个选项不是C语言的基本数据类型?A. intB. charC. doubleD. string答案:D2. 在C语言中,以下哪个运算符用于计算两个数的乘积?A. +B. -C. *D. /答案:C3. 以下哪个是C语言中的逻辑运算符?A. &&B. ||C. <=D. ==答案:A4. 在C语言中,哪个关键字用于定义函数?A. ifB. forC. whileD. void答案:D5. 在C语言中,以下哪个语句用于结束程序的执行?A. breakB. continueC. returnD. exit答案:C二、填空题1. C语言中,一个完整的程序由________和函数的实现两部分组成。

答案:函数的声明2. 在C语言中,使用________关键字可以定义一个数组。

答案:array 或者数组名[常量表达式]3. 在C语言中,________运算符用于判断两个表达式是否相等。

答案:==4. C语言中的________函数用于计算两个数的最大公约数。

答案:gcd5. 在C语言中,使用________语句可以结束当前循环体的执行,立即开始下一次循环。

答案:continue三、简答题1. 简述C语言中变量的作用域和生命周期。

答案:变量的作用域是指变量可以被访问的代码区域。

局部变量的作用域仅限于定义它的函数内部,全局变量可以在整个程序中访问。

变量的生命周期是指变量存在的时间段,局部变量的生命周期从定义时开始,到函数执行结束时结束,全局变量的生命周期从程序开始时开始,到程序结束时结束。

2. 解释C语言中的指针和引用的区别。

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

引用则是一个别名,它为已存在的变量提供了另一个名字。

指针可以被重新赋值为其他地址,而引用一旦被初始化,就不能改变它所引用的变量。

四、编程题1. 编写一个C语言程序,实现求两个整数的最大公约数。

C语言程序设计期末考试题及答案

C语言程序设计期末考试题及答案

} ;++x } ;++x ;eunitnoc )2%j(fi { )++j;3=<j;0=j(rof ;++x { )++i;2<i;0=i(rof ;0=x,j,i tni { )(niam >h.oidts< edulcni # �是果结行运的序程面下�61 } ;)d,"n\d%"(ftnirp ;++a=+d ;)a(nuf ;3=a nti { )(niam } ;)d,"d%"(ftnirp ;++p=+d ;5=d tni { )p tni( nuf ; l1=d tni 44)D 59)C 99)B 48)A 是果结出输,后行运序程下以�51 } ;)a,"n\d%"(ftnirp ;m&==1p=a ;m&=2p*,k&=1p*,6=m,4=k,a tni { )(niam 值定无 a,错出时行运)D 0)C 1)B 4)A 是值的 a 后行执序程下以�41 } ;))b+a(S,"n/fl.4%"( ftnirp ;2=b,1=a tni { )(niam x*x*tp )x(s enifid # 5.5 TP enifed # edulcni # 0.54�D 0.22�C 5.9 �B 5.94 �A 是果结出输,后行运序程下以�31 ;)2v,1v,"n\d%,d%"(ftnirp }
;)]cgra[vgra,"s%"(ftnirp )0>cgra--(elihw { ))][vgra* rahc ,cgra tni (niam HGFEDCBALKJI )D LKJIHGFEDCBA )C LHJI )B GFEDCBA )A 为果结出输则�>车回<LKJI HGFEDCBA GORP �入键下符示提 SOD 的录目在 所件文行执可此在果如�EXE.GORP 件文行执可成生后接连和译编经序程下以定假 �02 EGAUGNAl c )D EGAUGNAL C )C egaugnal c )B egaugnaL C )A �是果结行运的序程面上 } ;)c,”c%“(ftnirp fidne # ;23+c=c )’Z’=<c&&’A’=>c(fi esle # ;23-c=c )’z’=<c&&’a’=>c(fi RETTEL fi # ;++i { ’0\’=!)]i[rts=c((elihW ;0=i ;i tni ;c,”egaugnaL C”=]02[rts rahc { )(niam 0 RETTEL enifed # �序程读请�91 0)D 3)C 2)B 1 )A 为值的 n,后)d>c=n(&&)b>a=m(:式达表行执则 ;2=n,2=m,4=d,3=c,2=b,1=a tni :义定下如有设�81 } ;)p*,"n\d%"(ftnirp ;)a,p&( tuf l))tni(foezis(collam)* tni(=p ;p*,}11,9,7,5,3,1{=]3[]2[a tni { )(niam };]1[]1[p=s** { )]3[]2[p tni,s** tni( tuf 11)D 9)C 7 )B 1 )A 是果结出输,后行运序程下以�71 21=x)D 6=x)C 8=x)B 4=x )A } ;)x,”n\d%=x“(ftnirp

北航2012年C语言试题

北航2012年C语言试题

北京航空航天大学2011-2012 学年第二学期期末《C语言程序设计》考试卷班级______________学号_________姓名______________成绩_________2012年5月29日班号学号姓名成绩《C语言程序设计》期末考试卷注意事项:1、请将所有的答案和程序写在答题纸上,写在试卷纸上不得分!2、考试时间120分钟一、单项选择题(每题2分,共40分)1、以下叙述不正确的是___A) 一个C 源程序可由一个或多个函数组成B) 在C 程序中,注释说明只能位于一条语句的后面C) 程序的基本组成单位是函数D) 一个C 源程序必须包含一个main 函数2、以下叙述中正确的是A) C程序中注释部分可以出现在程序中任意合适的地方B) 花括号“{”和“}”只能作为函数体的定界符C) 构成C程序的基本单位是函数,所有函数名都可以由用户命名D) 分号是C语句之间的分隔符,不是语句的一部分3、以下表达式值为3的是________.A)16-13%10 B) 2+3/2 C) 14/3-2 D) (2+6)/(12-9)4、已知各变量的类型说明如下:int k,a,b;unsigned long w=5;double x=1.42;则以下表达式不正确的是______.A)x%(-3) B) w+=-2 C)k=(a=2,b=3,a+b) D)a+=a-=(b=4)*(a=3)5、有以下程序void main(){double d=3.2;int x,y;x=1.2;y=(x+3.8)/5.0;printf("%d\n",d*y);}程序的输出结果是____A) 3 B) 3.2 C) 0 D) 3.076、以下程序的运行结果是________.main(){int m=5,n=10;printf(“%d,%d\n”,m++,--n);}A)5,9 B) 6,9 C) 5,10 D) 6,107、能正确表示“当x的取值在[1,10]和[200,210]范围内为真,否则为假的表达式是______。

大学生C语言期末考试试题汇总

大学生C语言期末考试试题汇总

大学生C语言期末考试试题汇总第1-3章习题一、单项挑选题1C语言属于()。

A.机器语言B.低级语言C.中级语言D.高级语言2一个C程序可以包含随意多个不同名的函数,但有且仅有一个。

A.函数B.主函数C.includeD.过程3系统默认的C语言源程序扩展名为.C,需经过之后,生成.exe文件,才干运行?A.编辑?编译B.编译?衔接C.编辑?改错D.编辑?衔接4C语言程序从开头执行。

A.程序中第一条可执行语句B.程序中第一个函数C.程序中的main函数D.包含文件中的第一个函数5C语言程序是由构成的。

A.一些可执行语言B.main函数C.函数D.包含文件中的第一个函数6一个算法应具有“确定性”等5个特性,则对另外4个特性描述错误的是。

A.有效性B.有穷性C.有零个或多个输入D.有零个或多个输出7设变量a是整型,f是实型,i双精度型,则表达式10+’a’+i*f 值的数据类型。

A.intB.floatC.doubleD.不确定8在C语言中,变量所分配的内存空间大小是由。

A.均为一个字节B.由用户自己定义C.由变量的类型打算D.是随意的9执行scanf (“a=%d,b=%d”,&a,&b)语句,若要使变量a和b的值分离为3和4,则正确的输入办法为。

A. 3 ,4B.a:3 b: 4C.a=3,b=4D. 3 410在算术表达式中允许使用的括号类型是。

A.{ }B.[ ]C.( )D.以上三项皆错11存储以下数据,占用存储字节最少的是。

A. 0B. ‘0’C. “0”D. 0.012设n=10,i=4,则运算n%=i+1执行后,n 的值是。

A.0B.3C.2D.113C语言中运算对象必需是整型的运算符是。

A.%B. /C. =D.〈=14已知int x=5,y=5,z=5;执行语句x%=y+z;后,x的值是.A .0 B. 1 C. 5 D. 615若有以下类型说明语句:char w;int x;float y;double z;则表达式w-x*y/z的结果为类型A.floatB.charC.intD.double16在C语言的库函数中,可以输出char型变量x值的语句是。

C语言期末试题及答案北京卷

C语言期末试题及答案北京卷

C语言期末试题及答案北京卷一、选择题(每题2分,共20分)1. 在C语言中,下列哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 下列哪个选项是合法的C语言变量名?A. 2variableB. variable2C. intD. _variable答案:B3. 在C语言中,下列哪个选项是正确的字符串字面量?A. "Hello, World!"B. 'Hello, World!'C. "Hello, World!"D. {"Hello, World!"}答案:A4. 以下哪个函数用于将浮点数转换为字符串?A. sprintfB. printfC. scanfD. strcat答案:A5. 在C语言中,下列哪个选项表示逻辑与运算?A. &&B. ||C. !D. %答案:A6. 下列哪个选项是合法的C语言数组声明?A. int arr[10];B. int arr[] = {1, 2, 3};C. int arr = {1, 2, 3};D. int arr[3] = {1, 2, 3, 4};答案:A7. 在C语言中,下列哪个选项是正确的文件打开模式?A. "r"B. "w"C. "a"D. "b"答案:A8. 下列哪个选项是C语言中的预处理指令?A. #includeB. #defineC. #ifD. 以上都是答案:D9. 在C语言中,下列哪个关键字用于定义一个函数?A. voidB. intC. returnD. function答案:A10. 下列哪个选项是C语言中的逻辑运算符?A. ==B. &&C. ||D. 以上都是答案:D二、填空题(每题2分,共20分)1. 在C语言中,定义一个整型变量的正确语句是________。

2022年北华大学公共课《C语言》科目期末试卷A(有答案)

2022年北华大学公共课《C语言》科目期末试卷A(有答案)

2022年北华大学公共课《C语言》科目期末试卷A(有答案)一、填空题1、请读程序段:unsigned a=16;printf("%d,%d,%d\n",a>>2,a=a>>2,a);以上程序段的输出结果是_______。

2、结构化程序由________、________ 、________ 3种基本结构组成。

3、一个C语言源程序由若干函数组成,其中至少应含有一个________4、在C语言中,用“\”开头的字符序列称为转义字符。

转义字符“\n”的功能是_______;转义字符“\r”的功能是_______。

5、若有定义语句:int m=5,y=2;则执行表达式y+=y-=m*=y后的y值是_______6、下面程序段的运行结果是_______。

Char a[]="123456789",*p;inti=0;p=a;while(*p){if(i%2==0)*p='*';p++;i++;}puts(a);7、下面程序段的运行结果是_______。

x=2;do{printf("*");x--;)while(!x==0);8、已有定义int a;float b,x;char cl,c2;为使a=3、b=6.5、x=12.6、cl='a'、c2='A',正确的scanf函数调用语句是_______,数据输入的形式应为_______。

9、设有以下定义和语句,请在printf语句的_______中填上能够正确输出的变量及相应的格式说明。

union{int n;doublex;}num;num.n=10;num.x=10.5;printf("_______",_______);10、假设M为已经声明的符号常量,则定义一个具有M×M个元素的双精度型数组a,且所有元素初值为0的形式是_______。

C语言程序设计期末考试试题含答案

C语言程序设计期末考试试题含答案

C语言程序设计期末考试试题含答案一、选择题(每题 3 分,共 30 分)1、以下选项中,不是 C 语言关键字的是()A intB floatC classD char答案:C解析:在 C 语言中,class 不是关键字,int、float 和 char 都是常见的数据类型关键字。

2、以下变量定义中,正确的是()A int a=b=5;B char a='A';C float a=55, b=66;D double a; b;答案:C解析:A 选项中不能在定义时连续赋值;B 选项应该是 char a ='A';注意单引号;D 选项应该是 double a, b; 中间用逗号分隔。

3、以下程序段的输出结果是()```cint a = 5, b = 4, c = 6;if (a > b && a > c)printf("a 最大\n");else if (b > a && b > c)printf("b 最大\n");elseprintf("c 最大\n");```A a 最大B b 最大C c 最大D 编译错误答案:C解析:因为 5 不大于 6,所以执行 else 部分,输出“c 最大”。

4、以下循环语句执行的次数是()```cfor (int i = 0; i < 5; i++){printf("%d ", i);}```A 4 次B 5 次C 6 次D 无限次答案:B解析:从 0 到 4 ,一共 5 次。

5、以下数组定义中,正确的是()A int a5 ={1, 2, 3, 4, 5, 6};B int a ={1, 2, 3};C int a5 ={1, 2};D int a3 =(1, 2, 3);答案:B解析:A 选项数组长度为 5,却初始化了 6 个元素;C 选项只初始化了前两个元素,后面三个元素默认为 0;D 选项初始化方式错误,应该用花括号。

C语言程序设计期末考试题及答案教案资料

C语言程序设计期末考试题及答案教案资料

期末模拟考试题�一�
一�选择题�2’*25=50’ 1�十进制数 269 转换成十六进制数是 A)10E B)10D C)10C D)10B 2� 若 i,j 已定义为 int 类型�则以下程序段中内循环体的总的执行次数是 for (i=5;i;i--) for(j=0;j<4;j++){...} A)20 B)25 C)24 D)30 3� 若有以下定义和语句: char *s1="12345",*s2="1234"; printf("%d\n",strlen(strcpy(s1,s2))); 则输出结果是 A) 4 B)5 C)9 D)10 4� 若有以下定义和语句: int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则不能表示 a 数组元素的表达式是 A) *p B) a[10] C) *a D) a[p-a] 5�设有如下定义�int x=l�y=-1��则语句�printf("%d\n"�(x--&++y))�的输出结 果是 A)1 B)0 C)-1 D)2 6�当 c 的值不为 0 时�在下列选项中能正确将 c 的值赋给变量 a、b 的是 A)c=b=a� B)(a=c)‖(b=c)� C)(a=c)&&(b=c)� d)a=c=b� 7�以下程序的输出结果是 A)10 1 9 2 B)9 8 7 6 C)10 9 9 0 D)10 10 9 1 main( ) { int x=10�y=10�I� for(i=0�x8�y=++i) printf("%d�%d "�x--�y)� } 8� 下面程序的输出是 main() { char *s="121"; int k=0, a=0, b=0; do { k++; if(k%2==0) {a=a+s[k]-'0'; continue;} b=b+s[k]-'0'; a=a+s[k]-'0'; }while (s[k+1]); printf("k=%d a=%d b=%d\n",k,a,b); }

北航C语言期末模拟试题2021

北航C语言期末模拟试题2021

北航C语言期末模拟试题2021单选题下列关于单目运算符++、--的叙述中正确的是(D)。

A、它们的运算对象可以是int型变量,但不能是double型变量和float型变量B、它们的运算对象可以是任何变量和常量C、它们的运算对象可以是char型变量和int型变量,但不能是float型变量D、它们的运算对象可以是char型变量、int型变量和float型变量执行下列程序后,其输出结果是(D)。

main() {int a=9; a+=a-=a+a;printf(\}A、18B、-9C、9D、-18 详解:优先级:a+=(a-=(a+a)) a+a:18a-=18:此时a=-9;注意,a已经不是9,而是-9了 a+=-9:即a=a+(-9)=(-9)+(-9)=-18打印语句printf(\在屏幕上正确的输出形式是(C). A、sTUDENDS B、TUDENTS C、STUDENT D、sTUDENTS 详解:知识点:\\b表示退格; \\r表示回车,即将当前位置一道“本行”开头 sTUDEND sTUDENT STUDENT已知键盘输入a=4,b=3,下面程序输出的结果是(C). main() { int a,b,s;scanf(\ s=a;if(aprintf(\} A、9 B、13C、16D、15若给定条件表达式(m)?(a++):(a--),则其中表达式m(B)。

A、和(m==0)等价 B、和(m!=0)等价 C、和(m==1)等价 D、和(m!=1)等价注意:此处不能选C,因为“非零的数即表示真”。

如当m=2时,值为真,结果是a++;但是若选C,则结果为a--.执行语句 for(i=1;i++<4;); 后变量 i 的值是(B)。

A、3 B、5 C、4 D、不定以下描述中正确的是(C)。

A、由于 do-while 循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句B、do-while 循环中,根据情况可以省略 whileC、在 do-while 循环体中,必须有能使循环退出的操作。

北华航天工业学院试题纸

北华航天工业学院试题纸

华北航天工业学院试题课程名称:可编程器件 EDA技术与实践班级: 姓名: 学号: 成绩:一、填空题(20分)1基于可编程器件EDA技术主要包括四大要素,分别为大规模可编程器件、硬件描述语言、软件开发系统、实验开发系统。

2._______________________ 可编程器件分为 __________________________________ PLD 和—PAC 。

3.CPLD的基本结构看成由可编程逻辑宏单元、可编程I/O控制模块和可编程内部连线等三部分组成。

4.FPGA由可编程逻辑块(CLB )、可编程互连单元(I/O )和可编程互连三种可编程电路和一个SRAM结构的配置存储单元组成。

5.CPLD中的逻辑单元是大单元,适合逻辑型系统_系统;FPGA的逻辑单元是小单元,适合数据型系统系统。

6•根据数字系统的功能定义,可将整个系统划分为两个子系统:数据处理子系统和控制子系统。

7. MAX + PLUSII支持的设计输入方法有 _图形输入,波形输入,—文本输入 _。

8图形文件的扩展名是GDF _,仿真通道文件的扩展名是_SCF_,波形文件的扩展名是_WDF,使用VHDL语言,文本设计文件的扩展名是-VHD ___________________ 。

三、简答题20分(每题5分)1.设计时怎样选择CPLD和FPGA芯片?从以下几个方面进行选择:1•逻辑单元CPLD中的逻辑单元是大单元,通常其变量数约20〜28个。

FPGA逻辑单元是小单元,其输入变量数通常只有几个,2•内部互连资源与连线结构FPGA单元小、互连关系复杂,所以使用的互连方式较多。

CPLD不采用分段互连方式,它使用的是集总总线。

3.编程工艺CPLD 属于只读(ROM )型编程,可以反复编程,但它们一经编程,片内逻辑就被固定,如果数据改变就要进行重新擦写。

FPGA 芯片采用RAM 型编程,功耗低,但掉电后信息不能保存,必须与存储器联用。

C语言程序设计期末考试试题含答案

C语言程序设计期末考试试题含答案

C语言程序设计期末考试试题含答案一、选择题(每题 2 分,共 40 分)1、以下选项中,不是 C 语言关键字的是()A intB floatC charD string答案:D解释:string 不是 C 语言的关键字,C 语言中表示字符串通常使用字符数组。

2、以下能正确表示八进制整数的是()A 0o123B 0123C 0x123D 123答案:B解释:在 C 语言中,八进制整数以数字 0 开头,所以 0123 是八进制整数。

3、以下变量定义中,合法的是()A int a=b=1;B char a='\0';C float 2a;D double a&;答案:B解释:A 选项中不能连续赋值;C 选项变量名不能以数字开头;D 选项变量名不能包含特殊字符&。

4、若有定义:int a=5, b=2; 则表达式 a/b 的值是()A 25B 2C 20D 3答案:B解释:C 语言中,两个整数相除结果为整数,舍去小数部分。

5、若有定义:int a5 ={1, 2, 3, 4, 5};则 a2的值是()A 2B 3C 4D 5答案:B解释:数组下标从 0 开始,所以 a2对应的值是 3 。

6、以下关于函数的叙述中,正确的是()A 函数可以嵌套定义B 函数可以嵌套调用C 函数可以没有返回值D 以上都不对答案:C解释:函数不能嵌套定义,但可以嵌套调用。

函数可以没有返回值,此时函数类型为 void 。

7、若有以下函数定义:```cint fun(int a, int b){return a + b;}```则调用 fun(1, 2)的返回值是()A 1B 2C 3D 4答案:C解释:函数 fun 实现了两个整数的相加,所以 fun(1, 2)的返回值是3 。

8、以下关于指针的叙述中,错误的是()A 指针可以指向变量B 指针可以指向数组C 指针可以指向函数D 指针不可以进行加减运算答案:D解释:指针可以进行加减运算,但运算的结果要根据指针所指向的数据类型来确定。

北华航天工业学院c语言期末考试(2)

北华航天工业学院c语言期末考试(2)

北华航天工业学院c语言期末考试(2)华北航天工业学院2 学年第二学期课程考试卷(A、B)考核形式:开卷、闭卷班级:姓名:学号:题号一二三四五六七八九十总分得分一.选择题(30分)1.一个C程序的执行是从_____。

A)本程序的main函数开始,到main函数结束B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C)本程序的main函数开始,到本程序文件的最后一个函数结束D)本程序文件的第一个函数开始,到本程序main函数结束2. C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符A)必须为字母 B)必须为下划线C)必须为字母或下划线D)可以是字母,数字和下划线中任一种字符3.下列常数中哪个是合法的C常量()A)"a" B)'\\'' C)'W' D)''4.下列标识符中哪个可以作变量名()A. ifB. nextC. *xD. 2a5.下列哪个转义字符代表跳到下一输出区()A. \nB. \tC. \bD. \r6.下列运算按优先级从高到低排列正确的是()A.算术运算,逻辑运算,关系运算,赋值运算B.算术运算,关系运算,逻辑运算,赋值运算C.算术运算,赋值运算,关系运算,逻辑运算D.算术运算,赋值运算,逻辑运算,关系运算7.在C语言中,要求运算数必须是整型的运算符是()。

A) / B) ++ c) != D)%8.判断char型变量ch是否为大写字母的正确表达式是()。

A)' A' <=ch<='Z' B) (ch> = 'A')&(ch<=' Z' )C)(ch>=' A' )&&(ch<='Z') D) (' A' < = ch)AND('Z'> = ch) 9.以下能正确地定义整型变量a,b和c 并为其赋初值5的语句是()A.int a=b= c= 5; B. int a,b, c= 5;C.a= 5,b=5,c=5; D. a= b= c=5;10.以下不正确的if语句形式是()A. if(x>y && x!=y);B. if(x= =y) x+=y;C. if(x != y) scanf("%d",&x ) else scanf("%d",&y);D. if(X<="">11.以下程序的运行结果是()main(){int k= 4,a=3,b=2,c=1;printf("\n %d\n",k< a ? k:cA. 4 B. 3 C. 2 D. 112.以下不是无限循环的语句为()A. for (y=0,x=1;x > ++y;x =i++) i=x ;B. for (;; x++=i);C. while (1) {x ++;}D. for(i=10;;i--) sum+=i;13.当一个函数无返回值时,定义它的类型应是()A. voidB.任意类型C. 无D.int14.下列对数组的说法错误的是()A.二维数组是以一维数组为元素的一维数组B.数组的名字一定是一个指针常量C.一维数组的大小有时不需定义D.行指针取*运算符可变成列指针,列指针取&运算符可变成行指针15.以下正确的描述是。

C语言期末考试测试试卷(较难)

C语言期末考试测试试卷(较难)

一、选择题(每题2分,共20分)1. 以下关于指针的说法中,错误的是()A. 指针是一个变量,其值为另一个变量的地址B. 指针变量的值可以改变,但其指向的内存地址不能改变C. 指针变量的类型决定了其所指向的数据类型D. 指针变量可以进行算术运算2. 以下关于结构体的说法中,正确的是()A. 结构体变量的成员可以是另一个结构体类型B. 结构体变量的大小等于其所有成员大小之和C. 结构体变量可以直接赋值给另一个结构体变量D. 结构体变量不能作为函数的参数传递3. 以下关于文件操作的说法中,错误的是()A. fopen()函数用于打开文件B. fclose()函数用于关闭文件C. fprintf()函数用于向文件写入格式化数据D. fscanf()函数用于从文件读取格式化数据4. 以下关于动态内存分配的说法中,正确的是()A. malloc()函数用于分配内存,但不需要释放B. calloc()函数用于分配内存,并将内存初始化为0C. realloc()函数用于重新分配内存,但不能改变原有内存的大小D. free()函数用于释放内存,但不能释放由malloc()函数分配的内存5. 以下关于链表的说法中,错误的是()A. 链表是一种动态数据结构,可以动态地插入和删除元素B. 链表中的每个节点都包含数据域和指针域C. 链表的最后一个节点的指针域为NULLD. 链表的插入和删除操作的时间复杂度为O(n)6. 以下关于递归函数的说法中,正确的是()A. 递归函数必须有递归出口,否则会导致无限递归B. 递归函数的时间复杂度一定高于非递归函数C. 递归函数的空间复杂度一定低于非递归函数D. 递归函数的参数必须是指针类型7. 以下关于二维数组的说法中,错误的是()A. 二维数组的每个元素都是一维数组B. 二维数组的行数和列数必须在定义时指定C. 二维数组的元素在内存中是连续存储的D. 二维数组的元素可以通过下标访问8. 以下关于函数指针的说法中,正确的是()A. 函数指针可以指向任意类型的函数B. 函数指针可以作为函数的参数传递C. 函数指针可以直接调用函数D. 函数指针不能进行赋值操作9. 以下关于位运算的说法中,错误的是()A. 位运算的操作数必须是整数类型B. 位运算的优先级高于算术运算C. 位运算的结果是一个整数D. 位运算可以用于实现快速的乘除运算10. 以下关于预处理器的说法中,正确的是()A. 预处理器是在编译阶段之前执行的B. 预处理器可以用于定义宏和条件编译C. 预处理器可以用于包含头文件D. 以上都对二、填空题(每空1分,共10分)1. 在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)。

[i] t5~8题为相同类型题考点:标识符的命名规则(1)《(2)只能由字母、数字、下划线构成(3)数字不能作为标识符的开头(4)关键字不能作为标识符选项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#选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键字,不满足(3)语言中的简单数据类型包括(D)。

北航C语言期末模拟试题

北航C语言期末模拟试题

一、选择题1、下列数据中,为字符串常量的是<).A、'A'B、How do you do.C、$abcD、"house"2、以下所列的C语言常量中,错误的是( >.A、0xFFB、1.2e0.5C、2LD、'\72'3、以下程序的输出结果是<). main(>{float x=3.6。

int i。

i=(int>x。

printf("x=%f,i=%d\n",x,i>。

}A、x=3.600000,i=4B、x=3 i=3.600000C、x=3,i=3D、x=3.600000,i=34、若k是整型,则以下程序段的执行结果是:( >k=-3。

if(k<=0> printf("####">else printf("&&&&">。

A、####B、有语法错误,无结果C、&&&&D、####&&&&5、若x=2,y=3则x||y的结果是( >.A、3B、0C、1D、26、针对下列程序段回答问题( >. for(t=1。

t<=100。

t++>{scanf("%d",&x>。

if(x<0> continue。

printf("%3d",t>。

}A、x>=0时什么也不输出B、最多允许输出100个非负整数C、printf函数永远也不执行D、当x<0时整个循环结束7、以下程序的执行结果是( >. main(>{ int num = 0。

while( num <= 2 >{ num++。

printf( "%d,",num >。

北华大学C语言题库精简打印版(全)

北华大学C语言题库精简打印版(全)

北华大学C语言题库精简打印版(全)一、判断题 - 正确篇1. 字符常量的长度肯定为1.Y2. 在调用函数时,实参把值传送给对应位置上的形参,形参的值不能传给实参.Y3. 在程序中凡是以#号开始的语句行都是预处理命令行Y4. 在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型的变量.Y5. 在程序中,APH和aph是两个不同的变量.Y6. 在Turbo C中,int型数据在存中占2个字节.Y7. 在C语言中8.9e1.2是不正确的实型常量.Y8. 在C语言中,变量必需先定义后使用.Y9. 在C语言中,5种基本数据类型的存储空间长度的排列顺序为:char<int<long int <=float<double.Y10. 在C语言的函数中,可以有也可以没有形参Y11. 在C语言程序中,函数的定义不可以嵌套,但函数的调用可以嵌套Y12. 在C语言程序设计中,"/*"和"*/"之间的容是C语言的注释Y13. 在C程序中,逗号运算符的优先级最低.Y 14. 在C程序中,j++;是一条赋值语句.Y15. 在 C 语言中,此定义和语句是合法的:enum aa { a=5,b,c}bb;bb=(enum aa)5;Y16. 用fopen("file","r+");打开的文件"file"可以进行修改.Y17. 一个字符变量只能存储一个字符.Y18. 一个指针变量只能指向同一类型变量. Y19. 一个C程序必须由一个或一个以上的函数组成.Y20. 也可用其它编辑软件创建ASCII数据文件用在C程序中.Y21. 位段定义中允许长度为零的无名字段.Y22. 同一数组的元素在存中存储是连续存放的,占有连续的存储单元.Y23. 数组说明 int a[3][3]={1,2,3,4,5}; 是正确的.Y24. 数 -32100可以赋值给int型和long int型变量.Y25. 设x、t均为int型变量,则执行语句"x=10;t=x&&x<=10;"后,t的值为1.Y26. 三种循环(while语句for语句do-while语句)都可以用来处理同一个问题,一般它们可以相互代替.Y27. 若有定义和语句:int a;char c;float f;scanf("%d,%c,%f",&a,&c,&f);若通过键盘输入:10,A,12.5则a=10,c='A',f=12.5.Y28. 若有int a[3][4];*(a+1)+2表示a[1][2]元素的地址. Y29. 若通过键盘输入:10,A,12.5则a=10,c='A',f=12.5.Y30. 若a和b类型相同,在执行了赋值语句a=b;后b中的值将放入a中,b中的值不变.Y31. 如果想使一个数组中全部元素的值为0,可以写成 int a[10]={0*10};Y32. 枚举类型的数据不能从键盘上直接输入、输出.Y33. 结构体类型的定义允许嵌套.Y34. 将整数以二进制形式存盘比以ASCII 形式存盘省空间、运算快.Y35. 将一维双精度实数数组x的下标为i的变量的地址赋给指针变量p的语句为:double *p,x[10];int i=5;p=&x[i];Y36. 将数组a的首地址赋给指针变量p的语句是p=a;Y37. 共用体类型变量不能被初始化.Y38. 共同体变量所占的存长度等于最长的成员的长度.Y39. 对指针变量的初始化int a,*pa=&a,*pc=0;是正确的.Y40. 对文件进行读写操作,必须先打开,可调用函数fopen().Y41. 对枚举类型名的定义enum a {sum=9,mon=-1,tue};是正确的.Y42. 对结构体类型的变量的成员可以象普通变量一样参与各种运算.Y43. 动态存储分配,可调用函数malloc(),如int *p;p=(int *)malloc(sizeof(p));Y44. 当定义一个结构体变量时,系统分配给它的存是各成员所需存量的总和.Y45. 当调用函数时,实参是一个数组名,则向函数传送的是数组的首地址.Y46. 不仅可将C源程序存在磁盘上,还可将数据按数据类型分别以文件的形式存在磁盘上.Y47. x*=y+8 等价于 x=x*(y+8).Y48. while 和for循环都是先判断表达式的值,后执行循环体语句.Y49. typedef long int BIGGY;的作用是给长整型起了一个别名BIGGY.Y50. static char a[]="This is a program.";printf("%s",a);是正确的.Y51. rewind(fp);可使fp所指文件的位置返回到文件的开头.Y52. r_1_2是C语言合法的用户定义标识符.Y53. int n; scanf("%d",&n); int a[n]; 是不合法的.Y54. int i=3,j=5; if(i>j);是正确的.Y55. int i,*p=&i;是正确的C说明.Y56. int a[3][4]={{1},{5},{9}}; 它的作用是将数组各行第一列的元素赋初值,其余元素值为0.Y57. int *p[6];定义了6个下标变量的整型指针.Y58. fseek()函数一般用于二进制文件.Y59.for(i=4;i>1;i--)for(j=1;j<i;j++)p utchar('#');输出为######.Y60. do-while循环是先执行循环体语句,后判断表达式的值.Y61. C语言中,文件由字符(字节)序列组成.Y62. C语言规定,函数返回值的类型是由在定义该函数时所指定的函数类型所决定的.Y63. C语言程序中,当调用函数时实参和形参各占一个独立的存储单元Y64. char c;c=getchar();该程序段的功能是将用户从键盘输入的字符赋给变量c.Y65. char *s1="hello",*s2;s2=s1;是正确的.Y66. char (*p)[6]; 若p值为1000,则p++;后p值为1006.Y67. a=(b=4)+(c=6) 是一个合法的赋值表达式.Y68. 0x173是"正确"的十六进制常数.Y69. #define 和printf 都不是C语句.Y 判断题 - 错误篇70. 执行表达式(int)i后,i的类型一定变为整型.N71. 在一个C程序中,main函数必须出现在所有函数之前.N72. 在C语言中,为句构成的循环, while 后一对圆括号中表达式的值应该是1.N73. 在C语言中,调用函数必须在一条独立的语句中完成.N74. 在C程序中,每行中只能写一条语句 .N75. 在C程序中,赋值运算符的优先级最低.N76. 语句 printf("%f%%",1.0/3);输出为0.333333.N77. 与 if(E) 语句中的(E)等价的表达式是 (E==0).N78. 用户定义的函数也可调用main函数.N79. 以下各数均不是合法的八进制数:256、03A2、-0127.N80. 已知ch是字符型变量,则ch="\";是正确的赋值语句.N81. 一个变量可以同时被定义为多种类型.N82. 一个include 命令可以指定多个被包含的文件.N83. 数组说明int a[3][3]={1,2,3,4,5,6,7} ;是正确的.N84. 数组定义 int a[10]; 占存10个字节.N85. 数组定义 int a(10);是正确的.N86. 若有宏定义:#define S(a,b) t=a;a=b;b=t由于变量t没定义,所以此宏定义是错误的.N87. 若i =3,则printf("%d",-i++);输出的值为 -4.N88. 若a是实型变量,在执行了a=5;后,a将变为整型变量.N89. 若a和b的类型相同,在执行了a=b;后,b中的值将丢失.N90. 任何结构体类型的变量都可以互相赋值.N91. 枚举类型的数据与字符串在使用上相同.N92. 结构体类型只有一种.N93. 将函数fun的入口地址赋给指针变量p 的语句是p=fun();N94. 函数的定义和函数的调用均可以嵌套.N95. 函数strlen("ASDFG\n")的值是7.N96. 定义结构体的保留字是struc.N97.调用scanf()函数进行字符数组输入时,空格和换行符都可以作为字符串的一部分而能读入.N98. 当输入数值数据时,对于整型变量只能输入整型值;对于实型变量只能输入实型值.N99. 程序中的变量代表存中的一个存储单元,它的值不可以随时修改.N100.参加位运算的数据可以是任何类型的数据.N101.static char str[]="China";没有定义数组元素个数.N102.sqrt(m)是求m平方的函数.N103.inta[]={3.1,5.8,6.7,-3.6},i;for(i =0;i<4;i++)printf("%d",a[i]);能输出数组元素a[2]的值. N104.int k=8567;printf("|%-6d|\n",k);的输出为|008567|.N105.int i=3,j=5; if(i>j) ; j++; else i++;是正确的.N106.int a[2][3];按照它在存的排列次序,a数组的所有元素是a[0][0]、a[1][0]、a[0][1]、a[1][1]、a[0][2]、a[1][2].N107.inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;则p+5相当于a[5].N108.if语句后面的控制表达式只能使用关系表达式或逻辑表达式.N109.if(strcmp(temp,str)>0)中的条件是当字符串temp大于字符串str为真时.N110.if (j=0) i+ +; else i- -; i的值为11.N111.for(m=22;m<1000;m++)if(m%3==0&&m%7!=0)break;是当m能被3整除或m不能被7整除时,结束本次循环进入下次循环.N112.for(i=0,k=-1;k=1;k++,i++)printf(" *\n"); 循环体一次也不执行.N113.C语言中字符型、整型、实型都能用八进制表示.N114.C语言中的文件类型只有文本文件一种.N115.C语言中的文件类型只有二进制文件一种.N116.C语言的if语句嵌套时,if与else的匹配关系是每个else与if的匹配是任意的.N117.C程序中有调用关系的所有函数必须放在同一个源程序文件中.N118.continue语句不只用于循环语句中.N119.char a[10]="abcdefg"; printf("%6s\n",a);只输出前六个字符.N120.char *s;*s='H';是正确的.N121.#include "stdio.h" 是每个程序中必须写的.N二、选择题A篇1. 以下数据中,不正确的数值或字符常量是(A).(A).c(B).66(C).0xaa(D).502. 设j和k都是int类型,则for循环语句:for(j=0,k=0;j<=9&&k!=876;j++) scanf("%d",&k);(A)(A).最多执行10次(B).最多执行9次(C).是无限循环(D).循环体一次也不执行3. char a1[]="abc",a2[80]="1234";将a1串连接到a2串后面的语句是(A).(A).strcat(a2,a1);(B).strcpy(a2,a1);(C).strcat(a1,a2); (D).strcpy(a1,a2);4. 以下正确的说法是:在C语言中(A).(A).实参和与其对应的形参各占用独立的存储单元(B).实参和与其对应的形参共占用一个存储单元(C).只有当实参和与其对应的形参同名时才共占用存储单元(D).形参是虚拟的,不占用存储单元5. 下列字符序列中,是C语言保留字的是(A).(A).sizeof(B).include(C).scanf(D).sqrt6. 以下选项中,与k=n++完全等价的表达式是(A).(A).k=n,n=n+1(B).n=n+1,k=n(C).k=++n(D).k+=n+17. 在位运算中,操作数每左移一位,其结果相当于(A).(A).操作数乘以2(B).操作数除以2(C).操作数除以4(D).操作数乘以48. 以下程序的运行结果是(A).main(){ int n;for(n=1;n<=10;n++){if(n%3==0) continue;printf("%d",n);}}(A).12457810(B).369(C).12(D).12345678909. inta=1,b=2,c=3;if(a>b)a=b;if(a>c)a=c;则a的值为(A).(A).1(B).2(C).3(D).不一定10. 下列定义数组的语句中正确的是(A).(A).#define size 10 char str1[size],str2[size+2];(B).char str[];(C).int num['10'];(D).int n=5; int a[n][n+2]; 11. C语言中运算对象必须是整型的运算符是(A).(A).%=(B)./(C).=(D).〈=12. C语言中 while 和 do-while 循环的主要区别是(A).(A).do-while 的循环体至少无条件执行一次(B).while的循环控制条件比 do-while的循环控制条件更严格(C).do-while 允许从外部转到循环体(D).do-while 的循环体不能是复合语句13. 16.在C语言中,形参的缺省存储类别是(A).(A).auto(B).register(C).static(D).extern14. 从键盘上输入某字符串时,不可使用的函数是(A).(A).getchar()(B).gets()(C).scanf()(D).fread()15. 以下数据中,不正确的数值或字符常量是(A).(A).8.9e1.2(B).10(C).0xff00(D).82.516. 以下不是无限循环的语句为(A).(A).for(y=0,x=1;x>++y;x=i++) i=x;(B).for(;;x++=i);(C).while(1){x++;}(D).for(i=10;;i--) sum+=i;17. while(fabs(t)<1e-5)if(!s/10)break;循环结束的条件是(A).(A).t>=1e-5&&t<=-1e-5(B).fabs(t)<1e-5&&!s/10(C).fabs(t)<1e-5(D).s/10==018. 以下叙述中正确的是(A).(A).构成C程序的基本单位是函数(B).可以在一个函数中定义另一个函数(C).main()函数必须放在其它函数之前(D).所有被调用的函数一定要在调用之前进行定义19. 函数 rewind 的作用是(A).(A).使位置指针重新返回文件的开头(B).将位置指针指向文件中所要求的特定位置(C).使位置指针指向文件的末尾(D).使位置指针自动移至下一个字符位置20. C语言程序中,当调用函数时(A).(A).实参和虚参各占一个独立的存储单元(B).实参和虚参可以共用存储单元(C).可以由用户指定是否共用存储单元(D).计算机系统自动确定是否共用存储单元21. 当定义一个结构体变量时,系统分配给它的存是(A).(A).各成员所需存量的总和(B).结构中第一个成员所需存量(C).结构中最后一个成员所需存量(D).成员中占存量最大者所需的容量22. 下列变量定义中合法的是(A).(A).short _a=1-.1e-1;(B).double b=1+5e2.5;(C).long do=0xfdaL;(D).float 2_and=1-e-3;23. 若有说明语句:char c='\72';则变量c(A).(A).包含1个字符(B).包含2个字符(C).包含3个字符(D).说明不合法,c的值不确定24. 结构体类型的定义允许嵌套是指(A).(A).成员是已经或正在定义的结构体型(B).成员可以重名(C).结构体型可以派生(D).定义多个结构体型25. 先用语句定义字符型变量c,然后要将字符a赋给c,则下列语句中正确的是(A).(A).c='a';(B).c="a";(C).c="97";(D).C='97'26. 下列数组说明中,正确的是(A).(A).static char str[]="China";(B).static char str[]; str="China";(C).static char str1[5],str2[]={"China"}; str1=str2;(D).static char str1[],str2[];str2={"China"};strcpy(str1,str2);27. 若有int *p=(int *)malloc(sizeof(int));则向存申请到存空间存入整数123的语句为(A).(A).scanf("%d",p);(B).scanf("%d",&p);(C).scanf("%d",*p);(D).scanf("%d",**p); 28. 以下叙述中正确的是 (A).(A).C程序中注释部分可以出现在程序中任意合适的地方(B).花括号"{"和"}"只能作为函数体的定界符(C).构成C程序的基本单位是函数,所有函数名都可以由用户命名(D).分号是C语句之间的分隔符,不是语句的一部分29. 执行下面程序后,输出结果是(A).main(){ int a=45,b=27,c=0;c=max(a,b);printf("%d\n",c);}int max(int x,int y){ int z;if(x>y) z=x;else z=y;return(z);}(A).45(B).27(C).18(D).7230. 设有以下语句, 若0<k<4,下列选项中对字符串的非法引用是(A).charstr[4][2]={"aaa","bbb","ccc","ddd"},* strp[4];int j;for (j=0;j<4;j++)strp[j]=str[j];(A).strp(B).str[k](C).strp[k](D).*strp31. 9以下语句中,循环次数不为10次的语句是(A).(A).for(i=1;i<10;i++);(B).i=1;do{i++;}while(i<=10);(C).i=10;while(i>0){--i;}(D).i=1;m:if(i<=10){i++;goto m;}32. 14以下不能正确进行字符串赋初值的语句是(A).(A).char str[5]="good!";(B).char str[]="good!";(C).char *str="good!";(D).char str[5]={'g','o','o','d'};33. 18若有double *p,x[10];int i=5;使指针变量p指向元素x[5]的语句为(A).(A).p=&x[i];(B).p=x;(C).p=x[i]; (D).p=&(x+i)34. C语言的if语句嵌套时,if与else的配对关系是(A).(A).每个else总是与它上面的最近的并且尚未与其他else匹配的if配对(B).每个else总是与最外层的if配对(C).每个else与if的配对是任意的(D).每个else总是与它上面的if配对35. 16以下正确的函数定义形式是(A).(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);36. 18经过下列的语句 int j,a[10],*p;定义后,下列语句中合法的是(A)(A).p=a+2;(B).p=a[5];(C).p=a[2]+2;(D).p=&(j+2);37. 17enum a {sum=9,mon=-1,tue};2char a[]="This is a program.";输出前5个字符的语句是(A).(A).printf("%.5s",a);(B).puts(a);(C).printf("%s",a);(D).a[5*2]=0;puts(a);选择题B篇38. C语言源程序的基本单位是(B).(A).过程(B).函数(C).子程序(D).标识符39. 下列程序的输出结果是(B).main(){char c1=97,c2=98;printf("%d %c",c1,c2);}(A).97 98(B).97 b(C).a 98(D).a b40. 下列四个选项中,均是C语言关键字的选项是(B).(A).auto enum include(B).switch typedef continue(C).signed union scanf(D).if struct type41. 以下能对二维数组a进行正确初始化的语句是(B).(A).int a[2][]={{1,0,1},{5,2,3}}; (B).int a[][3]={{1,2,3},{4,5,6}};(C).int a[2][4]={{1,2,3},{4,5},{6}};(D).int a[][3]={{1,0,1}{},{1,1}};42. 以下对枚举类型名的定义中正确的是(B).(A).enum a={sun,mon,tue};(B).enum a {sun=9,mon=-1,tue};(C).enum a={"sun","mon","tue"};(D).enum a {"sun","mon","tue"};43. 以下选项中合法的用户标识符是(B).(A).long(B)._2Test(C).3Dmax(D).A.dat44. 以下叙述中正确的是(B).(A).C语言的源程序不必通过编译就可以直接运行(B).C语言中的每条可执行语句最终都将被转换成二进制的机器指令(C).C源程序经编译形成的二进制代码可以直接运行(D).C语言中的函数不可以单独进行编译45. 以下叙述中不正确的是(B).(A).一个好的程序应该有详尽的注释(B).在C程序中,赋值运算符的优先级最低(C).在C程序中,j++;是一条赋值语句(D).C程序中的#include和#define均不是C语句46. 若有以下程序段:int a=3,b=4; a=a^b;b=b^a;a=a^b;则执行以上语句后,a 和b的值分别是(B).(A).a=3,b=4(B).a=4,b=3(C).a=4,b=4(D).a=3,b=347. 9.假定所有变量均已正确定义,下列程序段运行后x的值是(B).k1=1;k2=2;k3=3;x=15;if(!k1) x--;else if(k2) x=4;else x=3;(A).14(B).4(C).15(D).348. 给数组a的所有元素分别赋值为1、2、3、……的语句是(B).(A).for(i=1;i<11;i++)a[i]=i;(B).for(i=1;i<11;i++)a[i-1]=i; (C).for(i=1;i<11;i++)a[i+1]=i;(D).for(i=1;i<11;i++)a[0]=1;49. C语言中不可以嵌套的是(B).(A).函数调用(B).函数定义(C).循环语句(D).选择语句50. int a[10]={1,2,3,4,5,6,7,8};int *p;p=&a[5];p[-3]的值是(B)(A).2(B).3(C).4(D).不一定51. 若k为int型变量,则以下程序段的执行结果是(B).k=-8567; printf("|%06D|\n",k);(A).格式描述符不合法,输出无定值(B).输出为|%06D|(C).输出为|0-8567|(D).输出为|-8567|52. fseek函数的正确调用形式是(B).(A).fseek(文件类型指针,起始点,位移量)(B).fseek(fp,位移量,起始点)(C).fseek(位移量,起始点,fp)(D).fseek(起始点,位移量,文件类型指针)53. 下列表达式中,可作为C合法表达式的是(B).(A).[3,2,1,0](B).(3,2,1,0)(C).3=2=1=0(D).3/2/1/054. 以下程序的输出结果为(B).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).15(B).13(C).9(D).函数调用出错55. 以下标识符中,不能作为合法的C用户定义标识符的是(B).(A).a3_b3(B).void(C)._123(D).IF 56. 假设所有变量均为整型,表达式:a=2,b=5,a>b?a++:b++,a+b的值是(B).(A).7(B).8(C).9(D).257. 以下程序段的输出结果为(B).for(i=4;i>1;i--)for(j=1;j<i;j++)putchar('#');(A).无(B).######(C).#(D).###58. 设C语言中,int类型数据占2个字节,则unsigned类型数据占(B).(A).1个字节(B).2个字节(C).4个字节(D).8个字节59. 对 for(表达式1; ;表达式3) 可理解为(B).(A).for(表达式1;0;表达式3)(B).for(表达式1;1;表达式3)(C).for(表达式1;表达式1;表达式3)(D).for(表达式1;表达式3;表达式3)60. C语言中,定义结构体的保留字是(B).(A).union(B).struct(C).enum(D).typedef61. 设C语言中,int类型数据占2个字节,则short类型数据占().B(A).1个字节(B).2个字节(C).4个字节(D).8个字节62. 对 for(表达式1; ;表达式3) 可理解为(B).(A).for(表达式1;0;表达式3)(B).for(表达式1;1;表达式3)(C).for(表达式1;表达式1;表达式3)(D).for(表达式表达式3;表达式3)63. C语言允许函数类型缺省定义,此时函数值隐含的类型是().B(A).float(B).int(C).long(D).double64. 若有int a[][2]={{1,2},{3,4}}; 则*(a+1),*(*a+1)的含义分别为(B).(A).非法,2 (B).&a[1][0],2(C).&a[0][1],3(D).a[0][0],465. 以下叙述正确的是(B).(A).可以把define和if定义为用户标识符(B).可以把define定义为用户标识符,但不能把if定义为用户标识符(C).可以把if定义为用户标识符,但不能把define定义为用户标识符(D).define和if都不能定义为用户标识符66. sizeof(float)是(B).(A).一个双精度型表达式(B).一个整型表达式(C).一种函数调用(D).一个不合法的表达式67. 对 for(表达式1; ;表达式3) 可理解为(B).(A).for(表达式1;0;表达式3)(B).for(表达式1;1;表达式3)(C).for(表达式1;表达式1;表达式3)(D).for(表达式1;表达式3;表达式3)68. 若有说明:int i, j=2,*p=&i;,则能完成i=j赋值功能的语句是(B).(A).i=*p;(B).*p=*&j;(C).i=&j;(D).i=**p;69. 下面四个选项中,均是不合法的浮点数的选项是(B).(A).160. 0.12 e3(B).123 2e4.2 .e5(C).-.18 123e4 0.0(D).-e3 .234 1e370. 在一个C程序中(B).(A).main函数必须出现在所有函数之前(B).main函数可以在任何地方出现(C).main函数必须出现在所有函数之后(D).main函数必须出现在固定位置71. 若二维数组a有m列,则在a[i][j]前的元素个数为(B).(A).j*m+i(B).i*m+j(C).i*m+j-1(D).i*m+j+172. 若有下列定义,则对a数组元素地址的正确引用是(B).int a[5],*p=a;(A).&a[5](B).p+2(C).a++(D).&a73. 2下列字符序列中,不可用作C语言标识符的是(B).(A).b70(B).#ab(C).symbol(D).a_174. 15以下不正确的说法是:C语言规定(B).(A).实参可以是常量,变量或表达式(B).形参可以是常量,变量或表达式(C).实参可以为任何类型(D).形参应与其对应的实参类型一致75. 3下列数据中,为字符串常量的是(B).(A).A(B)."house"(C).How do you do.(D).$abc76. 17在位运算中,操作数每右移一位,其结果相当于(B).(A).操作数乘以2(B).操作数除以2(C).操作数乘以16(D).操作数除以1677. 以下所列的C语言常量中,错误的是(B).(A).0xFF(B).1.2e0.5(C).2L(D).'\72'78. 为了提高程序的运行速度,在函数中对于整型或指针可以使用(B)型的变量.(A).auto(B).register(C).static(D).extern79. 10int a=1,b=2,c=3;if(a>c)b=a;a=c;c=b;则c的值为().B(A).1(B).2(C).3(D).不一定80. 以下不正确的定义语句是(B).(A).doublex[5]={2.0,4.0,6.0,8.0,10.0};(B).int y[5]={0,1,3,5,7,9};(C).char c1[]={'1','2','3','4','5'};(D).char c2[]={'\x10','\xa','\x8'};81. C语言规定:简单变量做实参时,它和对应形参之间的数据传递方式是(B).(A).地址传递(B).单向值传递(C).由实参传给形参,再由形参传回给实参(D).由用户指定的传递方式82. 以下程序的输出结果是(B).main(){ char s[]="123",*p;p=s;printf("%c%c%c\n",*p++,*p++,*p++);}(A).123(B).321(C).213(D).31283. 以下语句中,不能实现回车换行的是(B).(A).printf("\n");(B).putchar("\n");(C).fprintf(stdout,"\n");(D).fwrite("\n",1,1,stdout);选择题C篇84. 设C语言中,int类型数据占2个字节,则long类型数据占(C).(A).1个字节(B).2个字节(C).4个字节(D).8个字节85. 以下叙述正确的是(C).(A).在C程序中,main函数必须位于程序的最前面(B).C程序的每行中只能写一条语句(C).C语言本身没有输入输出语句(D).在对一个C程序进行编译的过程中,可发现注释中的拼写错误86. 以下数值中,不正确的八进制数或十六进制数是(C).(A).0x16(B).016(C).-16(D).0xaaaa87. 已知x=43,ch='A',y=0;则表达式(x>=y&&ch<'B'&&!y)的值是(C).(A).0(B).语法错(C).1(D).假88. 能将高级语言编写的源程序转换为目标程序的是(C).(A).程序(B).解释程序(C).编译程序(D).编辑程序89. 以下关于运算符优先顺序的描述中正确的是(C). (A).关系运算符<算术运算符<赋值运算符<逻辑运算符(B).逻辑运算符<关系运算符<算术运算符<赋值运算符(C).赋值运算符<逻辑运算符<关系运算符<算术运算符(D).算术运算符<关系运算符<赋值运算符<逻辑运算符90. 以下叙述中不正确的是(C).(A).表达式a&=b等价于a=a&b(B).表达式a|=b等价于a=a|b(C).表达式a!=b等价于a=a!b(D).表达式a^=b等价于a=a^b91. 12.以下不能对二维数组a进行正确初始化的语句是(C).(A).int a[2][3]={0};(B).int a[][3]={{1,2},{0}};(C).int a[2][3]={{1,2},{3,4},{5,6}};(D).int a[][3]={1,2,3,4,5,6};92. 下列语句中,不正确的是C(A).static char a[2]={1,2};(B).static int a[2]={'1','2'};(C).static char a[2]={'1','2','3'};(D).static char a[2]={'1'};93. static struct {int a1;float a2;char a3;}a[10]={1,3.5,'A'};说明数组a是地址常量,它有10个结构体型的下标变量,采用静态存储方式,其中被初始化的下标变量是(C).(A).a[1](B).a[-1](C).a[0](D).a[10]94. 以下字符中不是转义字符的是(C).(A).'\a'(B).'\b'(C).'\c'(D).'\\'95. 以下数据中,不正确的数值或字符常量是(C).(A).0(B).5L(C).o13(D).986196. 若输入ab,程序运行结果为(C).main(){ static char a[2];scanf("%s",a);printf("%c,%c",a[1],a[2]);}(A).a,b(B).a, (C).b,(D).程序出错97. 下列程序段的输出结果为(C).int a=7,b=9,t;t=a*=a>b?a:b;printf("%d",t);(A).7(B).9(C).63(D).4998. 下面四个选项中,均是不合法的用户标识符的选项是(C).(A).A P_0 do(B).float la0 _A(C).b-a goto int(D)._123 temp int99. 在C语言中,调用函数除函数名外,还必须有(C).(A).函数预说明(B).实际参数(C).( )(D).函数返回值100. 下面判断正确的是(C).(A).char *a="china";等价于char *a;*a="china";(B).char str[10]={"china"};等价于charstr[10];str[]={"china"};(C).char *s="china";等价于char *s;s="china";(D).char c[4]="abc",d[4]="abc";等价于char c[4]=d[4]="abc";101. char *s1="hello",*s2;s2=s1;则(C)(A).s2指向不确定的存单元(B).不能访问"hello"(C).puts(s1);与puts(s2);结果相同(D).s1不能再指向其它单元102. 若a是float型变量,b是unsigned型变量,以下输入语句中合法的是(C).(A).scanf("%6.2f%d",&a,&b);(B).scanf("%f%n",&a,&b);(C).scanf("%f%3o",&a,&b);(D).scanf("%f%f",&a,&b);103. C语言执行程序的开始执行点是(C).(A).程序中第一条可以执行语言(B).程序中第一个函数(C).程序中的main函数(D).包含文件中的第一个函数104. fgets(str,n,fp)函数从文件中读入一个字符串,以下正确的叙述是(C).(A).字符串读入后不会自动加入'\0' (B).fp是file类型的指针(C).fgets函数将从文件中最多读入n-1个字符(D).fgets函数将从文件中最多读入n个字符105. 若有说明 int a[3][4];则对a数组元素的正确引用是(C).(A).a[2][4](B).a[1,3](C).a[1+1][0](D).a(2)(1)106. C程序中的宏展开是在(C).(A).编译时进行的(B).程序执行时进行的(C).编译前预处理时进行的(D).编辑时进行的107. 设有说明int (*ptr)[M];其中标识符ptr是(C).(A).M个指向整型变量的指针(B).指向M个整型变量的函数指针(C).一个指向具有M个整型元素的一维数组的指针(D).具有M个指针元素的一维指针数组,每个元素都只能指向整型量108. 若有char a[80],*s=a;不正确的输入语句是(C).(A).scanf("%s",s);(B).gets(s);(C).fscanf(stdin,"%c",s);(D).fgets(s,80,stdin);109. 以下选项中合法的实型常数是(C).(A).5E2.0(B).E-3(C)..2(D).1.3E110. 以下常量中,能够代表逻辑"真"值的常量是(C).(A).'\0'(B).0(C).'0'(D).NULL111. 以下标识符中,不能作为合法的C 用户定义标识符的是(C).(A).putchar(B)._double(C).123_(D).INT112. 7经过以下语句定义后,表达式z+=x>y?++x:++y的值为(C).int x=1,y=2,z=3;(A).2(B).3 (C).6(D).5113. 8以下运算符中优先级最低的是(C).(A).&&(B).&(C).||(D).|114. char a[10];不能将字符串"abc"存储在数组中的是(C).(A).strcpy(a,"abc");(B).a[0]=0;strcat(a,"abc");(C).a="abc";(D).inti;for(i=0;i<3;i++)a[i]=i+97;a[i]=0;115. 在C语言中,引用数组元素时,其数组下标的数据类型允许是(C).(A).整型常量(B).整型表达式(C).整型常量或整型表达式(D).任何类型的表达式116. 以下各选项企图说明一种新的类型名,其中正确的是(C).(A).typedef v1 int;(B).typedef v2=int;(C).typedef int v3;(D).typedef v4: int;117. 9执行语句 for(i=1;i++<4;); 后变量 i 的值是(C).(A).3(B).4(C).5(D).不定118. 1以下程序段的执行结果是(C).double x;x=218.82631; printf("%-6.2e\n",x);(A).输出格式描述符的域宽不够,不能输出(B).输出为21.38e+01(C).输出为2.2e+02(D).输出为-2.14e2119. 以下运算符中,优先级最高的运算符是(C).(A).||(B).%(C).!(D).==(C).98,c120. C语言规定,在一个源程序中,main 函数的位置(C).(A).必须在最开始(B).必须在系统调用的库函数的后面(C).可以任意(D).必须在最后121. 当顺利执行了文件关闭操作时,fclose函数的返回值是(C).(A).-1(B).True(C).0(D).1122. 以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是(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");123. 在C语言中,函数的隐含存储类别是(C).(A).auto(B).static(C).extern(D).无存储类别124. 若已定义x为int类型变量,下列语句中说明指针变量p的正确语句是(C).(A).int p=&x;(B).int *p=x;(C).int *p=&x;(D).*p=*x;125. 切换编辑窗和信息窗的命令键是(C).(A).F2(B).F3(C).F6(D).F9126. 在以下给出的表达式中,与do--while(E)语句中的(E)不等价的表达式是(C).A).(!E==0)(B).(E>0||E<0)(C).(E==0)(D).(E!=0)127. 用下列语句定义a,b,c,然后执行b=a、c='b'+b,则b,c的值是(C).long a=0xffffff;int b; char c;(A).0ffffff 和0x61(B).-1和98(C).-1和97(D).指向同一地址128. 以下对二维数组a的正确说明是(C).A).int a[3][](B).float a(3,4)(C).double a[1][4](D).float a(3)(4)129. 在C语言的函数中,下列正确的说法是(C). (A).必须有形参(B).形参必须是变量名(C).可以有也可以没有形参(D).数组名不能作形参130. char *s1="hello",*s2;s2=s1;则(C).(A).s2指向不确定的存单元(B).不能访问"hello"(C).puts(s1);与puts(s2);结果相同(D).s1不能再指向其它单元131. 以下不正确的if语句形式是(C).(A).if(x>y&&x!=y);(B).if(x==y) x+=y;(C).if(x!=y) scanf("%d",&x) else scanf("%d",&y);(D).if(x<y) {x++;y++;}选择题D篇132. C语言中,double类型数据占(D).(A).1个字节(B).2个字节(C).4个字节(D).8个字节133. 设a为整型变量,初值为12,执行完语句a+=a-=a*a后,a的值是(D).(A).552(B).144(C).264(D).-264134. 下列程序的输出为(D).main(){ int y=10;while(y--) ;printf("y=%d\n",y);}(A).y=0(B).while构成无限循环(C).y=1(D).y=-1135. 以下能正确定义数组并正确赋初值的语句是(D).(A).int N=5,b[N][N];(B).int a[1][2]={{1},{3}};(C).int c[2][]={{1,2},{3,4}};(D).int d[3][2]={{1,2},{34}};136. 若有说明: int a[][4]={0,0};则下面不正确的叙述是(D).(A).数组a的每个元素都可得到初值0(B).二维数组a的第一维大小为1(C).因为二维数组a中第二维大小的值除经初值个数的商为1,故数组a的行数为1(D).有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0 137. C语言规定,函数返回值的类型是由(D).(A).return语句中的表达式类型所决定(B).调用该函数时的主调函数类型所决定(C).调用该函数时系统临时决定(D).在定义该函数时所指定的函数类型所决定138. 则下列语句中能够实现当字符串s1大于字符串s2时,输出s2的语句是(D).(A).if(strcmp(s1,s1)>0)puts(s2);(B).if(strcmp(s2,s1)>0)puts(s2);(C).if(strcmp(s2,t)>0)puts(s2);(D).if(strcmp(s1,t)>0)puts(s2);139. 下列选项中正确的语句组是(D).(A).char s[8]; s={"Beijing"};(B).char *s; s={"Beijing"}(C).char s[8]; s="Beijing";(D).char *s; s="Beijing";140. 以下叙述中错误的是(D).(A).二进制文件打开后可以先读文件的末尾,而顺序文件不可以(B).在程序结束时,应当用fclose函数关闭已打开的文件(C).在利用fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据(D).不可以用FILE定义指向二进制文件的文件指针141. 以下数组定义中不正确的是(D).(A).int a[2][3];(B).int b[][3]={0,1,2,3};(C).int c[100][100]={0};(D).intd[3][]={{1,2},{1,2,3},{1,2,3,4}};142. 函数的形式参数隐含的存储类型说明是(D).(A).extern(B).static(C).register(D).auto143. 在定义构造数据类型时,不能(D).(A).说明变量(B).说明存储类型(C).初始化(D).末尾不写分号144. 具有相同类型的指针变量p与数组a,不能进行的操作是(D).(A).p=a;(B).*p=a[0];(C).p=&a[0];(D).p=&a;145. 8.下列运算符中,不属于关系运算符的是(D).(A).< (B).>(C).>=(D).!146. 15.以下错误的描述是:函数调用可以(D).(A).出现在执行语句中(B).出现在一个表达式中(C).做为一个函数的实参(D).做为一个函数的形参147. 18.若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是(D).(A).p=q;(B).*p=*q;(C).n=*q;(D).p=n;148. 下列字符序列中,可用作C标识符的一组字符序列是(D).(A).S.b,sum,average,_above(B).class,day,lotus_1,2day(C).#md,&12x,month,student_n!(D).D56,r_1_2,name,_st_1149. double x;scanf("%lf",&x);不可以赋值给x变量的常量是(D).(A).123(B).100000(C).'A'。

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