C语言程序填空题-20分

合集下载

c语言题目及答案

c语言题目及答案

考试题型一、单项选择题(30分)二、填空题(20分)三、阅读程序写结果(20分)四、编程序题(30)复习题一一、选择题1.下列说法中正确的是。

A.C语言程序由主函数和0个或多个函数组成B.C语言程序由主程序和子程序组成C.C语言程序由子程序组成D.C语言程序由过程组成2.执行语句“x=(a=3,b=a--)”后,x,a,b的值依次为。

A.3,3,2 B.3,2,2 C.3,2,3 D.2,3,23.设有int i=010,j=10;则printf("%d,%d\n",++i,j--); 的输出的是。

A.11,10 B.9,10 C.010,9 D.10,9 4.设a、b为字符型变量,执行scanf("a=%c,b=%c",&a,&b); 后使a为'A', b为'B',从键盘上的正确输入是。

A.'A' 'B' B.'A','B' C.A=A,B=B D.a=A,b=B5.已知int x=12, y=3;执行下述程序后,变量x的值是____。

do{ x/=y--;}while(x>y);A.1 B.2 C.3 D.程序运行有错误6.C语言中while和do-while循环的主要区别是。

A.do-while的循环体至少无条件执行一次B.while的循环控制条件比do-while的循环控制条件严格C.do-while允许从外部转到循环体内D.do-while的循环体不能是复合语句7.设x和y均为int型变量,则执行下面的循环后,y的值为。

for (y=1,x=1;y<=50;y++) {if (x>=10 ) break;if (x%2==1) {x+=5;continue;}x - =3;}A.2 B.4 C.6 D.88.以下正确的说法是____。

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

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

一、单项选择题(本大题共20题,每题2分,共40分)1.以下不是C语言的特点的是()A、C语言简洁、紧凑B、能够编制出功能复杂的程序C、C语言可以直接对硬件进行操作D、C语言移植性好2.以下不正确的C语言标识符是()A、ABCB、abcC、a_bcD、ab。

c3.一个C语言程序是由()A、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成4.一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是()A、有零个或多个输入B、有零个或多个输出C、有穷性D、可行性5.设变量a是整型,f是实型,i是双精度型,则表达式10+‘a'+i*f值的数据类型为()A、intB、floatC、doubleD、不确定6.在C语言中,char型数据在内存中的存储形式是()A、补码B、反码C、源码D、ASCII码7.有如下程序,输入数据:12345M678<cR>后(<CR〉表示回车),x的值是().#include<stdio。

h〉main(){intx;floaty;scanf(”%3d%f”,&x,&y);}A、12345B、123C、45D、3458.若有以下定义inta,b;floatx,则正确的赋值语句是()A、a=1,b=2B、b++;C、a=b=5D、b=int (x);9.以下程序的执行结果是()#include〈stdio.h〉{inti=10,j=10;printf(”%d,%d\n”,++i,j——);}A、11,10B、9,10C、11,9D、10,910.巳知字母A的ASCII码是65,以下程序的执行结果是()#include<stdio。

h>main(){charc1='A',c2='Y’;printf("%d,%d\n”,c1,c2);A、A,YB、65,65C、65,90D、65,8911.下列运算符中优先级最高的是()A、<B、十C、%D、!=12.设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0是()。

C语言程序设计试题第1套(山东建筑大学)

C语言程序设计试题第1套(山东建筑大学)

C语言程序设计试题(第1套)一.单项选择题〔30分,每题2分〕1.用C语言编写的代码程序______。

A、可立即执行B、是一个源程序C、经过编译即可执行D、经过编译解释才能执行2. C语言中用于结构化程序设计的三种根本结构是______。

A、顺序结构、选择结构、循环结构B、 if、switch、breakC、 for、while、do-whileD、 if、for、continue3. 以下选项中合法的实型常数是______。

A、5E2.0B、 E-3 C4. 假定x和y为 double型,那么表达式x=2,y=x+3/2的值是______。

A、 3.500000B、 3C、 2.0000005. ch是字符型变量,下面不正确的赋值语句是______。

A、ch = 65;B、 ch="a";C、 ch ='\ n';D、 ch= 9+ '0';6. 以下有关C语言程序书写格式的说法哪个是错误的?A、 C程序的书写格式比拟自由,一个语句可以占多行,一行也可以有多个语句。

B、 C语句必须要有分号。

C、 C语言程序的标识符必须使用小写字母。

D、用{ } 括起来的局部,通常表示了程序的某一层次结构,称为块。

7.下面程序段所表示的数学函数关系是______。

x= -1;if (a!=0)if (a>0) x=1;else x=0;-1 (a<0) 1 (a<0)A、x= 0 (a=0)B、x= -1 (a=0)1 (a>0) 0 (a>0)0 (a<0) -1 (a<0)C、x= -1 (a=0)D、x= 1 (a=0)1 (a>0) 0 (a>0)8. 以下关于do-while循环的不正确描述是______。

A) do-while的循环体至少执行一次B) do-while的循环体可以是复合语句C) 在do-while循环体中,一定要有能使while后面表达式的值变为零("假")的操作D) do-while循环由do开始,用while结束,在while(表达式)后面不能写分号9. 以下程序执行后sum的值是______。

c语言程序填空练习题

c语言程序填空练习题

C 语言程序填空题1. 阅读以下程序并填空。

以下程序的功能是:输出三位正整数中能被13整除的数#include <stdio.h>main(){ int n; for( n=100 ; n<=999 ;n++) if(n%13!=0) continue ;else printf("%d\n",n);}2. 阅读以下程序并填空。

以下程序的功能是:输出100以内能被3整除且个位数为6的所有整数#include <stdio.h>main(){ int i,j; for(i=0; i<=9 ;i++) { j= i*10+6 ; if(j%3!=0) continue;else printf("%d\n",j);} }3. 阅读以下程序并填空。

以下的程序功能是:求101至999之间所有能被13整除的整数之和和个数#include <stdio.h>main(){ int i,cnt;float sum=0;i=101; cnt=0; while( i<=999 ){ if( i%13==0 ){ sum+=i; cnt++; }i++ ; }printf("sum=%f,cnt=%d\n",sum,cnt);}4. 阅读以下程序并填空。

该程序的功能是:用递归的方法求菲波那契数列2,2,4,6,10,16,26,42,68,110,……的第10项#include <stdio.h>long fib(int n){ if(n>= 3 )return fib(n-1)+fib(n-2) ;else return 2 ; }main(){ printf("%ld\n",fib(10)); }5. 阅读以下程序并填空。

该程序的功能是:用递归法求:n ++++ 321#include <stdio.h>long Sum(int n) { if(n> 1 )return n+Sum(n-1) ;else return 1 ;}6. 阅读以下程序并填空。

C语言程序填空题加答案

C语言程序填空题加答案
printf("%d",a); 19、 【 break 】语句强行结束循环,转向执行循 环语句的下一条语句.
20、 在for(表达式1;表达式2;表达式3) 语句中 表达式1执行了【 1 】次. 21、 执行以下程序后,输出'$'号的个数是【 6 】. main() { int i,j;
for(i=1; i<5; i++) for(j=2; j<=i; j++) putchar('$'); } 22、 执行下列程序段后,s的值是【 15 】. int k, s; for(k=s=0; k<10&&s<=10; s+=k)k++; 23、 用while和do-while循环时,循环变量初始化的操作 应在while和do-while语句之【 前 】完成.
for(i=1;i<=5;i++) {f=f*【 i 】;s=s+f;}
8、 下面一段程序的功能是计算两个正整数(保存在int 型变量m和n中)的最大公约数, 并将结果保存到变量gcd中. for(;r=m%n;m=n,n=r);gcd=【 n 】; 9、 下面一段程序段的功能是显示10到20之间的偶数.
19、 当a=3,b=2,c=1;时,执行以下程序段后,b的值为
【1
】.
if(a>b) a=b;
if(b>c) b=c;
else c=b;
c=a;
20、 当a=1,b=2,c=3时,执行以下程序段后,a的值为
【 3 】.
if (a>c)
b=a;ch语句中每一个case后面的常量表达式的值

c语言试卷和答案1

c语言试卷和答案1

s=s+f;
printf(“%.0f #”, s);
}
}
程序2
#include <stdio.h>
void main()
{ long fun (long number);
printf(“%ld\n”, fun(-974));
}
long fun(long number)
(5) 运算符 “+”不能作为单目运算符。
(6) 如果运算符 “*”和 “/”都是右结合的,这表达式10*6/5的值是10。
(7) s(s-a)(s-b)(s-c)是合法的C语言表达式。
(8) 表达式!!6的值是6。
(9) 表达式~(~2<<1)的值是5。
(28)str[k]=str[k]-‘A’+ ‘a’
4.(29)ss=s
(30)s-ss
四、程序阅读题
程序1 1 # 3 # 21 #
程序2 4 # 47 # 479 # -479
程序3 IF YOU FAIL TOP
五、程序设计题(略)
}while(month>=1 || month<=12);
B)do{ scanf(“%d”, &month);
}while(month>=1 && month<=12);
C)do{ scanf(“%d”, &month);
}while(month<1 || month>12);
else
b=3;
printf(“%d”, b);
A)3 B)2 C)1 D)0

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

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

C 语言程序设计期末考试卷及答案一、单项选择题。

从A 、B 、C 、D 四个选项中,选择一个最佳答案填入括号内(每小题1分,共计30分)。

1.一个C 语言程序的执行是从()。

A )本程序文件的第一个函数开始,到本程序文件的最后一个函数结束B )本程序的main 函数开始,到main函数结束C )本程序的main 函数开始,到本程序文件的最后一个函数结束D )本程序文件的第一个函数开始,到本程序的main 函数结束2.下列选项中不属于...C 语言关键字的是()。

A )switchB )printfC)default D )case3.设有语句inta=4;,则执行了语句a+=a-=a*a;后,变量a 的值是()。

A )24B )-24C )4D )164.已知inti;floatd;,则正确的表达式是()。

A )(intd)B )int(d)%iC )(int)d%iD )int(d%i) 5.已知inti,a;,执行语句i=(a=3*9,a/5),a+11;后,变量i 的值是()。

A )5 B )16C )27D )386.下列选项中合法的字符型常量是()。

A )"a"B )'\n'C )7.下面程序的运行结果是()。

#include<stdio.h> voidmain() {intk=15;printf("k=%d,k=%o,k=%x\n",k,k,k);}A )k=15,k=15,k=15B )k=15,k=17,k=17C )k=15,k=017,k=0xfD )k=15,k=17,k=f 8.已知a,b,c 为int 类型,执行语句:scanf ("%d%d%d",&a,&b,&c );使得a 为10,b 为20,c 为30,以下不正确...的输入形式是()。

A )10B )10C )10,20,30D )102020203030 309.已知intx=1,y=2,z=3;,执行下列程序段后,输出的结果是()。

C语言程序设计试题_练习题

C语言程序设计试题_练习题

C语言程序设计试题_练习题一、选择题:(20分,每题2分)1.以下不正确的C语言标识符是()。

A.ABCB.abcC.a_bcD.ab.c2.C程序是由构成的。

A.主程序与子程序B.主函数与若干子函数C.一个主函数与一个其它函数D.主函数与子函数3.以下说法中正确的是:A.在C语言中,实参与其对应的形参各占独立的存储单元;B.在C语言中,实参与其对应的形参共占同一个存储单元;C.在C语言中,只有当实参与其对应的形参同名时,才共占同一个存储单元;D.在C语言中,形参是虚拟的,不占存储单元。

4.设n=3;则n++的结果是()。

A.2B.3C.4D.55.设整型变量n=10,i=4,则赋值运算n%=i+1执行后,n的值是()。

A.0B.1C.2D.36.凡是函数中未指定存储类别的局部变量其隐含的存储类别是()。

A.自动(auto)B.静态(tatic)C.外部(e某tern)D.寄存器(regiter)7.在while(某)语句中的某与下面条件表达式等价的是:A.某==0B.某==1C.某!=1D.某!=08.若有以下说明和语句:tructworker{intno;~char某name;}work,某p=&work;则以下引用方法不正确的是()。

A.work.noB.(某p).noC.p->noD.work->no9.以下对二维数组进行正确初始化的是()。

A.inta[2][3]={{1,2},{3,4},{5,6}};B.inta[][3]={1,2,3,4,5,6};C.int a[2][]={1,2,3,4,5,6};D.inta[2][]={{1,2},{3,4}};10.二维数组a有m列,则在a[i][j]之前的元素个数为:A)j某m+iB)i某m+jC)i某m+j-1二、给出下列程序的运行结果:(20分,前四题每题3分,后两题每题4分)1.#include<tdio.h>main(){inti=16,j,某=6;j=i+++1;某某=i=j;printf(“%d,%d\n”,j,某);}运行结果是:2.#include<tdio.h>#include<math.h>main(){inta=1,b=4,c=2;float某=10.5,y=4.0,z;z=(a+b)/c+qrt((double)y)某1.2/c+某;printf(“%f\n”,z);}运行结果是:3.#include<tdio.h>main(){inta,b,c,d;a=c=0;b=1;d=20;if(a)d=d-10;eleif(!b)if(!c)d=25;eled=15;printf(“d=%d\n”,d);}运行结果:4.main(){inti=10;witch(i){cae9:i+=1;cae10:i+=1;cae11:i+=1;}printf(“%d”,i);}运行结果:5.#include<tdio.h>main(){inta[]={1,2,3,4},i,j,=0;j=1;for(i=3;i>=0;i--){=+a[i]某j;j=j某10;}printf("=%d\n",);}运行结果:6.func(int某){某=20;}main(){int某=10;func(某);printf(“%d”,某);}运行结果:三、阅读程序,在标有下划线的空白处填入适当的表达式或语句,使程序完整并符合题目要求。

C语言程序设计试题第十套-试卷

C语言程序设计试题第十套-试卷

“程序设计基础--C”试卷试题一、单项选择题(每小题 2 分,共20 分)1.C 语言程序的三种基本结构是顺序结构、选择结构和______结构。

A、循环B、递归C、转移D、嵌套2.若x是单精度实型变量,表达式(x = 10/4) 的值是_____ 。

A、2.5B、2.0C、3D、 23. 表达式!x 等价于_____。

A、x==0B、x==1C、x != 0D、x != 14.若变量已正确定义且k 的值是4,计算表达式( j = k--) 后,_____。

A、j=3, k=3B、j=3, k=4C、j=4, k=4D、j=4, k=35. 算术运算符、赋值运算符和关系运算符的运算优先级按从高到低的顺序依次为_____。

A、算术运算、赋值运算、关系运算B、关系运算、赋值运算、算术运算C、算术运算、关系运算、赋值运算D、关系运算、算术运算、赋值运算6.C语言中,形参的缺省的存储类说明是______。

A、autoB、staticC、registerD、extern7.下列语句定义pf为指向float类型变量f的指针,_____是正确的。

A、float f, *pf = f;B、float f, *pf = &f;C、float *pf = &f, f;D、float f, pf = f; 8.表达式sizeof(“key”) 的值是______。

A、1B、2C、3D、49.将程序prog.c编译后运行:prog –nla hello world 则*(*(argv+2)) 是______。

A、’p’B、‘-‘C、‘h’D、‘w’10.若a是整型变量,表达式~(a ^ ~a ) 等价于______。

A、~aB、1C、0D、2试题二、填空题(每小题 3 分,共24 分)1.写出语句printf ("%d, %o, %x", 0x12, 12, 012); 的输出结果。

2.写出下列程序段的输出结果。

C语言程序设计题库

C语言程序设计题库

一、选择题(每题1分,共20分)1.C语言程序从main()函数开始执行,所以这个函数要写在( D )。

A.程序文件的开始 B.程序文件的最后C.它所调用的函数的前面 D.程序文件的任何位置2.下列方法中错误的是( D )。

A.主函数可以分为两个部分:主函数说明部分和主函数体。

B.主函数可以调用任何非主函数的其它函数。

C.任何非主函数可以调用其它任何非主函数。

D.程序可以从任何非主函数开始执行。

3.下列正确的标识符是( C )。

A.-a1 B.a[i] C.a2_i D.int t4.C语言中的简单数据类型包括( D )。

A.整型、实型、逻辑型 B.整型、实型、逻辑型、字符型C.整型、字符型、逻辑型 D.整型、实型、字符型5.下列可以正确表示字符型常量的是( A )。

A.’\t’ B.”a” C.”\n” D.2976.在C语言中,字符型数据所占的内存空间是( C )。

A.2个字节 B.4字节 C.1字节 D.由用户自定义7.若int类型数据占2个字节,则unsigned int类型数据的取值范围是( B )。

A.0~255 B.0~65535 C.-32768~32767 D.-256~2558.若有以下类型说明语句:char a;int b; float c; double d; 则表达式a*b+d-c的结果类型为( D )。

A.float B.char C.int D.double9.下列正确的预编译命令是( D )。

A.define PI 3.14159B.#define P(a,b)=strcpy(a,b)C.#define stdio.hD.#define PI 3.1415910.为表示逻辑表达式79<X<90,应使用的C语言表达式是( A )。

A.( X>79 )&&( X<90 ) B.( X>79 )!=( X<90 )C.79<X<90 D.(X>79 )||( X<90 )11.设有语句“int a=2,b=3,c=-2,d=2;”,则逻辑表达式“a>0&&b&&c<0&&d>0”的值是( A )。

(完整版)C语言考试题库之填空题

(完整版)C语言考试题库之填空题

二,填空题(10道小题,共20分)1、一个C源程序中至少应包含一个[main]函数。

2、a是整型变量,则执行表达式a=25/3%3后a的值为。

[2]3、int m=5,y=2;则表达式y+=y— =m*=y的值为.[—16]4、执行下列语句: int a=1, b=2; a=a+b; b=a-b; a=a—b; printf("%d ,%d \n", a,b );的输出结果分别是[2,1]5、条件表达式的格式为表达式1?表达式2:表达式3,若表达式2和表达式3的类型不同,此时条件表达式的值的类型为二者中较[高]的类型6、当运行以下程序时,从键盘键入right?<CR〉(<CR〉代表回车),则下面程序的运行结果是。

#include〈stdio.h〉main( ){ char c;while((c=getchar())!='?') putchar(++c)}[sjhiu?]7、C语言中的数组必须先[定义],然后使用.8、如果需要从被调用函数返回一个函数值,被调用函数必须包含【return】语句。

9、已知:float f1=3。

2,f2,*pf1=&f1;f2=f1,则*f2的值为.[3.2]10、以下程序void fun(char *a, char *b){ a=b; (*a)++;}main (){ char c1="A”,c2="a”, *p1, *p2;p1=&c1; p2=&c2; fun(p1,p2);printf(“&c&c\n”,c1,c2);}运行后的输出结果是。

[&c&c]11、字符串常量“123”在内存中的字节数是。

[4字节]12、已有定义 :int x=3 ;则表达式 :x=x+1.78 的值是。

【4】13、int a=24; printf("%o ", a );输出结果是。

C语言试题及答案

C语言试题及答案

一、填空题(每空 2分,共 20分)1、C程序是由函数构成的,其中有且只能有 1 个主函数,每个C程序总是从它开始执行,并且以 ; 作为结束符。

2、C语言中三大基本结构有:顺序结构、选择循环、。

3、‘A’+3的结果是 68 。

4、若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是 2.5 。

5、C语言中逻辑运算符 ! 的优先级高于算术运算符。

6、符号“a”和‘a’的区别是”a”为字符串,占两个字节空间,’a’为字符,占1个字节空间。

7、C语言的预处理语句以____#_____开头。

8、有如下输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式应是a=1,b=3,c=2。

二、选择题(每 2分,共 20 分)1、下列叙述中错误的是( D )。

A、 if语句允许用户选择是否执行某个操作。

B、 if else 语句允许用户选择执行两个操作中的某个操作。

C、 switch语句允许用户选择执行多个操作中的某个操作D、多分支选择结构只能使用switch语句实现2、以下不正确的C语言标识符是( D )A、ABCB、abcC、a_bcD、ab.c3、按照C语言规定的用户标识符命名规则,不能出现在标识符中的是( B )。

A、大写字母B、连接符C、数字字符D、下划线4、将int型变量n转换成float型变量的方法是( B )。

A、float nB、(float)nC、float(n)D、(int)n5、( A )是构成C语言的基本单位。

A、函数B、子函数C、过程D、子过程6、下面关于运算符优先顺序的描述中正确的是(B )。

A、关系运算符< 算术运算符< 赋值运算符< 逻辑与运算符B、逻辑运算符< 关系运算符< 算术运算符< 赋值运算符C、赋值运算符< 逻辑与运算符< 关系运算符< 算术运算符D、算术运算符< 关系运算符< 赋值运算符< 逻辑与运算符7、在C语言中,要求参加运算的数必须是整数的运算符是( C )。

《C语言程序》测试题及答案

《C语言程序》测试题及答案

c++程序设计本科一、判断题错误的在后面写“F”,正确的写“T”,每题1分1. 程序是描述算法的编程工具;T2. 将函数模板与某个具体数据类型连用,就产生了模板函数,称这个过程为函数模板实例化 ; T3. C++语言中,用来为对象初始化的特殊成员函数称为构造函数;用于在对象撤销时执行一些清理任务的特殊成员函数称为析构函数; T4. 逐条翻译并执行的翻译程序称为编译程序; F5. 把所有类组织在一个树形结构中,这时所有类,不管它们之间的差别有多大,都有一个共同的相关类,这种结构被称为类树;类群是由一些彼此密切相关的类和类族组成的;F6. 如果在定义一个类时,该类继承了多个基类的特征,那么这个继承关系称为多重继承;T7. 不同对象可以调用相同名称的函数,并可导致完全相同的行为的现象称为多态性;F8.形式参数表是用括号分隔的变量说明列表,变量称为函数的形式参数,有时也简称为形参; F9..在C++语言中,只要在声明函数原型时形式参数的个数或者对应的类型不同,两个或更多的函数就可以共用同一个名字;这种在同一作用域中允许多个函数使用同一函数名的措施被称为重载; T8.C++的作用域分辨:可以迫使编译器“看到”当前作用域的外层部分,存取那些被隐藏的名字;这是由作用域分辨操作符实现的,这一过程叫做作用域分辨;T11.说明函数原型时不需要指明每个函数参数的名字,只需要说明每个参数的类型和返回值类型就可以了;T12.所有的表达式都有值;F13.程序的编译是以文件为单位的,因此将程序分到多个文件中可以减少每次对程序修改所带来的编译工作量;T14.类的静态数据成员需要在定义每个类的对象时进行初始化;F15.基类中被说明为protected和private的成员只能被其派生类的成员函数访问,不能被其它的函数访问;F16.当将一个类S定义为另一个类A的友元类时,类S的所有成员函数都可以直接访问类A的所有成员;T17.当函数的返回值是数组类型的,传递的是数组第一个元素的地址;F18.如果派生类的成员函数的原型与基类中被定义为虚函数的成员函数原型相同,那么,这个函数自动继承基类中虚函数的特性;T19.字符串’hello,world”在内存中存放时,占用11个字节的空间;F20. 用new动态申请的内存空间,必须用delete来释放 ;T21、变量必须先定义或说明,后使用;T23、常量不能作为左值使用;T23、头文件中一般存放着变量和常量的定义、函数的原型以及类的定义;F24、类的友元函数可以直接访问该类的所有成员;T25、派生类的成员函数可以直接访问基类的所有成员;F26、一个类可以作为另一个类的友元类;T27、函数的参数和返回值类型可以是简单数据类型,也可以是指什、引用、数组和类;F28、在基类中被说明为虚函数的类的成员函数必须在每个派生类中说明为虚函数,才能具有多态的特征;F29、下面两个语句是等价的: Fchar str ="hello,world";char str11="hello,world";30、用new动态申请的内存是在堆中分配的,而不是在栈中分配的; T31.静态联编所支持的多态性称为编译时的多态性; T32.如果一个类中至少有一个实函数,则称这个类为抽象类 ; F33.用于在对象消失时执行一些清理任务的函数叫虚函数; F34. C++源程序文件的缺省扩展名为cpp T35. 由C++源程序文件编译而成的目标文件的缺省扩展名为lik F36. 由C++目标文件连接而成的可执行文件的缺省扩展名为obj F37. 编写C++程序一般需经过的几个步骤依次是编辑、编译、连接、调试 T38. 标识符default then while全是保留字 F39. 能作为C++程序的基本单位是语句 T40. 程序中主函数的名字为任意标识符 F二、填空题每题3分1. 假定x=5,y=6,则执行表达式y+=x--计算后,x和y的值分别为_____4_____和___11_______;2. C++常数0x145对应的十进制值为____325______;3. C++常数0345对应的十进制值为____229______;4. 十进制常数245对应的十六进制的C++表示为____0xF5 F大小写均可_____5. 十进制常数245对应的八进制的C++表示为___0365 F大小写均可_______;6. signed char类型的值域范围是_-128_______至_____+127_____之间的整数;7. int和float类型的数据分别占用___4______和______4____个字节;8. float和double类型的数据分别占用_____4____和__ 8______个字节;9. bool和char类型的数据分别占用____1_____和_____1___个字节;10. unsigned short int和int类型的长度分别为___2______和____4____;11. 字符串“This\’s a book.\n”的长度为___15_______;12. 字符串“\nThis\’s a pen\n\n”的长度为_____15_____;13. 在C++中存储字符串“abcdef”至少需要___7_____个字节;14. 在C++中存储字符串“a+b=c”至少需要__6______个字节;14.假定x和y为整型,其值分别为16和5,则x%y和x/y的值分别为_____1_____和______3____;15.若while循环的“头”为”whilei++<=10”,并且i的初值为0,同时在循环体中不会修改i的值,则循环体将被重复执行__11____次后正常结束;17. 若do循环的“尾”为”while++i<10”,并且i的初值为0,同时在循环体中不会修改i 的值,则循环体将被重复执行____10__次后正常结束;18. 当在程序中执行到__break______语句时,将结束本层循环类语句或switch语句的执行;19. 当在程序中执行到____continue____语句时,将结束所在循环语句中循环体的一次执行;20. 在程序中执行到____ return ____语句时,将结束所在函数的执行过程,返回到调用该函数的位置;21.在程序执行完__ 主或main_____函数调用后,将结束整个程序的执行过程,返回到C++集成开发窗口;22. 元素类型为int的数组a10共占用___40_____字节的存储空间;23. 元素类型为double的二维数组a46共占用___192_____字节的存储空间;24. 元素类型为char的二维数组a1030共占用___300_____字节的存储空间;25. 存储字符’a’和字符串”a”分别需要占用____1____和_____2___个字节;26. 空串的长度为___0_____,存储它需要占用___1_____个字节;27. 字符串”\’a\’xy=4\n”的长度为__7______;28. 字符串”a:\\xxk\\数据”的长度为__11__;29. 用于存储一个长度为n的字符串的字符数组的长度至少为___ n+1_____;30. 若a是一个字符数组,则从键盘上向该数组输入一个字符串的表达式为_ cin>>a___;31. C++是将源程序_一次翻译成目标程序_____,然后再执行,这种翻译程序称为编译程序;32. 联合的若干数据成员使用地址___同一___,占据的内存是联合中占内存最大的数据成员所占用的内存;33. 作用域分辨操作符的一般形式为类名::类标识符 ,作用域分辨不仅可用于类中,而且可以用在____函数调用__ 时;34. 将关键词const写在 ___函数头___ 之后, __函数体____, 之前,说明该函数是一个const成员函数;35. C++是在 ___标准C语言___ 的基础上,引入面向对象概念而扩充形成的混合型面向对象语言;36. 在动态联编中,直到 _程序运行_____ 时才能确定调用哪个函数;静态联编是在程序编译时进行的;37. 类型转换函数 ___不能___ 带有参数,当被派生类继承并被说明为 ___虚函数___ 时,可以定义多个转换函数;38. 继承是 ___对象___ 的一个特点,继承支持 ___层次___ 类概念39. C++的 __作用域____ 规则能保证编译器调用正确的成员函数;40. 在C++中,声明构造函数和析构函数时, _不能_____使用const或volatile关键词;41. 只能用类运算符来重载的运算符是:_=_____,______,______,___->___;42. 应该养成将所有extern说明放到__头文件____ 中去的习惯,对于自己编写的函数,必须自己给出 __函数类型____ 说明;43. 结构是 ___类___, 的一种特例,其中成员在缺省情况下是_公有的_____ ;44. 当使用delete删除一个对象时,delete隐含着对 __析构函数____ 函数的一次调用,如果这个函数为虚函数,则这个调用采用___动态___联编;45. const放在函数前面使常量成员返回 __常量对象____ ;如果定义一个const对象,则只能访问该对象的const 成员函数;46.在面向对象的程序设计中,一切都是围绕着___类___ 展开的;47.析构造函数是和___类___同名的函数;48.指向基类的对象的指针变量也可以指向___派生类______的对象;49.若多继承时,多个基类中拥有一个同名的成员,则__不能_______用调整访问权限确定对该成员的访问50.多继承情况下,派生类的构造函数的执行顺序取决于__继承_______派生类时所指定的各基类的顺序;51.构造函数___不能__被继承,析构函数______不能______被继承;52.___多___继承情况下,派生类中对基类成员的访问会出现二义性;解决二义性的方法是______成员名限定法______、___支配规则__和__虚基类___53.垂直访问时,保护成员的访问控制权限与______公有___成员相同;54.派生类可以调用其____基类_____中不具备的数据和操作;55.利用继承能够实现___软件复用______;这种实现缩短了程序的开发时间,促使开发人员复用已经测试和调试好的高质量软件;56.当撤消一个含有基类和子对象成员的派生类对象时,将首先完成___派生类___的析构函数定义体的执行,接着完成______子对象成员______的析构函数定义体的执行,最后完成___基类___的析构函数定义体的执行;57.如果类Alpha继承了类Beta,则类Alpha称为___派生___类,类Beta称为__基___类58.对基类数据成员的初始化必须在派生类构造函数中的____成员初始化列表_____处执行;59.在派生类中使用基类的成员,可以显示地使用__成员名限定符_______来使用基类成员60.当将基类指针转换为派生类指针时,由于编译器认为这种操作是危险的,所以必须要使用____强制类型转换_____;61.多继承可以视为是___单继承___的扩展,派生类及其基类可用一个___有向无环图DAG___表示;62. 继承是___对象___的一个特点,继承支持___层次___类概念;63.若需要定义一个标识符常量,并且使C++能够进行类型检查,则应在定义语句的开始使用保留字const .64.逻辑表达式x>3&&x<10 的相反表达式为x<=3||x>=10 .65.逻辑表达式a>b ||b = =5的相反表达式为a<=b&&b=5 .66.假定一个二维数组的定义为”char a56;”,则该数组所含元素的个数为30 ,所占存储空间的字节数为30 .67.变量分为全局和局部两种, 全局变量没有赋初值时,将由系统自动置为0.68.假定a是一个一维数组,则ai对应的存储地址以字节为单位为a+isizeof ai69.假定一个结构类型的定义为”struct A{int a,b;Ac;};”, 则该类型的大小为12字节.70.假定要访问一个结构指针p所指对象中的b指针成员所指的对象,则表示方法为p->b .三、单选题每题2分,在下列各题的备选答案中,选出一个正确答案,并将其号码填写在题目后面的括号内;A 1. C++源程序文件的缺省扩展名为 ;A. cppB. exeC. objD. likC 2. 由C++源程序文件编译而成的目标文件的缺省扩展名为 ;A. cppB. exeC. objD. likB 3. 由C++目标文件连接而成的可执行文件的缺省扩展名为 ;A. cppB. exeC. objD. likB 4. 编写C++程序一般需经过的几个步骤依次是 ;A. 编译、编辑、连接、调试B. 编辑、编译、连接、调试C. 编译、调试、编辑、连接D. 编辑、调试、编辑、连接B 5. 以下标识符中不全是保留字的是 ;A. case for intB. default then whileC. bool class longD. goto return charC 6. 能作为C++程序的基本单位是 ;A. 字符B. 语句C. 函数D. 源程序文件A 7. 程序中主函数的名字为 ;A. mainB. MAINC. MainD. 任意标识符D 8. C++程序的基本模块为 ;A. 表达式B. 标识符C. 语句D. 函数B 9. 可用作C++语言用户标识符的一组标识符是 ;A. void define +WORDB. a3_b3 _123 YNC. for -abc CaseD. 2a DO sizeofD 10. 存储以下数据,占用存储字节最多的是 ;A. 0B. ‘0’C. “0”D.D 11. 程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用 符号作为分隔符;A. 空格或逗号B. 逗号或回车C. 逗号或分号D. 空格或回车C 12. 设”int a=12;”,则执行完语句”a+=aa;”后,a 的值是 ;A. 12B. 144C. 156D. 288D 13. 假设在程序中 a 、b 、c 均被定义成整型,所赋的值都大于1,则下列能正确表示代数式abc1的表达式是 ; A. abc B. 1/abc C. 1/a/b/floatc D. a/b/cD 14. 设”int a=15,b=26;”,则”cout<<a,b;”的输出结果是 ;A. 15B. 26,15C. 15,26D. 26C 15. 设x 是一个bool 型的逻辑量,y 的值为10,则表达式 x && y 的值为 ;A. 1B. 0C. 与x 值相同D. 与x 值相反A 16. x>0 && x<=10的相反表达式为 ;A. x<=0 || x>10B. x<=0 && x>10C. x<=0 || x<=10D. x>0 && x>10B 17. x>0 || y==5的相反表达式为 ;A. x<=0 || y=5B. x<=0 && y=5C. x>0 || y=5D. x>0 && y==5 A 18.设x和y均为bool量,则x && y为真的条件是 ;A. 它们均为真B. 其中一个为真C. 它们均为假D. 其中一个为假C 19.设x和y均为bool量,则x || y为假的条件是 ;A. 它们均为真B. 其中一个为真C. 它们均为假D. 其中一个为假B 20. 字符串”a+b=12\n”的长度为 ;A. 6B. 7C. 8D. 9B 21. 假定下列x和y均为int型变量,则不正确的赋值为 ;A. x+=y++B. x++=y++C. x=++yD. ++x=++yC 22. 下列的符号常量定义中,错误的定义是 ;A. const M=10;B. const int M=20;C. const char ch;D. const bool mark=true;C23. 循环语句“forint i=0; i<n; i++ cout<<ii<<’ ’;”中循环体执行的次数为 ;A. 1B. n-1C. nD. n+1B 24. 在下面循环语句中循环体执行的次数为 ;forint i=0; i<n; i++ifi>n/2 break;A. n/2B. n/2+1C. n/2-1D. n-1D 25. 在下面循环语句中内层循环体S语句的执行总次数为 ;forint i=0; i<n; i++forint j=i; j<n; j++ S;A. n2B. n+1/2C. nn-1/2D. nn+1/2C 26. 在下面循环语句中循环体执行的次数为 ;int i=0,s=0; whiles<20 {i++; s+=i;}A. 4B. 5C. 6D. 7A 27. 在下面循环语句中循环体执行的次数为 ;int i=0; do i++; whileii<10;A. 4B. 3C. 5D. 2A 28. 当处理特定问题时的循环次数已知时,通常采用来解决;A. for循环B. while循环C. do循环D. switch语句C 29. 循环体至少被执行一次的语句为 ;A. for循环B. while循环C. do循环D. 任一种循环B 30. switch语句能够改写为语句;A. forB. ifC. doD. whileD 31. do语句能够改写为语句;A. 复合B. ifC. switchD. whileC 32. 在下面的一维数组定义中,哪一个有语法错误;A. int a={1,2,3};B. int a10={0};C. int a;D. int a5;D 33. 在下面的字符数组定义中,哪一个有语法错误; ;A. char a20=”abcdefg”;B. char a=”x+y=55.”;C. char a15;D. char a10=’5’;C 34. 在下面的二维数组定义中,正确的是 ;A. int a5;B. int a5;C. int a3={{1,3,5},{2}};D. int a10;C 35. 假定一个二维数组的定义语句为“int a34={{3,4},{2,8,6}};”,则元素a12的值为 ;A. 2B. 4C. 6D. 8A 36. 假定一个二维数组的定义语句为“int a34={{3,4},{2,8,6}};”,则元素a21的值为 ;A. 0B. 4C. 8D. 6B 37. 若定义了函数 double function, 则函数function的返回值为 ;A. 实数型B.实数的地址C.指向函数的指针D.函数的地址B 38. 以下说法中正确的是 ;A. C++程序总是从第一个定义的函数开始执行B. C++程序总是从main函数开始执行C. C++函数必须有返回值,否则不能使用函数D. C++程序中有调用关系的所有函数必须放在同一个程序文件中C 39. 以下叙述中不正确的是 ;A. 在一个函数中,可以有多条return语句B. 函数的定义不能嵌套,但函数的调用可以嵌套C. 函数必须有返回值D. 不同的函数中可以使用相同名字的变量A 40. 函数重载是指 ;A. 两个或两个以上的函数取相同的函数名,但形参的个数或类型不同B. 两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同C. 两个以上的函数名字不同,但形参的个数或类型相同D. 两个以上的函数取相同的函数名,并且函数的返回类型相同C 41. 以下关于函数模板叙述正确的是 ;A. 函数模板也是一个具体类型的函数B. 函数模板的类型参数与函数的参数是同一个概念C. 通过使用不同的类型参数,函数模板可以生成不同类型的函数D. 用函数模板定义的函数没有类型C 42. 下列的调用方式是引用调用;A. 形参和实参都是变量B.形参是指针,实参是地址值C. 形参是引用,实参是变量D.形参是变量,实参是地址值A 43. 为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择 ;A. 内联函数B.重载函数C.递归函数D.函数模板B 44. 函数原型语句正确的是 ;A. int Functionvoid a; Function int;C. int Functiona; intdouble a;B 45. C++中函数返回值的类型是由决定的;A. return语句中表达式的类型B.该函数定义时的类型C.调用函数时的调用语句D.系统根据结果A 46. 以下函数的返回结果是 ;int functionchar x {char p=x; whilep++; returnp-x-1;}A. 求字符串的长度B.将字符串x连接到字符串p后面C. 将字符串x复制到字符串p中D.将字符串x反向存放B 47. 函数调用funcexp1,exp2,exp3,exp4,exp5中所含实参的个数为个;C. 4D. 5B 48. 设有如下函数定义int fchar s {char p=s;whilep=’\0’ p++;returnp-s;}在主函数中用cout<<f“good”调用上述函数, 则输出结果为 ;A. 3B. 4C. 5D. 6C 49. 以下正确的函数原型语句是 ;A. double funint x,int yB. double funint x;int yC. double funint,int;D. double funint x,y;B 50. 以下正确的说法是 ;A. 用户调用标准库函数前,必须重新定义B. 用户可以重新定义标准库函数,若如此,该函数将失去原有含义C. 系统不允许用户重新定义标准库函数D. 用户调用标准库函数前,不必使用预编译命令将该函数所在文件包括到用户源文件中D 51. 函数调用不可以 ;A. 出现在一个表达式中B. 出现在执行语句中C. 作为一个函数的实参D. 作为一个函数的形参B 52. 以下正确的描述是 ;A. 函数的定义可以嵌套,函数的调用不可以嵌套B. 函数的定义不可以嵌套,函数的调用可以嵌套C. 函数的定义和函数的调用均可以嵌套D. 函数的定义和函数的调用均不可以嵌套A 53. 若用数组名作为函数调用的实参,传递给形参的是 ;A. 数组的首地址B. 数组中第一个元素的值C. 数组全部元素的值D. 数组元素的个数D 54. 以下错误的描述是 ;A. 被调用函数中可以不用return语句B. 被调用函数中可以用多个return语句C. 被调用函数中,如果有返回值,就一定要有return语句D. 被调用函数中,一个return语句可返回多个值给调用函数C 55. 以下正确的描述是 ;A. 不允许设置参数的默认值B. 设置参数的默认值只能在定义函数时设置C. 设置参数的默认值时,应该设置右边的参数D. 设置参数的默认值时,应该全部参数都设置D 56. 采用重载函数的目的是 ;A. 实现共享B. 减少空间C. 提高速度D. 使用方便,提高可读性C 57. 将两个字符串连接起来组成一个字符串时,选用函数;A. strlenB. strcapC. strcatD. strcmpB 58. 以下叙述中正确的是 ;A. 使用define可以为常量定义一个名字,该名字在程序中可以再赋另外的值B. 使用const定义的常量名有类型之分,其值在程序运行时是不可改变的C. 在程序中使用内联函数使程序的可读性变差D. 在定义函数时可以在形参表的任何位置给出缺省形参值C 59. 下面的标识符中, 是文件级作用域;A. 函数形参B.语句标号C.外部静态类标识符D.自动类标识符D 60. 以下叙述不正确的是 ;A. 宏替换不占用运行时间B. 宏名无类型C. 宏替换只是字符替D. 宏名必须用大写字母表示D 61. C++语言的编译系统对宏命令的处理是 ;A. 在程序运行时进行B. 在程序连接时进行C. 和C++程序的其它语句同时进行编译D. 在对源程序中其它成分正式编译之前进行B 62. 当include后面的文件名用双引号括起来时,寻找被包含文件的方式是 ;A. 直接按系统设定的标准方式搜索目录B. 先在源程序所在目录搜索,再按系统设定的标准方式搜索目录C. 仅仅搜索源程序所在目录D. 搜索当前逻辑盘上的所有目录A 63. 当include后面的文件名用尖括号括起来时,寻找被包含文件的方式是 ;A. 直接按系统设定的标准方式搜索目录B. 先在源程序所在目录搜索,再按系统设定的标准方式搜索目录C. 仅仅搜索源程序所在目录D. 搜索当前逻辑盘上的所有目录C 64. 在下面存储类中, 对象的可见性与生存期不一致;A. 外部类B. 自动类C. 内部静态类D. 寄存器类A 65. 在下面存储类中, 的对象不是局部变量;A. 外部静态类B. 自动类C. 函数形参D. 寄存器类C 66. 关于局部变量,下面说法正确的是 ;A. 定义该变量的程序文件中的函数都可以访问B. 定义该变量的函数中的定义处以下的任何语句都可以访问C. 定义该变量的复合语句中的定义处以下的任何语句都可以访问D. 定义该变量的函数中的定义处以上的任何语句都可以访问C 67. 文件包含命令中被包含的文件的扩展名 ;A. 必须是.hB. 不能是.hC. 可以是.h或.cppD. 必须是.cppB 68. 预处理命令在程序中都是以符号开头的;A. B. C. & D.B 69. 设array为一个数组,则表达式sizeofarray/sizeofarray0的结果为 ;A. array数组首地址B. array数组中元素个数C. array数组中每个元素所占的字节D. array数组占的总字节数C 70. 用new运算符创建一个含10个元素的一维整型数组的正确语句是 ;A. int p=new a10;B. int p=new float10;C. int p=new int10;D. int p=new int10={1,2,3,4,5}A 71. 下列给字符数组赋初值时,正确的是 ;A. char s1=”abcdef”;B. char s24=”abcd”;C. char s323={“abc”,”xyz”};D. char s44={‘a’,’x’,’s’,’t’};D 72. 设有定义“static int data56;”,设该数组在静态存储区中的起始地址为十进制的100,若每个int型数占4个字节,则数组元素data23的地址为 ;A. 115B 73. 假定变量m定义为“int m=7;”,则定义变量p的正确语句为 ;A. int p=&m;B. int p=&m;C. int &p=m;D. int p=m;D 74. 假定k是一个double类型的变量,则关于变量p的正确定义语句为 ;A. double p=&k;B. int p=&k;C. double &p=k;D. char p=”Thank you”;A 75. 变量s的定义为“char s=”Hello world”;”,要使变量p指向s所指向的同一个字符串,则应选取 ;A. char p=s;B. char p=&s;C. char p;p=s;D. char p; p=&s;C 76. 关于void 指针,下列说法正确的是 ;A. void 指针就是未指向任何数据的指针B. void 指针就是已定义而未初始化的指针C. 指向任何类型数据的指针可直接赋值给一个void 指针D. void 指针值可直接赋给一个非void 指针D 77. 假定一条定义语句为“int a10, x, pa=a;”,若要把数组a中下标为3的元素值赋给x,则不正确的语句为 ;A. x=pa3;B. x=a+3;C. x=a3;D. x=pa+3;D 78. 假定有定义“int b10; int pb;”,则不正确的赋值语句为 ;A. pb=b;B. pb=&b0;C. pb=new int;D. pb=b5;C79. 假定p是具有double类型的指针变量,则表达式++p使p的值以字节为单位增加 ;A. 1B. 4C. sizeofdoubleD. sizeofpC 80. 假定p指向的字符串为”string”,则cout<<p+3的输出结果为 ;A. stringB. ringC. ingD. i四、问答题每题10分1.为什么称C++语言是混合型面向对象的语言答:一般真正的向对象语言具有抽象、封装、继承和多态性等特征,完全由一组抽象的对象组成,因此没有全局函数;而C++是在标准C语言的基础上引入“面向对象”概念而扩充形成的,严格地讲,它不是完全由一组抽象的对象类组成;因为C++程序中还有像main这样的全局函数,因此称它为混合型面向对象语言;2. 下面是一个联合的定义:Class CU {union {int ivalue;float fvalue;}下面是类C的定义:class C : public A, private B{private:int c;public:void setCint x, int y {c=x; setBy;}void showC {showB ; cout << c << endl;}};讨论类C属于何种方式的继承及其派生方法对访问基类成员的影响;答:类C是多重继承,它从类A 公有派生,因此,类A的公有保护的成员在类C中仍是公有的保护的;类C从类B私有派生,类B的所有成员在类C中是私有的;6. C++ 的流库预定义了哪几个流与这几个流所联结的具体设备是什么答:它们是cin、cout、cerr和clog,与C++的流类库预定义的四个流所联结的具体设备为:cin 与标准输入设备相关联cout 与标准输出设备相关联cerr 与标准错误输出设备相关联非缓冲方式clog 与标准错误输出设备相关联缓冲方式7. 在使用C++时,是否应仍然保持C语言的习惯及思维方式为什么答:不行;做为C语言的超集,C++在技术上是和C完全兼容的, 但它在概念上是和C语言完全不同的,因此,使用者应该学会按C++自己的方式来使用它,掌握C++的思维方式、设计方法和习惯;8.C++中有哪些机制可以实现命名常量答:第一个方法是定义const数据类型,它不但说明了数据,而且声明它是常量,即它的值不能改变;另外一个办法就是利用枚举;9. 简述模板类的动态特征;答:从类系的动态性能角度来看,模板类具有更多的动态特征;一旦完成一个继承类系的设计,它能处理的数据和处理数据的方法就确定了,除非新继承一个类来完成新的功能;模板类在设计完成之后,可以处理的数据类型却可以不断增加,并且模板类的实例可在编译时刻初始化,从而具有更好的灵活性;10 .简述静态成员的特性,然后就作用域与全局变量进行比较答:作为类的静态成员,它的特征是不管类创建了多少个对象,其静态成员都只有一个副本,这个副本为类的所有对象共享;类的静态成员不同于全局变量,全局变量的作用于为整个程序,静态成员只能在类的对象中有效;11.用指针或引用调用虚函数与通过对象访问虚函数的区别是答:使用一个基类型的指针或引用调用一个虚函数时候,c++使用动态联编,而通过对象访问时候,则使用静态联编;12. 多重继承的构造顺序一般可分为4步,下面给出这4个步骤:答:1: 任何虚拟基类的构造函数按照它们被继承的顺序构造;2: 任何非虚拟基类的构造函数按照它们被继承的顺序构造;3: 任何成员对象的构造函数按照它们声明的顺序构造;4: 类自己的构造函数;13. 在C++中,应该使用什么语句来动态分配和释放内存答:. new,delete14. 下面的程序的正确的输出结果是什么include <>include <>class base{。

C语言编程技术试卷

C语言编程技术试卷
}
case 2: printf(“Ido this.\n”);
}}
该程序的运行结果是___________________________________.
6.写出表示逻辑关系”a 大于等于10或a 小于等于0”的C表达式______。
7.在C语言中,如果不对函数作类型说明,则函数的隐含类型为_____。
void main()
{ intx=1,y=1;
switch(x)
{
case 1:
switch(y)
{
case 0: printf(“y is 0.\n”);break;
case 1: printf(“y is 1.\n”);break;
default: printf(“y is unknown.\n”);break;
A.break语句不能用于循环语句和switch语句外的任何其它语句
B.在switch语句中使用break语句或continue语句的作用相同
C.在循环语句中使用continue语句是为了结束本次循环,而不是终止整个循环
D.在循环语句中使用break语句是为了使流程跳出循环体,提前结束循环
4.若char a;
while(__①_____)
{ if (a>b) {t=a;_②__;b=t;}
printf("%d,%d\n",a,b);
scanf("%d%d",&a,&b);} }
五、程序设计题(共16分)
1.编程求以下公式的值。
S=1+1/(1*2)+1/(2*3)+……+1/(n*(n+1))
2.有一个3乘4的数组,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。

C语言考试复习题及答案

C语言考试复习题及答案

一、单选题(请将正确答案写在答题纸,1~20题每题1分,21~35题每题2分,共50分)1. 下列关于C语言的说法不正确的是( D )。

A.C语言既具有高级语言的一切功能,也具有低级语言的一些功能B.注释可以出现在程序中任意合适的地方C.C语言中的每一条执行语句都必须用分号结束,分号是C语言的一部分D.定义函数的首行要加分号2. C语言程序的执行顺序是(B)。

A.从第一个函数开始执行B.从main函数开始执行C.从任意函数开始执行D.从第一条语句开始执行3. 以下关于注释的叙述,正确的是(D)。

A.注释参与编译,影响程序结果B.注释不参与编译,但影响程序结果C.注释参与编译,但不影响程序结果D.注释不参与编译,不影响程序结果4. 以下叙述正确的是(A)。

A.C语言程序可以在任意C编译器下编译B.C语言程序只能在TC环境下编译C.C语言程序只能在VC或TC环境下编译D.C语言程序只能在VC环境下编译5. C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符( B )。

A.必须为字母B.必须为下划线或字母C.必须为下划线D.可以是字母,数字和下划线中任一字符6. 下面四个数字常量选项中,书写均正确的是(D)。

A.016 0x8f 018 (零开头的是八进制,不能用8)B.0312 7ff -087(8进制没有符号)C.0xbc 0a7(8进制没有a)0xaD.070 0xf1 0x19(16进制以ox开头)7. 若有说明语句:char c=0x7f;则变量c(B)。

A.包含3个字符B.包含1个字符C.包含2个字符D.说明不合法,c的值不确定8. 设有int x=11;则表达式(++x*1/3)的值是( B )。

(11+1再除以3)A.3B.4C.11D.129. 阅读下面程序段,输出结果为( B )。

(z-a=25)#include "stdio.h"void main(){ char c;c=('z'-'a')/3+'A';putchar(c);}A.HB.JC.ID.K10. 若有定义和语句:int a=23,b=023; printf(“%x,%d \n”,a,b);输出结果是( D )。

C语言程序设计题目及解答-01

C语言程序设计题目及解答-01

一、判断题 (20分)1. 计算机是信息处理的工具,任何信息必须被转换成二进制形式数据后才能由计算机进行处理、存储和传输。

2分2. C语言采用解释方式将源程序转换为二进制的目标代码。

2分3. 在C源程序中,/*与*/之间的注释信息也被编译,但对程序运行运果不发生影响。

2分4. 在C语言中,字母的大小写不被区分。

2分5. 对C语言中用到的任何一个变量都要规定其类型。

2分6. 字符型数据和整数之间是不可以通用的。

2分7. 转义字符是一种常量。

2分8. C程序中的一个变量可以被定义为两个或多个不同的类型。

2分9. 字符常量是用单撇号括来的一个字符,这个字符可以是任意的。

2分10. C语言中的标识符以字母或下划线开头,可跟任何字符。

2分二、选择题 (60分)1.目前,在微型计算机中普遍采用的符号编码是() [A] 2分A. ASCII码B. EBCDIC码C. GB2312-80 码D. UNICODE码2.下列一组数据表示方式中的最大数是() [D] 2分A. 1234OB. 1FFHC. 1010001BD. 789D3.ASCII码采用的是()位编码方案,在计算机中的表示方式为()。

[C] 2分A. 8,最高位为“0”的2BB. 8,最高位为“1”的2BC. 7,最高位为“0”的1BD. 7,最高位为“1”的1B4.下列字符中,其 ASCII码值最大的是()。

[B] 2分A. AB. aC. 0D. 95.若在一个非零无符号二进制整数右边加两个零形成一个新的数,则新数的值是原数值的()倍。

[A] 2分A. 4B. 2C. 1/4D. 1/26.计算机中,一个浮点数由两部分组成,它们是()。

[C] 2分A. 阶码和基数B. 基数和尾数C. 阶码和尾数D. 整数和小数7.汉字编码与ASCII码在计算机内部的区分方法是()。

[C] 2分A. 两个字节的高八位都为“0”为两个ASCII码B. 两个字节的高八位都为“1”为两个ASCII码C. 两个字节的高八位都为“1”为一个汉字编码D. 两个字节的高八位都为“0”为一个汉字编码8.常用字符的ASCII码值从小到大的排列顺序为()。

C 语言程序设计试卷7

C 语言程序设计试卷7

C 语言程序设计试卷(7)一、单项选择题(每题1分,共20分)1. 一个C语言程序是由( ① )。

A. 一个主程序和若干子程序组成B. 若干函数组成C. 若干过程组成D. 若干子程序组成2. 已知:char *s="\Name\\Address\n";则s所指的字符串的长度为( ① ).A. 18B. 16C. 13D. 143. 若有条件表达林(exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是( ① )。

A. (exp==0)B. (exp!=0)C. exp==1D. (exp!=1)4. 已知:a=b=c=1且均为int型变量,则执行以下语句:++a||++b&&++c;变量a值为( ① ),b值为( ② )。

①A. 不正确B. 0C. 2D. 1②A. 1B. 2C. 不正确D. 05. C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是( ① )。

A. 地址传递B. 单向值传递C. 双向值传递。

即由实参传给形参,再由形参传回给实参D. 由用户指定传递方式6. 以下正确的函数形式是( ① )。

A.double fun1(int x,int y){z=x+y;return z;}B.fun1(int x, y){int z;return z;}C.fun1(x,y){int x,y;double z;z=x+y;return z;}D.double fun1(int x, int y){double z;z=x+y;return z;}7. C语言允许函数值类型缺省定义,此时该函数值隐含的类型是( ① )。

A. float型B. int型C. long型D. double型8. 以下程序有语法性错误,有关错误原因的正确说法是( ① )。

void main(void){int k;void prt_char();……k=prt_char(G);……}A. 语句void prt_char();有错,它是函数调用语句,不能用void说明。

c语言程序填空题

c语言程序填空题

程序填空题1.下述程序是一个选择排序程序,请填完整空缺部分。

Void select _sort (int p [ ], int n ){ int i, j, k, temp;for ( i =0 ;i<n-1; i ++ ){ k = i;for ( j=i+1; j<n ; j++)if ( p[j]<p[k]) k=j;if (k!=i) { temp= p[k]; p[k]=p[i];p[i]=temp;} }}main(){ int i,a[20];for (i =0; i<20; i++) scanf (“%d”,&a[i]); select_sort(a,20);for ( i = 0;i<20; i++)printf (“%d\t”,a*i+;printf (“\n”);}2.下面程序的功能是:计算1到10之间的奇数之和及偶数之和,请填空。

# include <stdio.h>main(){ int a, b, c , i;a = c = 0 ;for(i=0;i<=10;i+=2){ a + = i ;b=i+1;c += b ;}printf ( “偶数之和= %d \n “, a ) ;printf ( “奇数之和= %d \n “, c –11 );}3.下面程序的功能是:输出100 以内能被3 整除且个位数为6 的所有整数,请填空:main(){ int i , j ;for ( i = 0 ;i<10; i + + ){ j = i * 10 + 6 ;if ( j%3!=0) continue ;printf ( “ %d” , j ) ;}}4.程序读入20个整数,统计非负数的个数,并计算非负数之和。

#include “stdio.h”main(){ int I,a[20],s,count;____s=count=0____;for(I=0;I<20;I++)scanf(“%d”,_&a[i]__);for(I=0;I<20;I++){if(a[I]<0)continue;s+=a[I];count++}printf(“s=%d\t count=%d\n”,s,count);}5.下面的程序用以分别求出数组两条对角线上的各元素之和。

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

二、程序填空题(每空2分,共20分)
1.下列程序是求100之内的能被7整除的自然数之和。

请在横线处填入适当的语句,将程序补充完整。

#include <iostream.h>
void main( )
{
int sum;
_(1) _;
for(int i=1;__(2) _; i++)
if(_(3) _)
sum+=i;
cout<<sum<<endl;
}
答案:_sum=0_ i<=100_ i%7==0__
2 下面程序的功能是计算x n。

请在横线处填入适当的语句,将程序补充完整。

#include <iostream.h>
void main( )
{
int n,x;
cin>>x>>n;
double y=1;
for(int i=1;__(1) _; i++)
_(2) _;
cout<<y<<endl;
}
答案:i<n_ y=x*i
3 下面程序是输出100内能被3整除且个位数是6的所有整数。

请在横线处填入适当的语句,将程序补充完整。

#include <iostream.h>
void main()
{
int i,j;
for(i=0; (1) ;i++)
{
j=i*10+6;
if( (2) )
continue;
else
cout<<j<<endl;
}
}
答案:i<10 j%3!=0
4.下面程序运行后输出的结果为:
*
* * *
* * * * *
* * * * * * *
请在横线处填入适当的语句,将程序补充完整。

#include <iostream.h>
#include<iomanip.h>
void main()
{
int i,j,k ;
for(i=1 ;i<=4 ;i++)
{
for(j=1;j<20-3*i; (1) ) cout<<”“;
for(k=1; (2) ; k++)
cout<<setw(3)<<”*”;
(3) ;
} }
答案:j++ k<2*i-1 cout<<endl
5.下面程序运行后输出的结果为:
1
121
12321
1234321
请在横线处填入适当的语句,将程序补充完整。

#include <iostream.h>
#include<iomanip.h>
void main()
{
int i,j,k ;
for(i=1 ;i<=4 ;i++)
{
for(j=1;j<20-3*i;j++)
cout<<”“;
for(k=1; (1) ; k++)
cout<<setw(3)<<k;
for( (2); k>0; k--)
cout<<setw(3)<<k;
cout<<endl;
} }
答案:k<=i k=i-1
6.以下程序将数组中的元素按逆序存放。

请在横线处填上适当的语句,将程序补充完整。

#include<iostream.h>
void main()
{
int a[12],i,j,t;
for(i=0;i<12;i++)
cin>>a[i];
for(i=0;i<6;i++)
{ (1) ; (2) ; (3) ; }//数组元素交换for(i=0;i<12;i++)
cout<<a[i]; }
答案:t=a[i] a[i]=a[11-i] a[11-i]=t
7.下面程序功能是从键盘上输入10个整数,求出最大值、最小值和和。

请在横线处填上适当的语句,将程序补充完整。

#include<iostream.h>
void main()
{
int a[10],i,min,max ;
for(i=0 ;i<10 ;i++)
cin>>a[i];
int sum=0;
(1) ;
for(i=1;i<10;i++)
if((2) ) min=a[i];
if((3) ) max=a[i];
(4) ;
}
cout<< min<<max<<sum<<endl;
答案:min=max=a[0] a[i]<min a[i]>max sum+=a[i]
8.下面程序功能是将整型数组a中的10个元素用2种方法依次输出。

请在横线处填上适当的语句,将程序补充完整。

#include<iostream.h>
void main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10},i ;
int *p ;
for(i=0 ;i<10 ;i++)
cout<<_______(1)______________; //使用数组下标
for( (2);p<a+10 ;p++)
cout<< (3); //使用指针变量
}
答案:a[i] p=a *p
9. 以下程序的功能是输出:
abc
bc
c
请在有下划线处补充完整程序。

#include <iostream.h>
void main()
{
char *p=”abc”;
for(; *p!='\0'; (1) )
cout<< (2) <<endl;
}
答案:p++ p
10. 编写程序求1+2+3+。

+a和,请在有下划线处补充完整。

#include <iostream.h>
void main()
{
int a,b;
int sum(int n);
cout<<"请输入a:"<<endl;
cin>>a;
(1) ; //计算1到a的累加和
cout<<b<<endl;
}
int sum(int n)
{
int i,k=0;
for(i=1;i<=n;i++)
(2); ;
(3);
}
答案:b=sum(a) k+=i(或k=k+i) return k
11.编写程序求1!+2!+3!+4!+5!和,(其中求阶乘是用函数来实现的),请在有下划线处补充完整。

#include<iostream.h>
________(1)______ ____;
void main( )
{ long s=0;
for(int i=1;i<=5;i++)
____(2)___ _______;
cout<<"1!+2!+3!+4!+5!= "<<s<<endl;
}
long int fac(int x)
{ static int b=1;
b*=x;
______(3)__________________;
}
答案:long int fac(int x)或long int fac(int )
s+=fac(i)或s=s+fac(i)
return b
12.编写程序是用递归算法求n!, 请在有下划线处补充完整。

#include<iostream.h>
int f1(int a);
void main()
{
int a=6;
cout<< (1) <<endl;
}
int f1(int a)
{
return(a==O)?1:(2);
}
答案:fl(a) a*f1(a-1)
13.在横线处填上适当语句,使程序输出结果为1。

#include<iostream.h>
class M
{
public:
M(int i){x=i;}
void show(){cout<<get();}
private:
int x;
int get(){return x;}
};
void main()
{
(1) ; //初始化类M的对象a
(2) ; //调用对象a的成员函数}
答案:
M a(1)
a.show()。

相关文档
最新文档