C语言试题----2010级本科(整理后)
- 格式:doc
- 大小:48.00 KB
- 文档页数:4
2010年全国计算机等级考试C语言试题及答案一、选择题(1)下列叙述中正确的是AA)对长度为n的有序链表进行查找,最坏清况下需要的比较次数为nB)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)C)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)D)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(nlog2n)(2)算法的时问复杂度是指DA)算法的执行时间B)算法所处理的数据量C)算法程序中的语司或指令条数D)算法在执行过程中所需要的基本运算次数(3)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。
下面属于系统软件的是B A)编辑软件B)操作系统C)教务管理系统D)浏览器(4)软件(程序)调试的任务是A A)诊断和改正程序中的错误B)尽可能多地发现程序中的错误C)发现并改正程序中的所有错误D)确定程序中错误的性质(5)数据流程图(DFD图)是 C A)软件概要设计的工具B)软件详细设计的工具C)结构化方法的需求分析工具D)面向对象方法的需求分析工具(6)软件生命周期可分为定义阶段,开发阶段和维护阶段。
详细设计属于B A)定义阶段B)开发阶段C)维护阶段D)上述三个阶段(7)数据库管理系统中负责数据模式定义的语言是 A A)数据定义语言B)数据管理语言C)数据操纵语言D)数据控制语言(8)在学生管理的关系数据库中,存取一个学生信息的数据单位是D A)文件B)数据库C)字段D)记录(9)数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的C A)需求分析阶段B)逻辑设计一阶段C)概念设计阶段D)物理设计阶段(10)有两个关系R和T如下:则由关系K得到关系T的操作是A)选择B)投影C)交D)并(11)以下叙述正确的是B A)C语言程序是由过程和函数组成的B)C语言函数可以嵌套调用,例如:fun(fun(x))C)C语言函数不可以单独编译D)C语言中除了main函数,其他函数不可作为单独文件形式存在(12)以下关于C语言的叙述中正确的是B A)C语言中的注释不可以夹在变量名或关键字的中间B)C语言中的变量可以在使用之前的任何位置进行定义C)在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致D)C语言的数值常量中夹带空格不影响常量值的正确表示(13)以下C语言用户标识符中,不合法的是 D A)_1B)AaBcC)a_bD)a—b(14)若有定义:double a=22;int i=0,k=18;,则不符合C语言规定的赋值语句是 C A)a=a++,i++;B)i=(a+k)<=(i+k);C)i=a%11;D)i=!a;(15)有以下程序 C #include<stdio.h>main(){ char a,b,c,d;scanf(“%c%c”,&a,&b);c=getchar(); d=getchar();printf(“%c%c%c%c\n”,a,b,c,d);}当执行程序时,按下列方式输入数据(从第1列开始,<CR>代表回车,注意:回车也是一个字符)12<CR>34<CR>则输出结果是C A)1234B)12C)123D)1234(16)以i关于C语言数据类型使用的叙述中错误的是 D A)若要准确无误差的表示自然数,应使用整数类型B)若要保存带有多位小数的数据,应使用双精度类型C)若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型D)若只处理“真”和“假”两种逻辑值,应使用逻辑类型(17)若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是 A A)1B)0C)2D)不知道a的值,不能确定(18)以下选项中与if(a==1)a=b; else a++;语句功能不同的switch语句是B A)switch(a){case:a=b;break;default:a++;}B)switch(a==1){case 0:a=b;break;case 1:a++;}C)switch(a){default:a++;break;case 1:a=b;}D)switch(a==1){case 1:a=b;break;case 0:a++;}(19)有如下嵌套的if语句if (a<b)if(a<c)k=a;else k=c;elseif(b<c)k=b;else k=c;以下选项中与上述if语句等价的语句是C A)k=(a<b)?a:b;k=(b<c)?b:c;B)k=(a<b)?((b<c)?a:b):((b>c)?b:c);C)k=(a<b)?((a<e)?a:e):((b<e)?b:c);D)k=(a<b)?a:b;k=(a<c)?a:c;20)有以下程序 A #include<s七dio.h>main(){in i,j,m=1;for(i=1;i<3;i++){for(j=3;j>O;j--){if(i*j)>3)break;m=i*j;}}printf("m=%d\n",m);}程序运行后的输出结果是A)m=6B)m=2C)m=4D)m=5(21)有以下程序#include(stdio.h>main(){int a=l;b=2;for(;a<8;a++){b+=a;a+=2;}printf("%d,%d\n",a,b);}程序运行后的输出结果是A)9,18B)8,11C)7,11D)10,14(22)有以下程序,其中k的初值为八进制数#include <stdio.h>main(){int k=011;printf("%d\n",k++);}程序运行后的输出结果是A)12B)11C)10D)9(23)下列语句组中,正确的是A)char *s;s="Olympic";B)char s[7];s="Olympic";C)char *s;s={"Olympic"};D)char s[7];s={"Olympic"};(24)以下关于return语句的叙述中正确的是A)一个自定义函数中必须有一条return语句B)一个自定义函数中可以根据不同情况设置多条return语句C)定义成void类型的函数中可以有带返回值的return语句D)没有return语句的自定义函数在执行结束时不能返回到调用处(25)下列选项中,能正确定义数组的语句是A)int num[0..2008];B)int num[];C)int N=2008;int num[N];D)#define N 2008int num[N];(26)有以下程序#include <stdio.h>void fun(char *c,int d){*c=*c+1;d=d+1;printf("%c,%c,",*c,d);main(){char b='a',a='A';fun(&b,a);printf("%e,%e\n",b,a);}程序运行后的输出结果是A)b,B,b,AB)b,B,B,AC)a,B,B,aD)a,B,a,B(27)若有定义int(*Pt)[3];,则下列说法正确的是A)定义了基类型为int的三个指针变量B)定义了基类型为int的具有三个元素的指针数组ptC)定义了一个名为*pt、具有三个元素的整型数组D)定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组(28)设有定义double a[10],*s=a;,以下能够代表数组元素a[3]的是A)(*s)[3]B)*(s+3)C)*s[3]D)*s+3(29)有以下程序#include(stdio.h)main(){int a[5]={1,2,3,4,5},b[5]={O,2,1,3,0},i,s=0;for(i=0;i<5;i++)s=s+a[b[i]]);printf("%d\n", s);}程序运行后的输出结果是A)6B)10C)11D)15(30)有以下程序#include <stdio.h>main(){int b [3][3]={O,1,2,0,1,2,O,1,2},i,j,t=1;for(i=0;i<3;i++)for(j=ij<=1;j++)t+=b[i][b[j][i]];printf("%d\n",t);}程序运行后的输出结果是A)1B)3C)4D)9(31)若有以下定义和语句char s1[10]="abcd!",*s2="\n123\\";printf("%d %d\n", strlen(s1),strlen(s2));则输出结果是A)5 5B)10 5C)10 7D)5 8(32)有以下程序#include <stdio.h>#define N 8void fun(int *x,int i){*x=*(x+i);}main(){int a[N]={1,2,3,4,5,6,7,8},i;fun(a,2);for(i=O;i<N/2;i++){printf("%d",a[i]);}printf("\n");}程序运行后的输出结果是A)1313B)2234D)1234(33)有以下程序#include <studio.h>int f(int t[],int n);main{ int a[4]={1,2,3,4},s;s=f(a,4); printf("%d\n",s);}int f(int t[],int n){ if(n>0)return t[n-1]+f(t,n-1);else return 0;}程序运行后的输出结果是A)4B)1OC)14D)6(34)有以下程序#include <stdio.h>int fun(){ static int x=1;x*2; return x;}main(){int i,s=1,for(i=1;i<=2;i++)s=fun();printf("%d\n",s);}程序运行后的输出结果是A)OB)1C)4D)8(35)有以下程序#include <stdio.h>#define SUB(a)(a)-(a)main(){ int a=2,b=3,c=5,d;d=SUB(a+b)*c;printf("%d\n",d);}程序运行后的输出结果是A)0C)-20D)10(36)设有定义:struct complex{ int real,unreal;} data1={1,8},data2;则以下赋值语句中错误的是A)data2=data1;B)data2=(2,6);C)data2.real=data1.real;D)data2.real=data1.unreal;(37)有以下程序#include <stdio.h>#include <string.h>struct A{ int a; char b[10]; double c;};void f(struct A t);main(){ struct A a={1001,"ZhangDa",1098.0};f(a); printf("%d,%s,%6.1f\n",a.a,a.b,a.c);}void f(struct A t){ t.a=1002; strcpy(t.b,"ChangRong");t.c=1202.0;} 程序运行后的输出结果是A)1001,zhangDa,1098.0B)1002,changRong,1202.0C)1001,ehangRong,1098.OD)1002,ZhangDa,1202.0(38)有以下定义和语句struct workers{int num;char name[20];char c;struct{int day; int month; int year;}s;};struct workers w,*pw;pw=&w;能给w中year成员赋1980的语句是A)*pw.year=198O;B)w.year=1980;C)pw->year=1980;D)w.s.year=1980;(39)有以下程序#include <stdio.h>main(){ int a=2,b=2,c=2;printf("%d\n",a/b&c);}程序运行后的输出结果是A)OB)1C)2D)3(40)有以下程序#include <stdio.h>main(){FILE *fp;char str[10];fp=fopen("myfile.dat","w");fputs("abc",fp);fclose(fp);fpfopen("myfile.data","a++");fprintf(fp,"%d",28);rewind(fp);fscanf(fp,"%s",str); puts(str);fclose(fp);}程序运行后的输出结果是A)abcB)28cC)abc28D)因类型不一致而出错二、填空题(1)一个队列的初始状态为空。
桂林电子科技大学信息科技学院试卷2010-2011 学年第 2 学期课号I04BT014课程名称C语言程序设计(A卷;、闭卷)适用班级(或年级、专业)10级、全院一单项选择题(每题2分,共40分)1 以下叙述正确的是。
A C程序基本组成单位是语句B 简单C语句必须以分号作为结束符C C程序每一行只能写一个语句D 注释语句可以嵌套2 设a和b均为int型变量,则执行以下语句后的输出为。
int a=20; int b=3; printf("%d\n",a+=(b%=2));A 0B 20C 21D 223 设int型占2个字节,且int i=-2;,则语句printf("%u",i);的输出结果为。
A -2B -32768C 65535D 655344 以下程序运行后的输出结果是。
main(){ double d=3.2; int x,y;x=1.2; y=(x+3.8)/5.0;printf("%d\n",d*y);}A 0B 3C 3.07D 3.25 以下程序运行后的输出结果是。
main(){ int a=2,b=-1,c=2;if(a<b)if(b<0) c=0;else c++;printf("%d\n",c);}A 0B 1C 2D 36 以下程序的执行结果是。
main(){ int n=9;while(n>6) { n--; printf("%d",n); }}A 987B 9876C 8765D 876void main(){ int x=15,y=21,z=0;switch (x/8){ case 2: z=z+1;break;case 1: z=z+1;switch (y/21){ default : z=z+1;case 0: z=z+1;break;}}printf("%d\n",z);}A 4B 3C 2D 18 以下程序的输出结果是。
本科c语言试题及答案[试题一]题目:C语言中的数据类型包括哪些?答案:C语言中的数据类型包括基本数据类型和派生数据类型。
基本数据类型包括整型、浮点型、字符型和布尔型;派生数据类型是由基本数据类型衍生出来的,包括数组、指针、结构体和联合体等。
[试题二]题目:请解释变量和常量在C语言中的含义。
答案:变量是在程序中用来存储数据的一块内存空间,可以通过变量名来访问和修改其中的值。
常量是固定不变的数据,其值在程序运行过程中不能改变。
[试题三]题目:什么是函数?请简要描述函数的作用和定义方式。
答案:函数是完成某一特定任务的一段程序代码。
函数在C语言中的作用主要有三个方面:代码重用、提高程序的可读性和结构化编程。
函数的定义方式包括函数返回类型、函数名、参数列表和函数体。
[试题四]题目:请列举常用的C语言控制流语句。
答案:常用的C语言控制流语句包括顺序结构、条件语句和循环语句。
顺序结构按照顺序执行,条件语句根据条件选择性地执行不同的代码块,循环语句重复执行某一段代码。
[试题五]题目:请解释C语言中的递归函数,并给出一个使用递归的例子。
答案:递归函数是调用自身的函数。
它通过不断调用自身,将大问题转化为与原问题相似但规模更小的子问题进行解决。
例如,计算阶乘的递归函数可以表示为:```cint factorial(int n) {if (n == 0) {return 1;}return n * factorial(n - 1);}```该函数通过不断调用自身,将阶乘问题转化为更小规模的阶乘问题,直到达到终止条件。
[试题六]题目:什么是指针?请简要描述指针的作用和定义方式。
答案:指针是用来存储内存地址的变量。
指针的作用主要有两个方面:直接访问内存中的数据和通过指针变量传递数据,实现在函数间的数据共享。
指针的定义方式包括指针类型和指针变量名。
[试题七]题目:C语言中有哪些常用的输入输出函数?答案:C语言中常用的输入输出函数包括printf()、scanf()、gets()、puts()和fgets()等。
C语⾔》期末考试试卷(B卷与参考答案)2010~2011学年度第⼀学期10级《C语⾔》期末考试试卷(B卷与参考答案)班级1011计⽹学号姓名总分(适⽤班级:1011计⽹)(考试形式:闭卷时间:90分钟)⼀、选择题(每题2分,共60分)1、C语⾔程序的基本单位是( C )A) 程序⾏B) 语句C) 函数D) 字符2、C语⾔程序的三种基本结构是( A )A、顺序结构,选择结构,循环结构B、递归结构,循环结构,转移结构C、嵌套结构,递归结构,顺序结构D、循环结构,转移结构,顺序结构3、C语⾔可执⾏程序的开始执⾏点是( C)A) 程序中第⼀条可执⾏语句B) 程序中第⼀个函数C) 程序中的main函数D) 包含⽂件中的第⼀个函数4、C语⾔中,运算对象必须是整型数的运算符是( A )A) % B) \ C) %和\ D) * *5、C语⾔中数组下标的下限是( B )。
A、1B、0C、视具体情况D、⽆固定下限6、C语⾔中最简单的数据类型包括( B )A) 整型、实型、逻辑型B) 整型、实型、字符型C) 整型、字符型、逻辑型D) 整型、实型、逻辑型、字符型7、x、y、z被定义为int型变量,若从键盘给x、y、z输⼊数据,正确的输⼊语句是( B )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);8、表达式:10!=9的值是( D )A) true B) ⾮零值C) 0 D) 19、表⽰关系x<=y<=z的c语⾔表达式为( A)A) (X<=Y)&&(Y<=Z) B) (X<=Y)AND(Y<=Z)C) (X<=Y<=Z) D) (X<=Y)&(Y<=Z)10、下列运算符其优先级最⾼的是( C)。
0124、以下叙述正确的是()。
A.注释部分可单独占用一行,也可跟在语句的后面B.函数体定界符也可用一对方括号"[ ]"C.C语言源程序每一行就是一条语句D.由于C语言源程序都是从main()函数开始执行,所以main()函数必须位于程序文件最前面0125、下面叙述错误的是()。
A.所有语句都必须以分号";"结束B.语句是构成C语言源程序的基本单位C.C语言源程序必须包含一个main()函数D.注释部分在程序编译和运行时不起作用0126、main()函数的位置()。
A.必须位于程序文件的最前面B.必须位于用户自定义函数的前面C.可位于用户自定义函数之前,也可位于用户自定义函数之后D.必须位于用户自定义函数的后面0127、()是结构化程序设计应遵循的原则。
A.选用的控制结构可有多个入口和一个出口B.根据需要可使用嵌套基本控制结构表示程序逻辑C.应使用顺序、选择、循环三种基本控制结构表示程序逻辑D.为提高程序效率,应尽量使用Goto语句0128、描述一个算法可以有不同的方式,常见的有()。
A.汇编语言、高级语言和低级语言B.自然语言、流程图和伪代码C.机器语言、汇编语言和高级语言D.高级语言、自然语言和伪代码0224、下列不属于C语言数据类型的是()。
A.双精度型B.枚举类型C.复数类型D.长整型0225、下列合法的浮点数的是()。
A..65B.E2C.2E0.5D.1230226、下列不合法的字符常量的是()。
A.'\t'B.'\n'C.'\\'D."a"0227、下列()是不正确的常量形式。
A.'x5'B.1.6E6C.1E-2D."\0"0228、下列()是不合法的用户标识符。
A._f6B.divC.5xD._num0324、若已定义:int n=2; double x=2.5; 则下列表达式中不符合语法的是()。
2010 — 2011 学年第二学期期末考试(D )本程序的所有文件的范围一、密封线内不准答题。
二、姓名、准考证号不许涂改,否则试卷无效。
三、考生在答题前应先将姓名、学号、年级和班级填写在指定的方框内。
四、试卷印刷不清楚。
可举手向监考教师询问。
所在年级、班级注意(7)要使程序运行的结果为:1, 2, 34,则从键盘输入的数据格式为( C )#include<stdio.h>int main( ){char a, b;int c;scanf( “%c%c%d”, &a, &b, &c );printf( “%c, %c, %d\n”, a, b, c );return 0;}(A)1234 (B)1, 2, 34 (C)‟1‟, …2‟, 34 (D)1234(8)已知程序如下:#include<stdio.h>int main( ){char c;c=…\376‟;printf( “%d\n”, c );return 0;}程序运行的结果为( A )(A)376 (B)254 (C)-1 (D)-2(9)已知程序如下:#include<stdio.h>int main( ){int i, s=1;for( i = 1; i < 50; i++ )if( !( i % 5) && !( i % 3) ) s += i;printf( “ %d \n”, s );return 0;}程序运行的结果为( D )(A)1 (B)91 (C)277 (D)409(10)在C语言中,只有在使用时才占用内存单元的变量,其存储类型是(A)(A)auto和register (B)extern和register(C)auto和static (D)static和register(11)数组名代表数组的首地址,以下可以对数组名进行的运算符是(A)(A)++ (B)+ (C)- - (D)=(12)若有以下调用语句,则不正确的fun函数的原型是( D )int main( ){ …int a[50], n;…fun( n, &a[9] );…}(A)void fun( int m, int x[ ] ); (B)void fun ( int s, int b[41] );(C)void fun( int p, int *s ); (D)void fun( int n, int a );(13)定义二维数组:int a[3][4];下列表示不同于与其他三项的是(A)(A)a+i (B)*(a+i) (C)a[i] (D)&a[i][0](14)若定义int (*p)[4]; 则p是一个( C )(A)指向整型变量的指针变量(B)指向有4个整型元素的一维数组的指针变量(C)指向函数的指针变量(D)指针数组名,有4个元素,每个元素均为一个指向整型变量的指针(15)设有如下程序段:char s[20] = “Wuhan”, *p;p = s;执行p = s; 语句后,以下叙述正确的是(A)(A)可以用*p表示s[0] (B)s数组中元素的个数和p所指字符串长度相等(C)s和p都是指针变量(D)数组s中的内容和指针变量p中的内容相同二、程序填空题(每空3分,共15分)注意:不能增行或删行,也不得更改程序的结构。
大学C语言期末考试练习题(带详解答案)一、单项选择题1.(A)是构成C语言程序的基本单位。
A、函数B、过程C、子程序D、子例程2.C语言程序从 C开始执行。
A) 程序中第一条可执行语句 B) 程序中第一个函数C) 程序中的main函数 D) 包含文件中的第一个函数3、以下说法中正确的是(C)。
A、C语言程序总是从第一个定义的函数开始执行B、在C语言程序中,要调用的函数必须在main( )函数中定义C、C语言程序总是从main( )函数开始执行D、C语言程序中的main( )函数必须放在程序的开始部分4.下列关于C语言的说法错误的是(B)。
A) C程序的工作过程是编辑、编译、连接、运行B) C语言不区分大小写。
C) C程序的三种基本结构是顺序、选择、循环D) C程序从main函数开始执行5.下列正确的标识符是(C)。
A.-a1B.a[i]C.a2_iD.int t5~8题为相同类型题考点:标识符的命名规则(1)只能由字母、数字、下划线构成(2)数字不能作为标识符的开头(3)关键字不能作为标识符选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3)6.下列C语言用户标识符中合法的是( B)。
A)3ax B)x C)case D)-e2 E)union选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1);7.下列四组选项中,正确的C语言标识符是(C)。
A) %x B) a+b C) a123 D) 123选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。
A、print _3d db8 aBcB、I\am one_half start$it 3paiC、str_1 Cpp pow whileD、Pxq My->book line# His.age选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键字,不满足(3)9.C语言中的简单数据类型包括(D)。
本科c语言程序设计考试试题及答案**本科C语言程序设计考试试题及答案**一、单项选择题(每题2分,共20分)1. C语言中,以下哪个关键字用于声明函数?A. intB. returnC. voidD. function答案:C2. 在C语言中,以下哪个是正确的字符串声明?A. char str[10] = "Hello";B. char str = "Hello";C. char str[] = "Hello";D. char str[10] = 'Hello';答案:C3. 下列哪个选项是C语言中的合法整型常量?A. 012B. 0x1AC. 0b1010D. 0.1答案:B4. C语言中,以下哪个运算符用于逻辑与?A. &&B. ||C. !D. |答案:A5. C语言中,以下哪个函数用于计算并返回字符串的长度?A. strlen()B. strcpy()C. strcat()D. strcmp()答案:A6. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A7. C语言中,以下哪个是正确的数组声明?A. int array[];B. int array[10] = {0};C. int array = 10;D. int array = {0};答案:B8. C语言中,以下哪个是正确的指针声明?A. int *ptr;B. int ptr[];C. int *ptr = 10;D. int ptr = 10;答案:A9. C语言中,以下哪个函数用于动态分配内存?A. malloc()B. calloc()C. realloc()D. free()答案:A10. C语言中,以下哪个是正确的文件操作函数?A. fopen()B. fclose()C. fgetc()D. All of the above答案:D二、填空题(每题3分,共15分)1. C语言中,用于声明一个整型变量的关键字是________。
C语言程序设计考试模拟题集第一卷说明:(1)第一卷全部为选择题,每题可供选择的答案中,只有一个正确答案。
(2)答本卷的题目时,要在标准答题纸上编号对应的栏目中,用铅笔将正确答案涂黑。
在试题上直接勾划者步得分。
(3)本卷共70分,其中第1~26题每题2分,第27~32每题3分。
第一部分:基础知识(20题,共40分)(1) 若有定义:int a=8,b=5,C;,执行语句C=a/b+0.4;后,c的值为。
A) 1.4 B) 1 C) 2.0 D) 2(2) 若变量a是int类型,并执行了语句:a=‘A'+1.6;,则正确的叙述是。
A)a的值是字符CB) a的值是浮点型C)不允许字符型和浮点型相加D) a的值是字符‘A’的ASCII值加上1。
(3) 不合法的main函数命令行参数表示形式是。
A) main(int a,char *c[])B) main(int arc,char **arv)C) main(int argc,char *argv)D) main(int argv,char *argc[])(4) 以下选项中不属于C语言的类型的是。
A) signed short int B) unsigned long intC) unsigned int D) long short(5) 若有说明语句: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);(6) 在16位C编译系统上,若定义long a; ,则能给a赋40000的正确语句是。
本科《C语言》第二次试卷
姓名学籍号专业
一、选择题(每小题2分,共15×2=30分)
1、计算机只能识别(A)
A.二进制B.八进制C.十进制D.十六进制
2、每一个语句和数据说明的最后必须有一个(C)
A.句号B.逗号C.分号D.冒号
3、下面变量名都合法的是(B)
A.sum day #33 B.Sum _total month
C.li_ling $zhang Sum D.tan Student’s
4、字符型变量用来储存字符常量时(B)
A.既能存放一个字符,又能存放一个字符串
B.只能存放一个字符,不能存放一个字符串
C.只能存放一个字符串,不能存放一个字符
D.既不能存放一个字符,有不能存放一个字符串
5、C程序中的计算功能主要是(A)来实现的。
A.表达式B.赋值语句C.函数D.输入输出语句
6、下列赋值表达式不正确的是(A)
A.a=3*5=4*3 B.a=b=c=3
C.(a=3*5)=4*3 D.a=(b=3)
7、下列优先级的排列正确的是(D)
A.关系运算符>算术运算符>赋值运算符B.赋值运算符>关系运算符>算术运算符C.赋值运算符>关系运算符>算术运算符D.算术运算符>关系运算符>赋值运算符8、算数表达式的值是关系表达式和逻辑表达式的值是一个(C )
A.数值数值B.逻辑量逻辑量C.数值逻辑量D.逻辑量数值
9.数组的名字代表数组首元素的(B)
A、值B.地址C.类型D.以上全正确
10、如果两个指针变量都指向同一个数组中的元素,则两个变量之差是两个指针之间的元素的(C)
A.大小B.个数C.差值D.以上全正确
11、“.”是成员运算符,它在所有的运算符中优先级(D )
A.最低B.仅比赋值运算符高C.仅比“!”低D.最高
12、如果a=3,b=5,则表达式Sum=(a>b)?a:b=( C )
A.3 B.8 C.5 D.-2
13、如果float x=3.14;int y=3;则(int)(x+y)=( A )
A.6 B.6.140000 C.6.000000 D.6.14
14、逻辑表达式a+b>c&&b==c的值(a=3,b=4,c=5.)( D )
A.1 B.5 C.8 D.0
15、#include<stdio.h>
void main()
{
int i,sum=0;
for(i=0;i<10;i++)
sum=sum+i;
printf(“%d\n”,sum);
}程序的运行结果是(B)
A.55 B.45 C.9 D.10
二、判断(每小题1分,共10×1=10分)
1.对a,b,c赋值是int a=b=c=3 。
( ×)
2.在switch语句中,各个case和default的出现次序不影响执行结果。
(√)
3.break语句可以用于循环语句和switch语句之外的其他语句。
(×)
4.数组元素的指针就是数组元素的值。
(×)
5.如果以定义x为float型,进行强制类型运算后得到一个int型的中间变量,它的值四舍五入,而x的类型不变。
(×)
6.char c;c=“a”。
(×)
7.写字符串常量时必须在每一个字符串常量的结尾自行增加一个字符‘\0’。
(×)
8.全局变量尽在需要时才开辟储存单元。
(×)
9.可以将一个整数赋值给一个指针变量。
(×)
10.如果在“格式控制字符串”中除了格式声明以外还有其他字符,则输入数据时在对应位置应输入于这些字符相同的字符。
(√)
三、改错题,下面①—⑩语句中有5处错误,请找出并改正。
(每空1分,共5×2=10分)
#include<stdio.h>
void main()
{
①int max(int x,int y)
②int a,b;
③printf(“please input two number:”);
④scanf(“%d,%d”,a,b);
⑤c=max(a,b);
⑥printf(“max is %d\n”,c);
}
int max(int x,int y)
{
⑦int z;
⑧if(x>y)
⑨z=x;
⑩else z=y;
}
1._第1处有错误,正确应为int max(int x,int y);
2.第2处有错误,应将第5处的变量c定义其中,正确为int a,b,c;
3.第4处有错误,正确应为scanf(“%d,%d”,&a,&b);
4._第5处有错误,变量c使用前得先定义,可将第2处修改为int a,b,c;
5.第10处有错误,子函数max()得有返回值,应在第10处后增加语句return z;
四、简答题(每小题5分,共5×2=10分)
1.怎样比较字符串的大小?
答:可以使用函数int strcmp(const char *string1,const char *string2)来比较两个字符串的大小,返回值<0,表示string1小于string2,返回值为0,表示string1等于string2,返回值>0,表示string1大于string2。
比较时,先比较长度,长度大就大,长度一样从第一个字母开始比较,字母大的就大。
2.单说明一下while和do…while的异同点。
答:while和do…while都是循环结构,对于有些问题,我们既可以用while语句处理,也可以转换成do…while结构,用do…while语句处理,这两者区别是,while语句是先判断表达式后执行循环体内的语句,do…while是先执行一次循环体内语句,然后判别表达式。
五、写出下列程序的运行结果并简要分析一下为什么是这个结果。
(共10分)
#include<stdio.h>
void main()
{
void print_star();
void print_message();
print_star();
void message();
print_star();
}
void print_star()
{
Printf(“**************”);
}
void print_message()
{
Printf(“How do you do!\n”);
}
输出结果:**************How do you do!
六、编程并写出运行结果(每小题15分,共15×2=30分)
1.输入两个学生a和b的成绩,输出成绩高的,并输出二者的成绩差值。
#include<stdio.h>
void main()
{
int a,b,c,d;
printf(“please input two cheng ji:”);
scanf(“%d,%d”,&a,&b);
if a>b
c=a;
d=a-b;
else
c=b;
d=b-a;
printf(“gao cheng ji is %d\n”,c);
printf(“cheng ji cha is %d\n”,d);
}
2.有一个函数:x x<1
y= 2x-1 1≤x<10
3x-11 x≥10
根据函数写一段程序,输入x的值为4,输出y的值。
#include<stdio.h>
void main()
{
int x,y;
printf(“please input X:”);
scanf(“%d”,&x);
if (x<1)y=x;
else if (x>=1 && x<10)y=2*x-1;
else y=3*x-11;
printf(“Y de zhi shi: %d \n”,y);
}
如果x的值为4,y的值为7。