2011高级语言程序设计试卷1及答案
《高级语言程序设计》复习题及答案

一、选择题1.以下表达正确的选项是〔〕:A) 在C程序中,main函数必须位于程序的最前面B) C程序的每行只能写一条语句C) C语言使用库函数实现输入输出操作D) 注释中的拼写错误会影响编译结果2、以下说法中正确的选项是()A) C语言程序总是从第一个的函数开始执行B) C语言程序总是从main()函数开始执行C)在C语言程序中,要调用的函数必须在main()函数中定义D) C语言程序中的main()函数必须放在程序的开始局部3、以下选项种说法正确的选项是〔〕A) 函数由声明局部和执行局部两局部组成B)语言中main函数一定在程序的开始局部C)C语言程序总是从第一个定义的函数开始执行D)C程序的每行中只能写一条语句4、设有说明:int a; float b; char c; double d; 那么表达式1.3*a+2*b*c+d*(int)2.6 值的类型为〔〕。
A〕 double B) char C) float D) int5、 C语言的标识符只能由字母、数字和下划线三种字符组成,且第一个字符〔〕A)必须为字母B)必须为下划线C)必须为字母或下划线D)可以是字母、数字和下划线中任一种字符6、以下不正确的C语言标识符是〔〕。
A) ABC B) abc C) a_bc D) void7、以下运算符中优先级最高的是〔〕A) < B〕+ C〕&& D〕!=8、以下选项中属于C语言中合法关键字的是〔〕A〕Float B〕abc C〕int D〕CASE9、假设x、i、j和k都是int型变量,计算下面表达式后,x的值为〔〕x=(i=4,j=16,k=32)A)4 B〕16 C)32 D)5210、在C语言中,要求数据必须是整型的运算符是〔〕A)/ B〕+ + C〕!= D〕 %11、假设整型变量x的值为8,那么以下表达式中值为1的表达式是A)x+=x-=x B) x%=x-1 C) x%=x%=3 D) x/=x+x12、假设w=1,x=2,y=3,z=4,那么条件表达式“w > x ? w : y < z ? y : z〞的值是〔〕A)4 B〕3 C〕2 D〕113、有以下程序,程序运行后的输出结果是。
高级语言程序设计真题2011年下半年

高级语言程序设计真题2011年下半年(总分:100.00,做题时间:90分钟)一、单项选择题(总题数:15,分数:30.00)1.自定义标识符由字母、数字或下划线组成,且第一个字符必须是( )A.数字 B.字母或数字C.数字或下划线 D.字母或下划线(分数:2.00)A.B.C.D. √解析:[解析] 标识符是用户自定义的字符序列,通常用来表示程序中各种语法成分的名称。
C语言规定,标识符是由字母或下划线开头的字母、数字、下划线组成的字符序列。
2.运算符优先级符合由高到低排列的一组是( )A.+、!=、&&、= B.&&、!=、+、=C.!=、+、=、&& D.&&、=、!=、+(分数:2.00)A. √B.C.D.解析:[解析] 运算符的优先级由高到低为:算术运算符、关系运算府、双目逻辑运算符、赋值运算符,故本题选A。
3.转义字符中正确的是( )A.'/' B.'/xyz'C.'//' D.'/820'(分数:2.00)A.B.C. √D.解析:[解析] 转义字符由“反斜杠字符/”开始后跟单个字符或若干个字符组成。
选项C中的'//'表示反斜杠,其他三项均不正确,故本题选C。
4.下列程序段执行后x、y和z的值分别是( )int x=10,y=20,z=30;if(x>y)z=x;x=y;y=z;A.10,20,30 B.20,30,30C.20,30,10 D.20,30,20(分数:2.00)A.B. √C.D.解析:[解析] 题干中,条件表达式“x>y”的值为假,所以不执行语句“z=x;”,而按顺序执行语句“x=y;y=z;”,即x=20,y=39,z=30,故本题选B。
5.下列程序段执行后的输出结果是( )int k=4,a=3,b=2,c=1;printf("%d/n",k<a?k:c<b?c:a);A.1 B.2C.3 D.4(分数:2.00)A. √B.C.D.解析:[解析] 用条件运算符构成的表达式称为条件表达式,格式为:表达式?表达式2:表达式3。
2011年10月全国自考高级语言程序设计(一)真题及参考答案

2011年10月全国自考高级语言程序设计试题高级语言程序设计(一) 试题课程代码:00342一、单项选择题(本大题共1 5小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.自定义标识符由字母、数字或下划线组成,且第一个字符必须是( )A.数字B.字母或数字C.数字或下划线D.字母或下划线2.运算符优先级符合由高到低排列的一组是( )A.+、!=、&&、=B.&&、!=、+、=C.!=、+、=、&&D.&&、=、!=、+3.转义字符中正确的是( )A.'\'B. '\xyz'C. '\\'D. '\820'14.下列程序段执行后x、y和z的值分别是( )int x=10,y=20,z=30;if(x>y)z=x;x=y;y=z;A.10,20,30B.20,30,30C.20,30,10D.20,30,205.下列程序段执行后的输出结果是( )int k=4,a=3,b=2,c=l;printf("%d\n",k<a? k:c<b? c:a);A.1B.2C.3D.46.关于for(表达式1;表达式2;表达式3),叙述正确的是( )A.表达式1不可以缺省B.表达式2不可以缺省C.表达式3不可以缺省D.三个表达式都可以缺省7.设int *p[4];,则标识符p是( )A.整型数组名B.指针数组名C.指针函数名D.指向整型变量的指针8.在循环结构中,continue语句的作用是( )A.继续执行本次循环B.提前退出多重循环C.提前结束本次循环D.提前退出本重循环9.数组定义及初始化正确的是( )A.char a[5]={};B.int a[5]={0,1,2,3,4,5};C.char a={"string"};D.char a[]={'0','1','2','3','4','5'};1O.设int m;,与while(!m)等价的是( )A.while(m!=0)B.while(m==1)C.while(m==O)D.while(m!=1)11.设char s1[]="12345",s2[]="1234";,执行语句printf("%d\n",strlen(strcpy(s1,s2)));后的输出结果是( )A.4B.5C.9D.1O12.下列不属于C语言数据类型的保留字是( )A.realB.voidC.floatD.double13.设int i,j=7,*p=&j;,与赋值语句i=j;等价的是( )A.i=&p;B.p=*&j;C.p=&j;D.i=*p:14.正确表示数学关系式x≥y≥z的C语言表达式是( )A.x>=y>=zB.(x>=y)&&(y>=z)C.(x>=y)&(y>=z)D.(x>=y)||(y>=z)15.设struct student{char name[10];char sex;}stu;,则sizeof(stu)的值是( )A.2B.1OC.11D.12二、填空题(本大题共10小题,每小题2分,共20分)请在每小题的空格中填上正确答案。
高级语言程序设计(一)-全国-0901

0901-全国-高级语言程序设计(一)总分:100一、单选题(共15题,共30分)1、设inti=1,k=2;,则错误的循环语句是()(2分)A:for(i=0,k=-1;i++,k++);B:for(;k-1;i++);C:for(i=1,k=4;k--;i++);D:for(;k--;);2、一维数组a的正确说明语句为()(2分)A:inta(10);B:intn=10,a[n];C:intn;scanf(″%d″,&n);inta[n];D:#defineSIZE10inta[SIZE];3、正确的条件语句为()(2分)A:if((a=b;)>0)t=a;B:if((a=b)>0)thent=a;C:if(a>b)t=a;D:if(a<b={a++;b++});4、正确的数组定义及初始化的是()(2分)A:chara[10]={“string”};B:inta[5]={0,1,2,3,4,5};C:chara={“string”};D:inta[]={x,y,z};5、在C语言中,标准的输入设备stdin是指()(2分)A:软盘B:硬盘C:显示器D:键盘6、已知字符’A’的ASCII码值是65,且charc1=’A’,c2=’D’;则执行语句printf(″%d,%d\n″,c1,c2-2);后的输出结果是()(2分) A:A,DB:A,BC:65,68D:65,667、若有下列程序段:intx=1,y=2;x=x+y;y=x-y;x=x-y;则执行后x和y的值分别为()(2分)A:1和2B:2和2C:2和1D:1和18、设charc1;,则c1中为小写英文字母字符的正确表达式为()(2分)A:’a’<=c1=’z’B:(c1>=’a’)&&(c1<=’z’)C:(c1>=a)&&(c1<=z)D:(’a’<=c1)||(’z’>=c1)9、设inta=7;floatx=2.5,y=4.7;,则表达式x+3%(int)(x+y)/4的值是()(2分) A:2.75B:3.5C:2.5D:0.010、设inta,b;,则表达式(b=2,a=5,b++,a+b)的值是()(2分)A:2B:5C:7D:811、在循环体中用来强制继续循环的语句是()(2分)A:breakB:continueC:exitD:return12、设intk,a,b;unsignedlongw=5;doublex=1.42;则不符合类型要求的表达式是()(2分)A:x%(-3)B:w+=2C:k=(a=2,b=3)D:a+=(b=4)*(a=3)13、设typedefstruct{inta;chars[10];}TYPE;TYPEu1;则printf(‘‘%d\n”,sizeof(u1));的输出结果是()(2分)A:2B:12C:14D:1614、设chars1[]=“string1”,s2[8],*s3,*s4=“string2”;,则对系统函数strcpy的错误调用是()(2分)A:strcpy(s1,“string1”);B:strcpy(s4,“string2”);C:strcpy(“string2”,s2);D:strcpy(s3,“string1”);15、设inta=3,b=4;,则printf(‘‘%d,%d,”(a,b),(b,a));的输出结果是()(2分) A:3,4B:4,3C:3,4,4,3D:4,3,3,4二、填空题(共10题,共20分)16、能正确表述“2<x<3或x<-10”的C语言表达式是______。
自考04737C++程序设计201101历年真题及答案

2011 年 1 月高等教育自学考试全国统一命题考试C++ 程序设计试题 课程代码: 04737一、单项选择题 (本大题共 20小题,每小题 1分,共 20分) 在每小题列出的四个备选项中只有一个是符合题目要求的, 号内。
错选、多选或未选均无分。
1. 在哪种派生方式中,派生类可以访问基类中的 protected 成员 ( ) A.public 和 privateB.public 和 protectedC.protected 和 privateD. 仅 protected2. 对C++语言和C 语言的兼容性,描述正确的是 ()A.C++兼容C B.C++部分兼容C.C++不兼容 CD.C 兼容 C++ 3. 在C++中使用流进行输入输出,其中用于屏幕输出的对象是A. cerrB.cinC.coutD.cfile4. 对使用关键字new 所开辟的动态存储空间,释放时必须使用 A. free B.create C.deleteD.realse5. 如没有使用 private 关键字定义类的数据成员,则默认为 A.private B.publicC.protectedD.friend6. 使用值传递方式将实参传给形参,下列说法正确的是 ( A.形参是实参的备份 B.实参是形参的备份 C. 形参和实参是同一对象 D. 形参和实参无联系7. 在函数调用时,如某一默认参数要指明一个特定值,则有 ()A. 其之前所有参数都必须赋值B. 其之后所有参数都必须赋值C.其前、后所有参数都必须赋值D.其前、后所有参数都不必赋值8. 设存在函数 int max(int , int) 返回两参数中较大值,若求 22, 59, 70 三者中最大值, 下列表达式不正确的是 ( )A.int m=max(22 , max(59, 70)) ;C.int m=max(22 , 59, 70);9. 下列哪个类型函数不适合声明为内联函数 A. 函数体语句较多C.函数执行时间较短 10.int Func(int , int) ;不可与下列哪个函数构成重载 A.int Func(int , int , int) ; C.double Func(double , double) ; 11. 对类中声明的变量,下列描述中正确的是 A. 属于全局变量 B. 只属于该类C. 属于该类,某些情况下也可被该类不同实例所共享请将其代码填写在题后的括B.int m=max(max(22 ,59),70) ; D.int m=max(59 , max(22, 70)) ; ( ) B.函数体语句较少 D. 函数执行时间过长( ), int) ; , double) ;B.doub le Func(in tD.任何情况下都可被该类所有实例共享12. 类的私有成员可在何处访问 ( )A. 通过子类的对象访问B. 本类及子类的成员函数中C.通过该类对象访问D.本类的成员函数中13. 如果没有为一个类定义任何构造函数的情况下,下列描述正确的是 ( )A. 编译器总是自动创建一个不带参数的构造函数B. 这个类没有构造函数C. 这个类不需要构造函数D. 该类不能通过编译14. 一个类可包含析构函数的个数是 ( )A.0 个B.1 个C. 至少一个D.0 个或多个15.this 指针存在的目的是 ( ) A.保证基类公有成员在子类中可以被访问B. 保证每个对象拥有自己的数据成员,但共享处理这些数据成员的代码C. 保证基类保护成员在子类中可以被访问D.保证基类私有成员在子类中可以被访问16. 下列关于类的权限的描述错误的是 ( )A. 类本身的成员函数只能访问自身的私有成员B. 类的对象只能访问该类的公有成员C. 普通函数不能直接访问类的公有成员,必须通过对象访问 D •—个类可以将另一个类的对象作为成员请在每小题的空格中填上正确答案。
高级语言C++程序设计--考试试卷 - 答案

高级语言C++程序设计-考试试卷—答案姓名: ________________ 成绩__________________答案:1-11题 D C D A C D A B D D B 答案:12-22题 D A D D A D D D A A D1. 按照C 语言规定的用户标识符命名规则,不能出现在标识符中的是A)大写字母B)下划线C)数字字符D)连接符2. 以下选项中不合法的标识符是A)cout B)FOR C)&&a D)_003. 设有定义:int x=2;,以下表达式中,值不为6的是A)x*=(1+x) B)x*=x+1 C)x++,2*x D)2*x, x+=24. C++ 源程序中不能表示的数制是A)二进制B)十六进制C)十进制D)八进制5. 以下关于结构化程序设计的叙述中正确的是A)一个结构化程序必须同时由顺序、分支、循环三种结构组成B)有三种基本结构构成的程序只能解决小规模的问题C)在C ++语言中,程序的模块化是利用类实现的D)结构化程序使用goto 语句会很便捷6. 以下定义语句中正确的是A)float a=1,*b=&a,*c=&b; B)int a=b=0;C)double a=0.0;b=1.1; D)char A=65+1,b=’b’;7. 计算机能直接执行的程序是A)可执行程序B)目标程序C)源程序D)汇编程序8. 以下叙述中正确的是A)C++ 语言程序中的注释必须与语句写在同一行B)简单C++ 语句必须以分号结束C)C++ 语句必须在一行内写完D)C++ 程序中的每一行只能写一条语句9. 以下选项中,不合法的C++语言用户标示符是A)AaBc B)a_b C)_1 D)a--b10.关于C++语言的变量,以下叙述中错误的是A)由三条下划线构成的符号名是合法的变量名B)所谓变量是指在程序运行过程中其值可以被改变的量C)程序中用到的所有变量都必须先定义后才能使用D)变量所占的存储单元地址可以随时改变11. C ++语言中double 类型数据占字节数为A)12 B)8 C)4 D)1612. 以下叙述中正确的是A)空语句就是指程序中的空行B)花括号对{}只能用来表示函数的开头和结尾,不能用于其他目的C)复合语句在语法上包含多条语句,其中不能定义局部变量D)当用cin 从键盘输入数据时,每行数据在没有按下回车键(Enter 键)前,可以任意修改13. 以下叙述中正确的是A)C++ 语言程序总是从main 函数开始执行B)C++ 语言程序所调用的函数必须放在main 函数的前面C)C++ 语言程序中main 函数必须放在程序开始位置D)C++ 语言程序总是从最前面的函数开始执行14. 以下叙述中正确的是A)if 语句只能嵌套一层B)不能在else 子句中在嵌套if 语句C)改变if-else 语句的缩进格式,会改变程序的执行流程D)if 子句和else 子句中可以是任意合法的C ++语句15. 以下叙述中正确的是A)在while 语句和do-while 语句中无法使用continue 语句B)当break 出现在循环体中的switch 语句体内时,其作用是跳出该switch 语句体,并终止循环C)continue 语句的作用是:在执行完本次循环体中剩余语句后,终止循环D)只能在循环体内和switch 语句体内使用break 语句16. 已定义以下函数:int fun(int *p){return *p;}fun 函数返回值是A)一个整数B)形参p 的地址值C)形参p 中存放的值D)不确定的值17. 设有定义:double a[10],*s=a;以下能够代表数组元素a[3]的是A)*s[3] B)(*s)[3] C)*s+3 D)*(s+3)18. 下列选项中,能正确定义数组的语句是A)int num[0...2008]; B)int num[ ];C)int N=2008; int num[N]; D)#define N 2008; int num[N];19. 设有以下函数:void fun(int n,char *s){......} 则下面对函数指针的定义和赋值均正确的是A)void *pf(); pf=fun; B)void (*pf)(int,char );pf=&fun;C)void *pf(); *pf=fun;D)void (*pf)(int ,char *) ; pf=fun;20. 以下叙述中正确的是A)int *p1,int **p2,int *p3;都是合法的定义指针变量语句B)语句p==NULL;与p==\0 是等价的语句C)p==NULL;执行后,指针p 指向地址为0 的存储单元D)指针变量只能通过求指针运算符(&)获得地址值21. int *func(int a[10], int n);则以下叙述中正确的是A)说明中的a[10]改为a[]或*a 效果完全一样B)函数中不能对a 进行移动指针(如a++)的操作C)只有指向10 个整数内存单元的指针,才能作为实参传递给形参D)形参a 对应的实参只能是数组名22. 若有以下语句typedef struct S{ int g;char h;} T;以下叙述中正确的是A)T 是struct S 类型的变量B)可用S 定义结构体变量C)S 是srurct 类型的变量D)可用T 定义结构体变量第二题:类与对象编程(25分)自定义一个简单的时间类TimeType,它具有数据成员h、m、s,用来表示当前时间的时、分、秒。
高级语言程序设计习题答案(免费)

int a=5,b=3,t;
int&ra = a;
int &rb = b;
t = ra;ra = rb;rb = t;
(a) 3和3(b)3和5(c)5和3(d) 5和5
18.在下列运算符中,(d)优先级最高。
(a) <=(b)*=(c)+(d)*
19.在下列运算符中,(d)优先级最低。
(c) 0.2e-2.5,e-5(d) 5.0e-4,0.1,8.e+2
12.下列正确的字符常量为(b,d)。
(a) " a "(b) '\0'(c) a(d) '\101'
13.下列选项中,(a,b,c)能交换变量a和b的值。
(a) t=b;b=a;a=t;(b) a=a+b;b=a-b;a=a-b;
解答:略
第2章 程序控制结构
2.1选择题
1.已知int i,x,y;在下列选项中错误的是(c)。
(a) if(x == y)i++;(b)if(x=y)i--;
(c) if(xy)i--;(d)if(x+y)i++;
2.设有函数关系为y= ,下面选项中能正确表示上述关系为(c)。
(a)y=1;(b)y=-1;
switch(i)
{case 1:i++;
case 2:i--;
case 3:++i;break;
case4:--i;
default:i++;
}
(a)1(b)2(c)3(d)4
4.已知int i=0,x=0;下面while语句执行时循环次数为(d)。
2011年1月高级语言程序设计(一)真题及参考答案

2011年1月高级语言程序设计(一)试题一、单项选择题(本大题共15小题,每小题2分,共30分)1.下列运算符的操作数必须是整型的是(C )A./B.!C.%D.=2.可用于C语言用户标识符的是( D )A.void,defineB.2c,DOC.For,-abcD.as_b3,_1233.函数调用语句fun(fun(a,a+b,a+c),(a,b,c),5);中函数fun的参数个数是( A )A.3B.4C.5D.64.设int a=0,b=1;,下列语句错误..的是( D )A.a=b=10;B.a++;C.b+=a;D.(a+b)++;5.能正确表达数学关系式0≤x<20的C语言表达式是( C )A.0<=x<20B.x>=0||x<20C.x>=0&&x<20D.!(x<=0)&&x<206.正确的C语言字符常量是( A )A.'\\'B. '65'C.“A”D. '/n'7.设char s[ ]=“1234567”;,执行printf(“%d,%d\n”,strlen(s),sizeof(s));后的输出结果是( B )A.7,7B.7,8C.8,7D.8,88.设int a[ ]={12,34,56,78},*p=a;,下列表达式的值为56的是( B )A.p[1+2]B.*(a+2)C.a[3]D.*(p+3)9.对二维数组正确定义并初始化的是( A )A.int a[ ][3]={1,2,3,4,5,6};B.int a[3][3]=(1,2,3,4,5,6);C.int a[3][ ]={{l,2,3},{4,5,6}};D.int a[3][3]={a,b,c,d,e,f,g};10.设double x=5.168;,执行printf(“%5.3f\n”,(int)(x*10+0.5)/10.0);后的输出结果是( C )A.5.218B.5.210C.5.200D.5.16811.关于函数,下列叙述正确的是( B )A.一个函数中可以定义其它的函数B.C程序总是从main()函数开始执行C.main()函数也可以被其它函数调用D.一个C程序可以有多个main()函数12.设char ch=…a‟;,执行printf(“%d,%c\n”,ch,ch+2);后的输出结果是( A )A.97,cB.97,99C.a,cD.a,a+213.下列叙述正确的是( C )A.continue语句的作用是跳出循环体B.while循环语句的循环体至少执行一次C.do-while循环语句的循环体至少执行一次D.switch语句中的每个case语句组必须含有break语句14.设struct{int x;int y;}m[2]={7,3,2,1};,执行printf(“%d\n”,m[0].x/m[1].x*m[0].y);后的输出结果是( B )A.10.5B.9C.8.0D.715.设int a=l,b=2,c=3;,执行表达式(a>b)&&(c=1)后c的值是( D )A.0B.1C.2D.3二、填空题(本大题共10小题,每小题2分,共20分)16.表达式3 !=6的值是1。
2011高级语言程序设计考卷B及参考答案

…
在每小题列出的四个备选项中只有一个是符合题目要求的,请将所选代码填写在下面
… … … … …
专业 班级
表格中的对应位置。错选、多选或未选均无分。
1
2
3
4
5
6
7
8
9
10
装 订
1.下列选项中,可以用作用户定义的合法标识符的是
线
A._123
B.foo~bar
C.case
D.3var
内
不
2.设有 int x=2,y,z;执行 z=y=x++;后变量 z 的值是
}
输出:____________________
3
得分
五、程序填空题(本大题共 2 小题,每空 2 分,共 10 分)
请在程序中的下划线处填空,将程序补充完整。
1.下面程序运行后,输出二维数组 b 的最小值(-30)。
#include <iostream>
…
using namespace std;
1.(x ) 2.(x ) 3.(√ ) 4.( √ ) 5.(x )
四、程序阅读题(本大题共 4 小题,每小题 5 分,共 20 分)
1.s=55
2.73 66
3.2 1 3 3 1
4.654321
五、程序填空题(本大题共 2 小题,每空 2 分,共 10 分)
1.(1)b
(2)a[i][j]<tem
1.编写一个程序,输出一维数组 a 的最大元素值和最小元素值。要求在程序中定义一个一维数
组 a 并赋初值(如 int a[8]={36,25,48,14,55,20,47,82};),输出“Min=14 , Max=82”。
2011高级语言程序设计试卷1及答案

一、选择题:(共20题,每题1.5分,共30分)1 A2 A3 A4 B5 B6 A7 B8 C9 C 10 D11 C 12 C 13 B 14 D 15 C16 D 17 D 18 A 19 D 20 A1. C语言属于( A )A.高级语言 B. 低级语言C.中级语言 D. 机器语言2. 下列全部属于合法的用户标识符的是( A )A.A1 P_0 dS B. float 2la _A C. *a hy kk D. _123 temp main3. C语言中运算对象必须是整型的运算符为( A )A.% B. / C.= D. <=4. 设有int i; char c; float f; 以下结果为整数的表达式是( B )A.i+f B. i/c C.c+f D. i+c+f5. 逗号表达式(a=5*3, a+20),a+15的值是( B )A.35 B. 30 C.40 D. 206. 设有语句char a = '\72'; 则变量a( A )A.包含一个字符 B. 包含两个字符C.包含3个字符 D. 说明不合法7. 若有以下定义和语句,则输出结果是( B )char c1='b',c2='e';printf("%d,%c\n",c2-c1,c2-'a'+'A');A.2,M B. 3,E C.2,E D. 不确定8. 设有如下程序段,则下面说法中正确的是( C )int k=10;while(k=0)k=k-1;A.while循环执行10次 B. 循环是无限循环C.循环体语句一次也不执行 D. 循环体语句执行一次9. 当pi=3.1415926时,printf(" %-7.2f",pi);的输出结果是( C )(注:□代表空格)A.3.14159 B. 3.14 C.3.14□□□ D. □□□3.1410. 下列运算符中,优先级最高的是( D )A.! B. + C.|| D. ( )11. 表达式a==b&&b==c计算的优先级别是( C )A.((a==b)&&b)==c) B. (a==(b&&b))==c C.(a==b)&&(b==c) D. a==((b&&b)==c12. 已知x=45, ch=‟B‟,y=0;则表达式(x>=y && ch<‟b‟ && ! y)的值是( C )A.0 B. 语法错C.1 D. “假”13. 下列关于switch语句和break语句的结论中,正确的是( B )A.break语句是switch语句的一部分B.在switch语句中可以根据需要使用或不使用break语句C.在switch语句中必须使用break语句D.break语句不能在switch语句中使用14. 若变量c为char类型,能正确判断出c为小写字母的表达式是( D )A.'a'<=c<= 'z' B. (c>= 'a')||(c<= 'z') C.('a'<=c)and ('z'>=c) D. (c>= 'a')&&(c<= 'z')15. 执行语句for ( i=0; i++<3; ); 后,变量i的值为( C )A.2 B. 3 C.4 D. 516. 已知:int a[10]; 则对a数组元素的正确引用是( D )A.a[10] B. a[3.5] C.a(5) D. a[9-9]17. 对字符数组str赋初值,str不能作为字符串使用的一个是( D )A.char str[]="shanghai"; B. char str[]={"shanghai"};C.char str[9]={'s','h','a','n','g','h','a','i'}; D. char str[8]={ 's','h','a','n','g','h','a','i'};18. 以下对C语言函数的有关描述中,正确的是( A )A.在C语言中,调用函数时,根据实参传递给形参值的不同,通常有值传递方式和地址传递方式两种。
2011年10月高级语言程序设试题及答案

2011年10月高级语言程序设计(一)一、单项选择题(本大题共1 5小题,每小题2分,共30分)1、自定义标识符由字母、数字或下划线组成,且第一个字符必须是( D )A.数字B.字母或数字C.数字或下划线D.字母或下划线2、运算符优先级符合由高到低排列的一组是( A )A.+、!=、&&、=B.&&、!=、+、=C.!=、+、=、&&D.&&、=、!=、+3、转义字符中正确的是( C )A.'\'B. '\xyz'C.'\\'D. '\820'4、下列程序段执行后x、y和z的值分别是( B )int x=10,y=20,z=30;if(x>y)z=x;x=y;y=z;A.10,20,30B.20,30,30C.20,30,10D.20,30,205、下列程序段执行后的输出结果是( A )int k=-4,a=3,b=2,c=l;printf("%d/n",k<a?k:c<b?c:a);A.1B.2C.3D.46、关于for(表达式1;表达式2;表达式3),叙述正确的是( D )A.表达式1不可以缺省B.表达式2不可以缺省C.表达式3不可以缺省D.三个表达式都可以缺省7、设int*p[4];,则标识符p是( B )A.整型数组名B.指针数组名C.指针函数名D.指向整型变量的指针8、在循环结构中,continue语句的作用是( C )A.继续执行本次循环B.提前退出多重循环C.提前结束本次循环D.提前退出本重循环9、数组定义及初始化正确的是( D )A.char a[5]={};B.int a[5]={0,1,2,3,4,5};C.char a={"string"};D.char a[]={'0','1','2','3','4','5'};10、设int m;,与while(!m)等价的是( C )A.while(m!=0)B.while(m=1)C.While(m=0)D.while(m!=1)11、设char*s l="12345",*s2="1234";,执行语句printf("%d\n",strlen(strcpy(sl,s2)));后的输出结果是( A ) A.4 B.5 C.9 D.1012、下列不属于C语言数据类型的保留字是( A )A.realB.voidC.floatD.double13、设int i,j=7,*p=&j;,与赋值语句i=j;等价的是( D )A.i=&p;B.p=*&j;C.p=&j;D.i=*p:14、正确表示数学关系式x≥y≥z的C语言表达式是( B )A.x>=y>=zB.(x>=y)&&(y>=z)C.(x>=y)&(y>=z)D.(x>=y)||(y>=z)15、设struct student{char name[10];char sex;}stu;,则sizeof(stu)的值是( C )A.2B.10C.11D.12二、填空题(本大题共10小题,每小题2分,共20分)16、设int a=2,b=3;float x=3.5,y=2.5;,表达式(float)(a+b)/2+(int)x%(int)y的值是_3.5_。
11级高级语言程序期末试卷答案_A

高级语言程序设计A卷答案二、程序填空题:(本题共10小题,每空2分,共20分)1. int t2. a=b3. 14. (2.0*i)* (2.0*i) 注明:一定要用一个2.0,否则扣1分5. i++或i=i+16. N-17. i+18. a[i]<a[j]9. 10. b.score[i]三、程序阅读题(本题共5小题,每题4分,共20分)1、132、163、64、BOC5、10 20 30四、设计题:(本题共3小题,每题10分,共30分)1、#include<stdio.h> // 1分void main() // 1分{int x,y; 或float x,y;//1分printf("please input x"); //1分scanf("%d",&x); //1分if(x>0) //2分y=x*x+2*x+1;if(x= =0) //1分y= -7;if(x<0) //2分y=3*x-5;printf("\ny is %d",y);}2、#include <stdio.h>#define N 1000void main( ){int i,j,num[N]; //1分for(i=0;i<N;i++) // 2分num[i]=i+1;num[0]=0; //1分for(i=1;i<N;i++)if(num[i]!=0) //1分for(j=i+1;j<N;j++){ if(num[j]!=0 &&num[j]%num[i]==0) //2分num[j]=0;}j=0;for(i=0;i<N;i++) //1分if(num[i]!=0) //1分{ printf("%d ",num[i]);j++;if(j%5==0) printf("\n"); //1分}}3、#include <stdio.h>int reverse(int);//1分,若函数先定义后调用,直接加1分void main( ){int num;printf("\n请输入您的数据:\n");scanf("%d",&num); //1分printf("\n该数的逆序数为:%d\n",reverse(num)); //函数调用和结果输出2分}int reverse(int number) //1分{ int n=0;while (number > 0) //1分{n=n*10+number%10; //2分number /= 10; //1分}return (n); //1分}。
高级语言程序设计试题(卷)与答案

1.1 单项选择题1.二进制语言是属于()①面向机器语言②面向问题语言③面向过程语言④面向汇编语言【解】人们研制了许许多多计算机程序设计语言,其中二进制语言直接来自计算机的指令系统,与具体计算机紧密相关,所以是一种面向机器语言。
面向问题语言是为了易于描述和求解某类特定领域的问题而专门设计的一种非过程语言。
面向过程语言是一种能方便描述算法过程的计算机程序设计语言。
有汇编语言,但没有面向汇编语言。
汇编语言也是一种面向机器的语言,与机器语言比较,汇编语言用有助于记忆的符号来代表二进制代码。
所以解答是①。
2.下列语言中不属于面向过程的语言是()①高级语言②低级语言③C语言④PASCAL语言【解】C语言和PASCAL等程序设计语言都是高级语言,它们用于描述复杂加工的处理过程,所以也称它们是面向过程语言。
低级语言是指机器语言和汇编语言,低级语言是面向机器的语言,而不是面向问题的语言。
所以解答是②。
3.下列字符中属于键盘符号的是()①②n ③t ④b【解】键盘符号是指键盘上有标记,并能在显示器上直接以其标记字样显示的字符。
有许多键盘上有标记的符号,它们不是用于直接显示的,键入这种字符用于表示特定的意义,如常用的回车符。
为了能让C程序标记这种符号,程序采用转义字符的方式书写这种字符。
如"n"、"t" 、"b"都不是键盘字符,在C语言中,它们都得用转义字符来表达。
只有字符才是键盘字符。
所以解答是①。
但在C程序中,反斜杠字符已特别用作转义字符的引导符,它也得用转义字符的表达形式书写,将它写成""。
4.下列字符列中,不是用来表达转义字符是()①②" ③074 ④【解】转义字符有三种书写形式:反斜社字符后接上某个规定的字符;反斜杠字符后接上13个八进制数字符;反斜社字符和字符X之后接上1至2个十六进制数字符。
后两种分别八进制数和十六进制数直接给出字符的ASCll代码值。
《高级语言程序设计》试卷2011-2012

(1311(10)21(11010)xx y x x x x x <⎧⎪=-=⎨⎪-≤<>⎩)或,写一段程序,输入x 的值,输出y 的值。
6. 输出300~400之间的全部素数,并按每行5个数输出。
7. 求1~100之间能被7或11整除,但不能同时被7或11整除的所有整除,并按每行5个数输出。
8. 求Fibonacci 数列的前20个数,并将其分5行输出。
9. 求101(!3)n n =+∑。
10. 有一分数序列1235813,,,,,,23581321,求其前20项的和。
11. 输出小于500的所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。
例如,153是一个水仙花数,因为333153153=++。
12. 给一个不多于6位的正整数,要求:①求出它是几位数;②分别输出每一位数字;③按逆序输出各位数字,例如原数为158,应输出851。
13. 求5+55+555+5555+55555的值(要求用循环实现)。
14. 输出倒三角形式的9*9口诀表,要求用循环实现。
15. 求一元二次方程ax 2+bx+c=0的解。
16. 输入一行字符,分别统计出其中的英文字符、数字和其他字符的个数。
17. 有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?18. 输入10个整型整数,用起泡法对这10个数排序,并该由小到大顺序在屏幕上输出。
19. 将一个二维数组a 的行和列的元素互换(即行列互换),存到另一个二维数组b 中。
20. 在一个3*4的二维数组a 中,要求编程求出其中值最大的那个元素的值,并输出其所在的行号和列号。
21. 输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。
22. 有3个字符串,要求找出其中最大者。
230. 输入两个整数,要求用一个函数求出其中的大者,并在主函数中输出此值。
24. 输入两个整数,要求用一个函数求出其最大公约数和最小公倍数,并在主函数中调用该子函数。
2011高级语言程序设计半期考及答案

一、看程序写结果(48分)1. (4分)void main( ){ int i=20;printf("%d,%o,%x,%u",i,i,i,i); }2. (4分)void main( ){ int i=0,j=1,k=2;if ((++i || ++j) && k++)printf("%d,%d,%d",i,j,k);}3. (4分)void main( ){ int n=0,m=1,x=2;if(!n) x-=1;if(m) x-=2;if(x) x-=3;printf("%d", x);}4. (4分)void main( ){ int x=1, y=2, z=3;do{ switch(y++){ case 1 : x++; break;case 3: x+=3; break;default: x=x%2; continue;}z++;}while(y<5);printf("%d,%d,%d",x,y,z);} 5. (4分)程序运行时输入:12<回车>,执行后输出结果是?void main( ){ char ch1,ch2;int n1,n2;ch1=getchar( );ch2=getchar( );n1=ch1-‘0’;n2=n1*100+(ch2-‘0’);printf("%d", n2);}6. (4分)void main( ){ char a[20]="abc\b\0x56\078\\0";printf("%d\n", strlen(a));strcpy(a, "xmu");printf("%s\n", a);strcat(a, "90");printf("%s\n", a);printf("%d", strcmp("a", a) < 0); }7. (4分)void ss(char s[ ], char t, int n){int i=0;while (s[i] && i<n){ if (s[i]==t) s[i]=t-'a'+'A';i++;}}void main( ){ char str1[20]="adcdedgdid";ss(str1, 'd', 6);printf("%s",str1);}8. (4分)int test(int n){ int d=0,m=n;while(m){ d=d*10+m%10;m/=10;}return (d==n);}void main( ){ int i;int data[ ]={5,123,121};for(i=0;i<3;i++)printf("%d %s\n", data[i],test(data[i])?"OK":"NO"); }9. (4分)void sub(int p[ ], int k, int n){ int a, b, t;a=k-1;b=n+1;while(++a<--b){ t=p[a];p[a]=p[b];p[b]=t; }}void main( ){ int k, s[12]={0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55};sub(s,1,3);for(k=0;k<6;k++)printf("%d,", s[k]);printf("\n");sub(s+6,0,3);for(k=6;k<12;k++)printf("%d,", s[k]);}10. (4分)void swap1(int c[ ]){ int t;t=c[0];c[0]=c[1];c[1]=t;}/*下接右栏代码*/ /*上接左栏第10题代码*/void swap2(int c0, int c1){ int t;t=c0;c0=c1;c1=t;}void main( ){ int a[2]={3,5},b[2]={3,5};swap1(a);swap2(b[0],b[1]);printf(“%d,%d,%d,%d”,a[0],a[1],b[0],b[1]);}11. (4分)int f(int b[ ][4]){ int i,j,s=0;for(j=0;j<4;j++){ i=j;if(i>2) i=3-j;s+=b[i][j];}return s;}void main( ){ int a[4][4]={ {1,2,3,4}, {0,2,4,5}, {3,6,9,12}, {3,2,1,0} };printf("%d", f(a));}12. (4分)void f(int i,int j){if(i<j){printf("i=%d\n",i);f(i+1,j-1);printf("j=%d\n",j);}}void main( ){f(0,4);}二、改错题(20分)(1)以下程序实现:从键盘输入x的值,直到x的范围为(-10 < x < 10)为止,计算以下分段函数的值,并将结果显示在屏幕上。
2011高级语言程序设计考卷A及参考答案

…………试卷装订线………………装订线内不要答题,不要填写考生信息………………试卷装订线……………………试卷装订线………………装订线内不要答题,不要填写考生信息………………试卷装订线……………………装订线………………装订线内不要答题,不要填写信息………………装订线…………武汉理工大学考试试题答案(A卷)2011 ~2012 学年1 学期高级语言程序设计课程二、填空题(本大题共 5 小题,每空1分,共10 分)1.;(或分号)}2.全局变量03.inline void4. break continue5. 说明运算三、判断题(本大题共 5 小题,每小题2分,共10 分)1.(√)2.(x)3.(x)4.(√)5.(√)四、程序阅读题(本大题共 4 小题,每小题5分,共20 分)1.6 4 5 2.s=243.sum=24 4.25 20五、程序填空题(本大题共2小题,每空2分,共10 分)1.(1)a (2)*(p+i) (或p[i])(3)sum/n2.(1)n<100 (2)break六、程序编写题(本大题共 3 小题,每小题10 分,共30 分)1.#include <iostream>using namespace std;int main() {int i,n=0,s=0,x;for(i=1;i<=35;i++) {cin>>x;if(x>=60) n++;s=s+x;}cout<<"Average is "<<s/35<<endl;cout<<"Passed is "<<n<<endl;return 0;}2.double fact (int n) // 非递归函数{int i;double p=1.0;for(i=1;i<=n;i++)p=p*i;return p;}double fact(int n) // 递归函数{if (n==1)return 1;elsereturn n*fact2(n-1);}3.float fun(Student *head){Student *p;int n;float sum=0.0;p=head;n=0;while (p!=NULL){ n++;sum=sum+p->score;p=p->next;}return sum/n;}。
高级语言程序设计(一) 指针 答案

1.输人3个整数,按从大到小的次序输出.void main(){int a,b,c,*pa=&a,*pb=&b,*pc=&c,*p;scanf("%d,%d,%d",pa,pb,pc);if (*pa<*pb)p=pa,pa=pb,pb=p;if (*pa<*pc)p=pa,pa=pc,pc=p;if (*pb<*pc)p=pb,pb=pc,pc=p;printf("%d,%d,%d",*pa,*pb,*pc);}2.编一个程序,输入15个整数存入一维数组,再按逆序重新存放后再输出.void main(){int a[15],x,i,*pb,*pc;pb=a;for (i=0;i<15;i++)scanf("%d",pb++);for (i=1,pb=a,pc=a+14;i<=7;i++,pb++,pc--)x=*pb,*pb=&pc,*pc=x;for (pb=a;pa<a+15;pb++)printf("%d ",*pb);}3.输入一个字符串存入一个字符数组,按相反的次序输出其中的全部字符.void main(){char a[100],x,*pb,*pc;int n,i;scanf("%d",&n);pb=a;for (i=0;i<n;i++)scanf("%c",pb++);for (i=1,pb=a,pc=a+n-1;i<=n/2;i++,pb++,pc--)x=*pb,*pb=*pc,*pc=x;for (pb=a;pb<a+n;pb++)printf("%c",*pb);}4.输入10个整数存入一维数组,将其中最大数和最后一个数交换,最小数和第一个数交换. void main(){int a[10],x,*pb,*pc,*max,*min;for (pb=a;pb<a+10;pb++)scanf("%d",pb);max=a;min=a;{for (pb=a+1;pb<a+10;pb++)if (*max<*pb)max=pb;pb=a;x=*max,*max=*pb,*pb=x;}{for (pc=a+9;pc>=a;pc--)if (*min>*pc)min=pc;pc=a+9;x=*min,*min=*pc,*pc=x;}for (pb=a;pb<a+10;pb++)printf("%d ",*pb);}5.输入10个实数存入一维数组,输出其中的最大值、最小值和平均值。
高级语言程序设计(一)试卷(三)

高级语言程序设计(一)(试卷编号:8252,考试时间120分钟,满分120分)学院:________系:________班级:________姓名:________学号:________考号:________一、填空(共30题,合计30分)1. C语言表达式!(3<6)||(4<9)的值是________________。
2. int x=2;z=-x+++1; 则x的值为________________。
3. 若有以下定义和语句: int a[5]={1,3,5,7,9},*p;p=&a[2]; 则++(*p)的值是________________。
4. 若所用变量都已正确定义,请填写以下程序段的输出结果________________.for(i=1;i<=5;i++); printf("OK\n");5. 设char a,b;若想通过a&& b运算保留a的第1位和第6位的值,则b的二进制数是________________。
6. 在C语言中,文件的存取是以________________为单位的,这种文件被称为________________文件。
7. 若有以下数组a,数组元素:a[0]~a[9],其值为 9 4 12 8 2 10 7 5 13该数组可用的最小下标值是________________。
8. 结构体是不同数据类型的数据集合,作为数据类型,必须先说明结构体________________,再说明结构体变量。
9. 将数组a的首地址赋给指针变量p的语句是________________。
10. 调用 fopen 函数打开一文本文件,在"使用方式"这一项中,为输入而打开需填入________________。
11. 按内存排列顺序, 数组char a[2]中的所有元素是a[1]和________________。
高级语言程序设计练习题1及答案

一、单选题1、程序设计语言包括( )A.机器语言B.机器语言、汇编语言、高级语言C.高级语言D.汇编语言正确答案:B2、用C语言编写的程序( )A.以上说法都不对B.可直接被计算机硬件执行C.经过编译方式翻译成其机器指令,并链接后可以执行D.经过解释方式翻译成其机器指令后可以执行正确答案:C3、程序设计的基本步骤主要包括( )A.确定程序实现算法、编写程序以及程序测试B.确定程序设计方法,描述数据方式、编写程序以及程序调试C.确定数据结构,算法描述、编写程序以及程序测试D.数据描述,算法描述、编写程序正确答案:C4、一个C语言程序如何执行()A.从主程序开始执行B.子程序开始执行C.主函数main()开始执行D.主过程开始执行正确答案:C5、以下叙述中错误的是( )A.一个C程序只能有一个主函数B.C程序在书写时,有严格的缩进要求,否则不能编译通过C.C程序的主函数必须用main作为函数名D.一个C程序中可以包含多个不同名的函数正确答案:B6、下列叙述中错误的是( )A.后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件B.C程序经C编译程序编译后,生成后缀为.obj的文件是一个二进制文件C.计算机不能直接执行用C语言编写的源程序D.后缀为.obj和.exe的二进制文件都可以直接运行正确答案:D7、C语言源程序中如何实现注释A. 一行中#开始的剩余部分为注释内容。
例如int a=10;#测试B. 一行中@开始的剩余部分为注释内容。
例如int a=10;@测试C. 一行中\\开始的剩余部分为注释内容。
例如int a=10;\\测试D.通过/* */ 界定的内容为注释内容。
例如/* 测试*/正确答案:D8、C语言程序中主函数的名称是A.mainB.MAINC.MainD.WinMain正确答案:A9、如下属于C语言的基本语句的是?A.x=sin(100)B.#include <stdio.h>C.1+2;D.x=1+2正确答案:C10、C语言中界定函数开始与结束的符号是A.< >B.( )C.[ ]D.{ }正确答案:D11、不合法的c语言标识符是()A.MDB.x.cC.IntD._abc正确答案:B12、关于C语言中数的表示,以下叙述中正确的是()A.只有实型数在允许范围内能精确无误的表示,整型数会有误差B.只有整型数在允许范围内能准确无误的表示,实型数会有误差C.只要在允许范围内整型数和实型数都能精确的表示D.只有用八进制表示的数才不会有误差正确答案:B13、已知char a=’\17’,变量a中()A.存储3个字符B.存储1个字符C.错误的变量声明与初始化D.存储2个字符正确答案:B14、有定义:int a; long b; double x,y; 则以下选项中正确的表达式是( )A.y=x+y=xB.a=x/10=y;C.a%(int)(x-y)D.(a*y)%b正确答案:C15、设有定义:int x=2;,以下表达式中,值不为6的是A.x++,2*xB.x*=(1+x)C.2*x, x+=2D.x*=x+1正确答案:C16、若有int n=6;表达式n%=n+=n-=n*n的值为()A.0B.10C.12D.6正确答案:A17、sizeof(float)是()A.一个整型表达式B.一个函数调用C.一个不合法的表达式D.一个双精度型表达式正确答案:A18、判断char型变量c1是否为大写字母的正确表达式是()A.'A'<=c1<='Z'B.('A'<=c1)AND('Z'>=c1)C.(c1>='A')&(c1<='Z')D.(c1>='A')&&(c1<='Z')正确答案:D19、正确表达式数学不等式10<x<100的C语言表达式是?(假设x 已经声明)()A.10<x and x<100B.10<x && x<100C.10<x<100D.10>x>100正确答案:B20、关于如下语句的输出结果为const int a=100;a=a+100;printf("%d",a);A.300B.200C.100D.程序存在错误无法运行正确答案:D21、有以下程序void main(){int a=6,b=7;printf("a=%%d,b=%%d",a,b);}输出结果是()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、选择题:(共20题,每题1.5分,共30分)1. C语言属于( A )A.高级语言 B. 低级语言C.中级语言 D. 机器语言2. 下列全部属于合法的用户标识符的是( A )A.A1 P_0 dS B. float 2la _A C. *a hy kk D. _123 temp main 3. C语言中运算对象必须是整型的运算符为( A )A.% B. / C.= D. <=4. 设有int i; char c; float f; 以下结果为整数的表达式是( B )A.i+f B. i/c C.c+f D. i+c+f5. 逗号表达式(a=5*3, a+20),a+15的值是( B )A.35 B. 30 C.40 D. 206. 设有语句char a = '\72'; 则变量a( A )A.包含一个字符 B. 包含两个字符C.包含3个字符 D. 说明不合法7. 若有以下定义和语句,则输出结果是( B )char c1='b',c2='e';printf("%d,%c\n",c2-c1,c2-'a'+'A');A.2,M B. 3,E C.2,E D. 不确定8. 设有如下程序段,则下面说法中正确的是( C )int k=10;while(k=0)k=k-1;A.while循环执行10次 B. 循环是无限循环C.循环体语句一次也不执行 D. 循环体语句执行一次9. 当pi=3.1415926时,printf(" %-7.2f",pi);的输出结果是( C )(注:□代表空格)A.3.14159 B. 3.14 C.3.14□□□ D. □□□3.1410. 下列运算符中,优先级最高的是( D )A.! B. + C.|| D. ( )11. 表达式a==b&&b==c计算的优先级别是( C )A.((a==b)&&b)==c) B. (a==(b&&b))==c C.(a==b)&&(b==c) D. a==((b&&b)==c 12. 已知x=45, ch=‟B‟,y=0;则表达式(x>=y && ch<‟b‟ && ! y)的值是( C )A.0 B. 语法错C.1 D. “假”13. 下列关于switch语句和break语句的结论中,正确的是( B )A.break语句是switch语句的一部分B.在switch语句中可以根据需要使用或不使用break语句C.在switch语句中必须使用break语句D.break语句不能在switch语句中使用14. 若变量c为char类型,能正确判断出c为小写字母的表达式是( D )A.'a'<=c<= 'z' B. (c>= 'a')||(c<= 'z') C.('a'<=c)and ('z'>=c) D. (c>= 'a')&&(c<= 'z') 15. 执行语句for ( i=0; i++<3; ); 后,变量i的值为( C )A.2 B. 3 C.4 D. 516. 已知:int a[10]; 则对a数组元素的正确引用是( D )A.a[10] B. a[3.5] C.a(5) D. a[0-9]17. 对字符数组str赋初值,str不能作为字符串使用的一个是( D )A.char str[]="shanghai"; B. char str[]={"shanghai"};C.char str[9]={'s','h','a','n','g','h','a','i'}; D. char str[8]={ 's','h','a','n','g','h','a','i'};18. 以下对C语言函数的有关描述中,正确的是( A )A.在C语言中,调用函数时,根据实参传递给形参值的不同,通常有值传递方式和地址传递方式两种。
B.C函数既可以嵌套定义,又可以递归调用C.函数必须有返回值,否则不能使用函数D.C程序中有调用关系的所有函数必须放在同一个源程序文件中19. 已知p1和p2为指针变量,且已指向同一个整型数组中的元素,a是一个整型变量,则下面无意义的语句是( D )A.a=*p1; B. a=*p1+*p2; C.a=p1-p2; D. p1=a-p2;20. 已知:int a[]={1,2,3,4,5,6,7,8,9,10.11.12}, *p=a; 则值为3的表达式是( A )A.p += 2, *(p++) B. p += 2, *++p C.p += 3, *p++ D. *(&a[0][0]+6)二、判断题:(共10题,每题1分,共10分)1.C语言中不能使用关键字作为标识符。
()2.C语言的标识符命名规则中,第一个字符可以为字符…#‟或…&‟。
()3.C语言对字母的大小写不敏感。
()4.C语言中,符号常量由命令#define来定义。
()5.逻辑运算符的运算优先级都要低于算术运算符。
()6.for循环只能用于循环次数已经确定的情况。
()7.break语句不仅能够用在循环语句中,还可用在switch语句中。
()8.给出以下定义char x[ ]="abcdefg", y[ ]={'a','b','c','d','e','f','g'}; 则数组x和数组y的长度相同。
()9.函数的形式参数是局部变量。
()10.指针变量是一种特殊类型的变量,用来存放另一个变量的地址。
()题号 1 2 3 4 5 6 7 8 9 10 答案√××√××√×√√三、程序填空题(2题5空,4分/空,共20分)1.自定义函数fun的功能是返回形参p所指向的长度为n的整数数组中最小值所在的下标(下标从0开始计算)。
fun(int *p, int n){int i,j;____(1) D____;for(i=0;i<n;i++)if (p[i]<p[j]) ____(2) C____;return(j);}A.j=1B.j=i++C.j=iD.j=02.下列程序是从键盘上输入一个字符串(长度小于80),然后统计该字符串的长度并输出。
#include "stdio.h"void main(){char s[80];int n,i;scanf("%s", _____(1) A_____);_______(2) D________;while(s[____(3) B _____]!='\0')n++;printf("%d \n",n);}A.sB.i++C.n=0,i=1D.n=0,i=0E. s[80]F. i四、编程题:(共2题,每题20分,共40分)1. 从键盘输入3个整数,求其中的最大数和最小数,并输出结果。
# include "stdio.h"void main(){int x, y, z, max, min;printf("Please input three integer number:");scanf("%d %d %d", &x, &y, &z);min = max = x;if(x==y && y==z)printf("x = y = z, max=min=%d\n", max);else{if (y>max)max = y;if (z>max)max = z;if (y<min)min = y;if (z<min)min = z;printf("max=%d, min=%d\n", max, min);}}2. 从键盘上输入一个3*3的整数矩阵,求其各行的平均值并输出,输出时保留两位小数。
#include<stdio.h>void main(){int a[3][3],b[3]={0};int i,j;printf("请输入一个三行三列的整数矩阵:\n");for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);for(i=0;i<3;i++)for(j=0;j<3;j++)b[i]=b[i]+a[i][j];for(i=0;i<3;i++)printf("该矩阵第%d行元素的平均值是:%.2f\n",i+1,b[i]/3.0);}五、选择题:(共20题,每题1.5分,共30分)1. 下列四个选项中,均是合法的整型常量的选项是( A )A.160 –0XFFFF 011 B. -0XCDF 01A 0XEC. -01 986,012 0688D. -0X48a 2e5 0x2. 下列四个选项中,均是不合法的浮点数的选项是( B )A.160.0.12 e3 B. 123 2e4.2 .e5 C.18 0.0 123e4 D. e3. 234 1e33. 合法的C语言字符常数是( A )A.'\t' B. "A" C.54 D. A4. 在C语言中,要求运算数一定是整型的运算符是( D )A./ B. ++ C.!= D. %5. 字符串常量”mine”的字符个数是( B )A.4 B. 5 C.6 D. 76. 以下属于非法的C语言转义字符的是( B )A.'\b' B. '0xf' C.'\037' D. '\'7. 若x、y、z均为int型变量,则执行以下语句后的输出是( A )x=(y=(z=10)+5)-5;printf("x=%d, y=%d, z=%d\n",x,y,z);y=(z=x=0,x+10);printf("x=%d, y=%d, z=%d\n",x,y,z);A. x=10, y=15, z=10B. x=10, y=10, z=10x=0, y=10, z=0 x=0, y=10, z=0C. x=10, y=15, z=10D. x=10, y=10, z=10x=10, y=10, z=0 x=10, y=10, z=08. 在以下一组运算符中,优先级最高的运算符是( C )A.<= B. = C.% D. &&9. 已知:int x; float y; 所用的scanf调用语句格式为:scanf( “x=%d, y=%f”, &x, &y );为了将数据10和66.6分别赋给x和y,正确的输入应当是( A )A.x=10, y=66.6<回车> B. 10, 66.6<回车>C.10<回车>66.6<回车> D. x=10<回车>y=66.6 <回车>10. 已有如下定义的输入语句,若要求A1,A2,C1,C2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是( C )(注:□表示空格,<CR>表示回车)int a1, a2,;char c1, c2;scanf( “%d%c%d%c”, &a1, &c1, &a2, &c2 );A.10□A□20B<CR> B. 10□A□20□B<CR> C.10A20B<CR> D. 10A20□B<CR> 11. 能正确表达:“当x取值在[1,10]和[200,210]范围内为真,否则为假”的表达式是( C )A.(x>=1) && (x<=10) && (x>=200) && (x<=210)B. (x>=1) || (x<=10) || (x>=200) || (x<=210)C.(x>=1)&&(x<=10) || (x>=200)&&(x<=210)D. (x>=1) || (x<=10)&&(x>=200) || (x<=210)12. 假定所有变量均已正确说明,下列程序段运行后x的值是( B )a=b=c=0; x=35;if(!a) x--;else if (b);if(c) x=3;else x=4;A.34 B. 4 C.35 D. 313. 若变量c为char类型,能正确判断出c为大写字母的表达式是( D )A.'A'<=c<= 'Z' B. (c>= 'A')||(c<= 'Z') C.('A'<=c)and ('Z'>=c) D. (c>= 'A')&&(c<= 'Z') 14. 若给定条件表达式:(!n) ? (c++) : (c--),则与表达式n等价的表达式是( A )A.n==0 B. n==1 C.n!=0 D. n!=115. 已知:int a=4, b=5, c; 则执行表达式c=a=a>b后变量a的值为( A )A.0 B. 1 C.4 D. 516. 定义int i=1; 执行语句while(i++<5); 后,i的值是( D )A.3 B. 4 C.5 D. 617. 合法的数组说明是( B )A.int a[] = “string”;B.int a[] = { 0, 1, 2, 3, 4, 5 };C.char a = “string”;D.char a[] = { 0, 1, 2, 3, 4, 5 };18. 当调用函数时,实参是一个数组名,则向函数传送的是( B )A.数组的长度 B. 数组的首地址C.数组每一个元素的地址 D. 数组每个元素中的值19. 函数调用:strcat(strcpy(str1,str2),str3)的功能是( C )A.将串str1复制到串str2中后再连接到串str3之后B. 将串str1连接到串str2之后再复制到串str3之后C.将串str2复制到串str1中后再将串str3连接到串str1之后D. 将串str2连接到串str1之后再将串str1复制到串str3中20. 已知:int a[]={1,2,3,4,5,6,7,8,9,10.11.12}, *p=a; 则(*p) 的值是( A )A.1 B. 2 C.3 D. a六、判断题:(共10题,每题1分,共10分)1.C语言中能使用关键字作为标识符。