c++试题
C语言考试试题及答案
《C语言》考卷一单选题(每题2分,共25题,共50分)1.要把高级语言编写的源程序转换为目标程序,需要使用( )[2分][2分]A.编辑程序B.驱动程序C.诊断程序D.编译程序参考答案:D2.以下叙述中正确的是( )[2分][2分]A.C语言程序将从源程序中第一个函数开始执行B.可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C.C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束D.main可作为用户标识符,用以命名任意一个函数作为主函数参考答案:C3.若变量a是int类型,并执行了语句:a=‘A'+1.6;,则正确的叙述是( )[2分][2分] int a int a=66 = 65 + 1.6 =66.6A.a的值是字符BB.a的值是浮点型C.不允许字符型和浮点型相加D.a的值是字符‘A’的ASCII值加上2参考答案:Aint a = ‘A’;char b = 65;4.若变量已正确定义并赋值,以下符合C语言语法的表达式是( )[2分][2分]A.a:=b+1B.a=b=c+2C.18.5%3D.a=a+7=c+b参考答案:B5.下列可用于C语言用户标识符的一组是( )[2分][2分]A.void, define, WORDB.a3_b3, _123,carC.For, -abc, IF CaseD.2a, DO, sizeof参考答案:B6.若在定义语句:int a,b,c,*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是( )[2分][2分]A.scanf("%d",a,b,c);B.scanf("%d%d%d",a,b,c);C.scanf("%d",p); //scanf(“%d”,&c);D.scanf("%d",&p);参考答案:C7.以下关于long、int和short类型数据占用内存大小的叙述中正确的是( )[2分][2分]A.均占4个字节B.根据数据的大小来决定所占内存的字节数 // long a = 1 int b = 1000000C.由用户自己定义D.由C语言编译系统决定参考答案:D8.若变量已正确定义,有以下程序段i=0;do{printf("%d,",i); //0}while(i++); //while(0) i=1printf("%d\n",i); //1其输出结果是( )[2分][2分]A.0,0B.0,1C.1,1D.程序进入无限循环参考答案:B9.有以下计算公式则不能够正确计算上述公式的程序段是( )(提示:库函数sqrt()用来求一个数的平方根)[2分][2分]A.if(x>=0) y=sqrt(x); else y=sqrt(-x); //if/else配合使用B.y=sqrt(x) if(x<0) y=sqrt(-x);C.if(x>=0)y=sqrt(x); if(x<0)y=sqrt(-x); //if单独使用D.y=sqrt(x>=0?x:-x);参考答案:B10.设有条件表达式:EXP ? i++ : j--;则以下表达式与之完全等价的是( )[2分][2分]A.(EXP==0)? i++ : j--;B.(EXP!=0)? i++ : j--;C.(EXP==1)? i++ : j--;D.(EXP!=1)? i++ : j--;参考答案:B11.有以下程序#include<stdio.h>int main(void){int y=9;for( ; y>0; y--){if(y%3 == 0)printf("%d",--y);}}程序的运行结果是( )[2分][2分]A.741B.963C.852D.875421参考答案:C12.若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是( )[2分][2分]A.函数的实参和其对应的形参共占同一存储单元B.形参只是形式上的存在,不占用具体存储单元 //局部变量C.同名的实参和形参占同一存储单元D.函数的形参和实参分别占用不同的存储单元参考答案:D13.已知字符‘A’的ASCⅡ代码值是65,字符变量c1的值是‘A’,c2的值是‘D’。
C语言基础知识 试题 精选
C语言基础知识试题精选work Information Technology Company.2020YEARC语言基础知识题目精选[1] 下面叙述中正确的是__B__。
A.调用函数时的实参只能是有确定值的变量B.return( )语句中的括号中,可以是变量,常量或有确定值的表达式C.C语言中,函数调用时实参变量和形参变量间的参数传递方式都不是值传递D.实参和形参若类型不匹配,编译时将报错[2]下面叙述中错误的是__A__A.主函数中定义的变量在整个程序中都是有效的B.在其它函数中定义的变量在主函数中也不能使用C.形式参数也是局部变量D.复合语句中定义的函数只在该复合语句中有效[3]下列说法中正确的是__A__。
A.带参数的宏定义中的参数是没有类型的B.宏展开将占用程序的运行时间C.宏定义命令是C语言中的一种特殊语句D.使用#include命令包含的头文件必须以“.h"为后缀[4] 完成将文件指针fp重新指向文件的开头位置的函数是__D__。
A.feof(fp)B.ferror(fp)C.fseek(fp)D.rewind(fp)[5] 下面说法中错误的是_D___。
A.以二进制形式输出文件,则文件的内容与内存中完全一致B.定义:int a=123;若以ASCII文件的形式存放,变量a将在磁盘上占三个字节C.C语言中,没有输入输出语句,对文件的读写都是用库函数来实现的D.C语言的文件中,数据以记录为界线,便于区分[6]. C语言中,switch后的括号内表达式的值可以是__D__。
A.只能为整型B.只能为整型,字符型,枚举型C.只能为整型和字符型D.任何类型[7.] 若函数的形参为一维数组,则下列说法中正确的是_B___。
A.调用函数时的对应实参必为数组名B.形参数组可以不指定大小C.形参数组的元素个数必须等于实参数组的元素个数D.形参数组的元素个数必须多于实参数组的元素个数[8]. 系统的标准输出文件是_D___。
c语言基础试题及答案
c语言基础试题及答案一、选择题1、在C语言中,引用数组元素时,其数组下标的数据类型允许是。
A、整型常量B、整型表达式C、整形常量或整形表达式D、任何类型的表达式2、以下对一维整型数组a的正确说明是____A、int a(10) ;B、int n=10,a[n];C、int n;scanf(“%d”,&n);int a[n];D、#define SIZE 10int a[SIZE];3、若有定义:int a[10],则对数组a元素的正确引用是A、a[10]B、a[3.5]C、a(5)D、a[10-10]4、以下能对一维数组a进行正确初始化的语句是。
A、int a[10]={0,0,0,0,0};B、int a[10]={} ;C、int a[ ] = {0} ;D、int a[10]={10*1} ;5、若有定义:int a[3][4],则对数组a元素的正确引用是________A、a[2][4]B、a[1,3]C、a(5)D、a[10-10]6、以下能对二维数组a进行正确初始化的语句是_______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}} ;7、若有说明:int a[3][4]={0};则下面正确的叙述是_______A、只有元素a[0][0]可得到初值0B、此说明语句不正确C、数组a中各元素都可得到初值,但其值不一定为0D、数组a中每个元素均可得到初值08、下面是对s的初始化,其中不正确的`是_____A、char s[5]={“abc”};B、char s[5]={‘a’,’b’,’c’,’d’,’e’,’0’};C、char s[5]=””;D、char s[5]=”abcdef”;二、程序填空1、以下程序把一个由小到大的有序数列放在a[1]到a[n]中,a[0]用作工作单元,程序把读入的x值插入到a数组中,插入后,数组中的数仍然的序。
C语言试卷01
C语言试题(一)1.下列关于C语言用户标识符的叙述中正确的是______。
A. 用户标识符中可以出现下划线和中划线(减号)B. 用户标识符中不可以出现中划线,但可以出现下划线C. 用户标识符中可以出现下划线,但不可以放在用户标识符的开头D. 用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头2.以下叙述不正确的是A. 一个C源程序可由一个或多个函数组成B. 一个C源程序必须包含一个main函数C. C程序的基本组成单位是函数D. 在C程序中,注释说明只能位于一条语句的后面3.下面能正确进行字符串赋值操作的语句是A.char s[5]={"ABCDE"};B.chars[5]={'A','B','C','D','E'};C.char *s;s="ABCDEF";D.char *s; scanf("%s",s);4.下列叙述中正确的是A. C语言编译时不检查语法B. C语言的子程序有过程和函数两种C. C语言的函数可以嵌套定义D. C语言的函数可以嵌套调用5.以下程序输出的结果是____。
main( ){ float a=5,b=4,d;d=(a>b);printf("%d\n",d);}A. 1B. 0C. 1.0D. 46.设int a=5,b=6,表达式(b--==6)?++a:--b的值是___A. 5B. 6C. 7D. 47.设i,j,k均为int型变量,则执行完下面的for语句后,k的值为___ 。
for(i=0, j=10; j>=i; i++, j--)k=i+j;A. 10B. 20C. 8D. 08.能正确表示逻辑关系:"1≤a≤9"的C语言表达式是A. a>=1 or a<=9B. a>=1且a<=9C. a>=1&&a<=9D. 1≤a≤99.有以下程序main(){int i=0,k=2;if(++i)printf("%d",k);else printf("%d",-k)}执行后输出结果是A. -2B. 2C. 0D. 110.执行下面的程序段后,变量k中的值为int k=3, s[2];s[1]=k; k=s[1]*10;A.不定值 B.33 C.30 D.10 11.若有以下说明和语句,则输出结果是______。
C语言试题库(含答案)
D、print f("%c\n",class[2].name[0]);
标准答案:D
【5】设单精度变量f,g的值均为5.0,则下面的表达式中,使f为10.0的表达式是。
A、f+=g
B、f-=g+5
C、f*=g-5
D、f/=g*5
标准答案:A
if(ch=='/')w=a/b;
B、B)if(ch=='*')w=a*b;
else if(ch=='/')w=a/b;
if(ch=='+')w=a+b;
else if(ch=='-')w=a-b;
C、if(ch=='+')w=a+b;
else if(ch=='-')w=a-b;
if(ch=='*')w=a*b;
A、15
B、10
C、25
D、20
标准答案:A
【15】程序段的基本结构中,不包含()。
A、函数结构
B、循环结构
C、顺序结构
D、分支结构
标准答案:A
【1】执行语句scanf("%d,%d",&m,&n);使m和n的值分别为1和2,正确输入是。
A、1
B、2
C、1,2
D、12
标准答案:c
【3】若用数组名作为函数调用的实参,传递给形参的是()。
#include<stdio.h>
main()
{int i=1;
C语言试题和答案大全
模块1 C语言基础知识1. 选择题(1)C语言中运算对象必须是整型的运算符是(B )。
A. %=B. /C. =D. <=(2)以下所列的C语言常数中,错误的是(B )。
A. 0xFFB. 1.2E0.5C. 2LD. -.67(3)以下选项中能作为用户标识符的是( C )。
A. voidB. 7_9C. _3_D. Dr.Tom(4)以下所列的C语言字符常量中,合法的是( B )。
A. ”B”B. ’\n’C. ’中国’D. d(5)以下选项中正确的定义语句是( D )。
A. int a:b;B. int ,a,b;C. int a+b=6;D. int a=6,b;(6)以下关于long、int、short型数据占用内存大小的叙述中正确的是( D )。
A. 均占4个字节B. 根据数据的大小来决定所占内存的字节数C. 由用户自己定义D. 由C语言编译系统决定(7)若有定义语句:int x=10;,则表达式x-=x+x的值为( B )。
A. -20B. -10C. 0D. 10(8)表达式((a=3*5,a+4),a+5)的值是( A )。
A. 20B. 29C. 60D. 90(9)若有定义语句:int a=3,b=4,c=5;,则以下表达式中值为0的是( D )。
A. a&&bB. a<=bC. a||b+c&&b-cD. !((a<b)&&c||1)(10)设有以下定义:int i;char c;float f;,以下结果为整型的表达式是( B )。
A. i+fB. i*cC. c+fD. i+c+f2. 填空题(1)设有int n=12;,则表达式(n++*1/3)的值是 4 。
(2)定义以下变量:char c;int x;float y;double z;,则表达式c*x+y-z,所求得的数据类型为double 。
(3)设变量a和b已正确赋初值,请写出a/=a+b等价的赋值表达式a=a/(a+b) 。
C语言基础知识测试题-全面完整
基础知识测试题一.单项选择题1.以下不正确的C语言标识符是(D )A. ABCB. abcC. a_bcD. ab.c2.以下正确的C语言标识符是( C)A. %xB. a+bC. a123D. test!3.一个C语言程序的执行是从(A )。
A. main( )函数开始,直到main( )函数结束B. 第一个函数开始,直到最后一个函数结束C. 第一个语句开始,直到最后一个语句结束D. main( )函数开始,直到最后一函数结束4.在C语言程序中,main(C )的位置()。
A. 必须作为第一个函数B.必须作为最后一个函数C.任意D.必须放在它所调用的函数之后5.一个C语言程序是由(B )。
A. 一个主程序和若干个子程序组成B.一个或多个函数组成C.若干过程组成D.若干子程序组成6.C语言源程序的基本单位是(B)。
A. 过程B. 函数C. 子程序D. 标识符7.编辑程序的功能是(A)。
A. 建立并修改程序C.将C源程序编译成目标程序D.调试程序E.命令计算机执行指定的操作8.C编译程序是(D)。
A. C语言程序的机器语言版本B. 一组机器语言指.D. 将C源程序编译成目标程序的程序F. 由制造厂家提供的一套应用软件B9.不属于字符型常量的是( D )A.'A'B."B"C.'\n'D.'\x72'10 .设char ch; 以下正确的赋值语句是:(B )A.ch='123';B.ch='\xff';C.ch='\08';D.ch="\";11 .以下使i的运算结果为4的表达式是(D )A.int i=0,j=0;(i=3,(j++)+i);B.int i=1,j=0;j=i=((i=3)*2);C.int i=0,j=1;(j==1)?(i=1):(i=3);D.int i=1,j=1;i+=j+=2;A12 .若t为double类型,表达式t=1,t+5,t++的值是(D)A.1B.6.0 CC13.设整型变量m,n,a,b,c,d均为1,执行“(m=a>b)&&(n=a>b)”后m,n的值是( B)A.0,0B.0,1C.1,0D.1,1B14 .执行语句“x=(a=3,b=a--)”后,x,a,b的值依次为(CA.3,3,2B.3,2,2C.3,2,3D.2,3,2B15 .若a=1,b=2,c=3,d=4,则条件表达式a<b?a:a<d?c:d的值为(A )A.1B.2C.3D.416 .设int n=7;则++n+1= =9的结果是(C )A.trueB.falseC.1D.017 .设a=2,b=2;则++a+b的结果是(d),a的结果是(b),b的结果是(a)A.2B.3C.4D.518 .设a=2,则执行b=a==!a;语句后,b的结果是( A)A.0B.1C.2D.319 .设有以下语句,则c的二进制值是()char a=3,b=6,c;c=a^b<<2;A.00011011B.00010100C.00011100D.0001100020 .在C语言类型说明中,int、char、short等类型的长度是( A )A.固定的B.由用户自己定义的C.任意的D.与机器字的长度有关的二.填空题1.C语言中的标识符只能由三种字符组成,它们是、、。
c语言试题及答案大全
c语言试题及答案大全一、选择题1. 下列关于C语言的说法中,正确的是:A. C语言是一种高级编程语言。
B. C语言可以被编译成机器语言执行。
C. C语言的语法和C++完全相同。
D. C语言不支持面向对象的编程。
答案:B. C语言可以被编译成机器语言执行。
2. C语言中,以下哪个是合法的标识符?A. 123abcB. abc_123C. intD. function()答案:B. abc_1233. 在C语言中,以下哪种循环结构是先判断条件后执行循环体?A. for循环B. while循环C. do-while循环D. switch语句答案:C. do-while循环二、编程题1. 编写一个C程序,计算并输出1到n之间所有整数的和。
其中,n由用户输入。
答案:#include <stdio.h>int main() {int n;int sum = 0;printf("请输入一个整数n:");scanf("%d", &n);for (int i = 1; i <= n; i++) {sum += i;}printf("1到%d之间所有整数的和为%d\n", n, sum);return 0;}2. 编写一个C程序,判断一个整数是否为素数。
素数是指除了1和自身外,无法被其他整数整除的整数。
答案:#include <stdio.h>#include <stdbool.h>bool is_prime(int num) {if (num <= 1) {return false;}for (int i = 2; i * i <= num; i++) {if (num % i == 0) {return false;}}return true;}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (is_prime(num)) {printf("%d是素数\n", num);} else {printf("%d不是素数\n", num);}return 0;}三、应用题1. 假设有一个班级的学生信息如下:学号姓名年龄性别101 张三 18 男102 李四 17 女103 王五 16 男请根据上述学生信息,编写一个C程序,输出学生的平均年龄。
C语言试卷(含答案)
C语言试卷(含答案)一、单项选择题(每小题2分,共40分)1、sizeof(float)是()A. 一个双精度型表达式B. 一个整型表达式C. 一种函数调用D. 一个不合法的表达式2、设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值: scanf("i=%d,f=%f",&i,&f);为了把100和分别赋给i和f,则正确的输入为()。
A. 100B. i=100,f=765.12C. 100<回车>D. x=100y=3、#include<>voidmain(){inta=3,b=2,c=1;intx=10,y=20;if(a<b)< p="">if(b!=0)if(!x)y=1;elseif(x)y=0;y=-1;printf("%d",y);}上面的C程序的输出结果是()。
A. 20B. 1C. 0D. -14、C语言中,while和do…while循环的主要区别是()。
A. do…while的循环体至少无条件执行一次B. while的循环控制条件比do…while的循环控制条件严格C. do…while允许从外部转到循环体内D. do…while的循环体不能是复合语句5、执行下面的C程序段后,输出结果是()。
inta=5; while(a--);printf("%d",a);A. 54321B. 4321C. 0D. -16、在C语言中,()是在所有函数外部声明的。
A. 全局变量B. 局部变量C. 形参D.实参7、分析下面的C程序:#include<>voidmain(){intnum=0;while(num<=2){num++;printf("%d",num);}}输出结果是()。
A. 123B. 012C. 23D. 128、下面的C语言代码段的输出结果是()。
C语言试试题库(完整版)
C语言试题库一、单项选择第一章C语言概述(1)一个C程序的执行是从A、本程序的MAIN函数开始,到MAIN 函数结束。
B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。
C、本程序的MAIN函数开始,到本程序的最后一个函数结束。
D、本程序文件的第一个函数开始,到本程序的MAIN函数结束。
(2)以下叙述正确的是A、在C程序中,MAIN函数必须位于程序的最前面。
B、C程序的每行中只能写一条语句。
C、C语言本身没有输入输出语句。
D、在对一个C程序进行编译的过程中,可发现注释中的拼写错误。
(3)C语言规定,在一个源程序中,MAIN主函数的位置是在:A、必须在最前面。
B、必须在系统调用的库函数的后面C、可以在任意位置。
D、必须在最后面(4)一个C程序是由:A、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成(5)以下叙述不正确的是:A、一个C源程序可由一个或多个函数组成B、一个C源程序必须包含一个MAIN函数C、C程序的基本组成单位是函数D、在C程序中,注释说明只能位于一条语句的后面第二章数据类型、运算符与表达式(1)若x, i, j, k都是int型变量,则计算下面表达式后,x的值为x=(i=4, j=16, k=32)A、4B、16C、32D、52(2)下列四组选项中,均不是C语言键字的选项是A、define , IF, typeB、getc, char, printfC、include, scanf, caseE、if, struct, type(3)下面四个选项中,均是不合法的用户标识符的选项是A、A,P_0,doB、float,1a0, _AC、b-a, goto, intD、_123, temp, INT(4)若有代数式3ae/bc,则正确的C语言表达式是A、a/b/c*e*3B、3*a*e/bcC、3*a*e/b*cD、a*e/c/b*3(5)已知各变量的类型说明如下:int k, a, b;unsinged long w=5;double x=1.42;则以下不符合C语言语法的表达式是A、x%(-3)B、w+=-2;C、k=(a=2,b=3,a+b)D、a+=a-=(b=4)*(a=3)第三章简单C程序设计(1)putchar函数可以向终端输出一个A、整型变量表达式值B、实型变量值C、字符串D、字符或字符型变量值(2)若x,y均定义为int型,z定义为double 型,以下合法的scanf函数调用语句是A、scanf(“%d%lx,%le”,&x,&y,&z);B、scanf(“%2d*%d%lf”,&x,&y,&z);C、scanf(“%x%*d%o”,&x,&y,&z);D、scanf(“%x%o%6.2f”,&x,&y,&z);(3)当输入数据的形式为:25,13,10<回车>时,以下程序的输出结果为main(){int x,y,z;scanf(“%d%d%d”,&x,&y,&z);printf(“x+y+z=%d\n”,x+y+z);}A、x+y+z=48B、x+y+z=35C、x+z=35D、不确定值(4)以下能正确的定义整型变量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;(5)若有以下定义,则正确的赋值语句是int a,b; float x;A、a=1, b=2;B、b++;C、a=b=5;D、b=int(x);第四章选择结构程序设计(1)能正确表示“当x的值在[1,10]和[200,210]的范围为真,否则为假”的表达式是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)(2)以下程序的运行结果是#include “stdio.h”main(){int a,b,d=241;a=d/100%9;b=(-1)&&(-1);printf(“%d,%d”,a,b);}A、6,1B、2,1C、6,0D、2,0(3)请阅读以下程序:main(){int a=5 , b=0 , c=0;if (a+b+c) printf(“* * *\n”);else printf(“$ $ $\n”);}以上程序。
C试题
一、单项选择1.以下叙述不正确的是A.一个C程序可由一个或多个函数构成B.一个C程序必须包含一个main函数C.C程序中,main函数必须位于其它函数之前D.一个C程序可由多个源程序文件组成2.选出合法的C语言常量A.0x12hB.“student’s book”C. 1.2e0.5D.‘%%’3.对于如下数据定义:int a; long b;如果要输入a和b的值,正确的scanf调用是A. scanf("a=%db=%d",*a,*b);B. scanf("a=%db=%d",&a,&b);C. scanf("a=%db=%ld",&a,&b);D. scanf("a=b=%d",&a);4.为避免嵌套的条件语句if-else的二义性,C语言规定:else只与配对A.其之前最近且尚未配对的ifB.缩排位置相同的ifC. 其之后最近的ifD.同一行上的if5.以下对二维数组a的正确说明是A.int a[2][ ]={{1,2,3},{4,5,6}};B.int a[ ][3]={{1,2,3},{4,5}};C.int a[2][3]={{1,2,3},{4},{5,6}};D.int a[ ][3]={{1,2,3,4},{5,6}};6.函数调用时,A.实参传递值给形参,形参传递值给实参;B.实参和形参为简单变量时,各占一个独立的存储单元C.实参和形参共用一个存储单元D.当实参和形参同名时二者共用一个存储单元7.C语言程序的三种基本结构是A.递归结构,循环结构,转移结构B.顺序结构,选择结构,循环结构C.嵌套结构,递归结构,顺序结构D.循环结构,转移结构,顺序结构8.若有以下说明:struct person{ char name[20];int age;} a={"Li", 20}, *p=&a;则对printf( )函数调用正确是A. printf(“%s\n”,(*p).name[0])B. printf( “%s\n”, p .name[0]);C.printf(“%s\n”, p->name[0]);D. printf(“%c\n”, p->name[0]);9.选出在任何情况下都不引起二义性的定义A. #define POWER(x) x*x;B. #define POWER(x) (x)*(x);C. #define POWER(x) (x*x);D. #define POWER(x) ((x)*(x));10.若有以下说明语句,则char s[]=”abc\0278ef\””;A.数组s的长度为12;B.说明不合法,数组s的长度不确定;C.数组s的长度为9;D.数组s的长度为8;11.若整型变量a=10,b=4,c=2,则表达式!(a>b,b<c,a>c)的值为 AA.0B. 1C.10D. 212.已知:char a; int b; float c; double d;则表达式a*b+c-d 的结果为 A 型A.doubleB.intC.floatD.char13.关于switch语句的正确说法是 BA.各case分支的最后一条语句必须是break语句B.case后的表达式必须为常量表达式C.必须有default分支D.case后的表达式的值必须按升序或降序排列14.若有以下对数组的声明,正确的是: CA. int n=10; char s[n];B. char s[ ];C. #define n 10D. int n=8;char s[n]; char s[n+2];15.对于C程序的函数,下列叙述中正确的是 AA.函数的定义不能嵌套,但函数的调用可以嵌套B.函数的定义可以嵌套,但函数的调用不能嵌套C.函数的定义和调用均不能嵌套D.函数的定义和调用均可嵌套16.已知int aa[3][4],(*p)[4],以下语句的正确形式为 CA.p=aa[2];B.p=aa[2][0];C.p=aa+2;D.p=&aa[2][0];17.已知:char str1[20],*str2;则下列语句正确的是: DA.str1=”I’ m happy!”; B.str2=”I’m happy!”;C. scanf(“%s”,str2);D. scanf(“%s”,str1);19.条件编译的基本形式为:#XXX 标识符程序段1#else程序段2#endif这里XXX可以是 AA.ifdef或ifndef或ifB.ifdef或includeC.ifdef或ifndef或defineD.define或include20.已知函数的原型为:float cos(float x);则指向它的指针变量为___D___A.float *p(int x);B. float *p( float x);C. float (*p)(float x, float y);D. float (*p)(float x);二、阅读理解1.int i=5;int f(x) 2. #include<stdio.h>{ main( )int y; {static char str[]=”how old are you!”;y=x*i; char *p;return y; int i; p=str;} for(i=0;str[i]!=’\0’;i++)main( ) if(str[i]!=’o’&&str[i]!=’’ ){ *p++=str[i];int i; *p=str[i];for(i=1;i<=4;i++) puts(str);printf(“%d ”,f(i)); }}运行结果为:_ 运行结果为:________3.#include<stdio.h>4. #include<stdio.h>void fun(int *p,int n) #define N 5{int *i,*j, s; void main( )i=p;j=p+n-1; { int i, j;while(i<j) for(i=0;i<N; i++){s=*i; { printf(“\n”);*i++=*j; for(j=0; j<N; j++)*j++=s; putchar(i<j? ‘’: ’A’+j-i) } }} }void main( ){int i;int x[]={10,20,30,40,50};fun(x,5);for(i=0;i<5;i++)printf(“%d”,x[i]);}运行结果为:_______ 运行结果为:_ ___________三、改错题1.本程序计算N×N 二维数组全部元素中的最小元素值:行号程序01 #include<stdio.h>02 #define N 403 int fun(int arr[][N])04 main( )05 {06 static int aa[ ][N]={07 {1,2,3,4},{5,6,7,8},08 {-8,-7,-6,-5},{-4,-3,-2,-1}};09 int min;10 min=fun(aa[0][0]);11 printf(“min=%d”,min);12 }13 int fun(int arr[N][N])14 {15 int i,j;16 int m=arr[0][0];17 for(i=1;i<N;i++)18 for(j=0;j<N;j++)19 if(m>arr[i][j])20 m=arr[i][j];21 return m;22 }错误依次为:行号应改为行号应改为2. 本程序计算N×N 二维数组aa每行元素的和,写入到文件A.dat中。
C语言试题及答案
C语言试题及答案集团标准化工作小组 #Q8QGGQT-GX8G08Q8-GNQGJ8-MHHGN#第1章C语言概述习题1. 单项选择题(1) C 语言是在 B 语言的基础上产生的。
A. 回车符B. 冒号C. 逗号D. 分号(2) 在 C 语言中,每个语句必须以 D 结束。
A. 回车符B. 冒号C. 逗号D. 分号(3) 标识符和关键字间,要用 C 隔开。
A. 回车符B. 冒号C. 空格D. 分号(4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。
A. 生成可执行目标文件B. 生成目标文件C. 输出运行结果D.自动保存源文件(5) 下列说法中正确的是( B )。
A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入C. 由于C 程序是高级语言程序,因此输入后即可执行D. 由于 C 程序是高级语言程序,因此它由命令组成(6) 下列说法中正确的是( A )。
A. C 语言程序由主函数和 0 个或多个函数组成B. C 语言程序由主程序和子程序组成C. C 语言程序由子程序组成D. C 语言程序由过程组成(7) 下列说法中错误的是( D )。
A. 主函数可以分为两个部分:主函数说明部分和主函数体B. 主函数可以调用任何非主函数的其他函数C. 任何非主函数可以调用其他任何非主函数D. 程序可以从任何非主函数开始执行2. 填空题(1) C 语言只有 37 个关键字和 9 种控制语句。
(2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。
(3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。
(4) 在 C 语言程序中允许出现的字符集是 ASCII码字符集。
(5) C 语言的程序中有特殊含义的英语单词称为保留字。
全国计算机c类试题及答案
全国计算机c类试题及答案一、选择题1. 在计算机科学领域,“WWW”常指以下哪个概念?A. 万维网B. 局域网C. 网络硬件D. 超文本传输协议2. 下列哪个选项是描述计算机硬件的?A. 算法B. 编程语言C. 驱动程序D. CPU3. 下列哪种存储器属于易失性存储器?A. 硬盘B. 光盘C. 蓝光盘D. 内存条A. 主板B. 显卡C. 操作系统D. 内存5. 计算机中,“CPU”是指什么?A. 中央处理器B. 内存条C. 主板D. 显卡二、填空题1. “IP”指的是什么?答:Internet Protocol2. 计算机中,用来存放临时数据的存储器是什么?答:内存3. 四位二进制数转换为十进制,0110对应的十进制数是多少?答:6答:键盘5. 在计算机术语中,缩写“CPU”代表着什么?答:Central Processing Unit三、判断题1. 操作系统是计算机硬件的一部分。
(判断题)答:错误2. RAM是计算机的主要存储器。
(√/×)答:√3. 二进制数系统是计算机中常用的数制之一。
(√/×)答:√4. 计算机的四大基本组成部分是输入设备、输出设备、硬盘和内存。
(判断题)答:错误5. “URL”是指网页的统一资源定位符。
(判断题)答:√四、简答题1. 请简要解释什么是操作系统,并列举几个常见的操作系统。
答:操作系统(Operating System)是计算机系统中最为基本的系统软件之一,它是计算机硬件和应用软件之间的接口,负责管理和协调计算机资源,提供用户与计算机之间的交互操作。
常见的操作系统有Windows、Mac OS、Linux等。
2. 请简要介绍几种常见的计算机编程语言及其应用领域。
答:常见的计算机编程语言包括C、C++、Java、Python等。
C语言广泛应用于嵌入式系统和操作系统的开发,C++语言适合于开发大型软件系统,Java语言常用于Web应用程序和移动应用程序的开发,Python语言则在科学计算、人工智能等领域有广泛的应用。
C语言考试试题基础版
一、选择题1. 在每个C 程序中都必须包含有这样一个函数,该函数的函数名为 。
A 。
mainB 。
MAIN C. name D 。
function2. 在以下关于C 语言的注释的叙述中,不正确的是 。
A .注释可用”/*”、"*/”形式表示,也可用"//”形式表示B .编译器在编译一个程序时,将跳过注释,不对其进行处理C .编译器在编译一个程序时,可发现注释中的单词拼写错误D .程序中注释的多少不会影响所生成的可执行文件的长度3. 以下叙述不正确的是 。
A .在C 程序中,严格区分大小写字母B .一个C 源程序有且仅有一个main 函数C .在C 程序中,注释只能位于一条语句的后面D .一个C 程序总是从main 函数开始执行4. 下列合法的标识符为A. abde+ B 。
#KDJF C. 67KDJ D. DK3_5. 关于字符串和字符的关系正确的是A. “A"与'A ’是相同的B. 字符串是常量,字符是变量C. “A ”与’A ’是不同的D. “A ”与“A"是相同的6. 下面关于语句的说法正确的是A. 下面这两段程序的执行效果是一致的B. 空语句是只有一个分号的语句,它其实什么也不干C. 语句的构成不一定需要分号D. 语句的书写对程序的运行不起作用,因此可以随便写都可以7. 以下各标识符中,合法的用户标识符组为 。
A. PAd ,P #d ,b-b,abc ,_0123,ssipedB. cin ,a10,CPP ,float ,del_word ,signedC. void ,max ,hiy,〈fr>,list ,*jerif (x>y){z=x; s=z*z;}else{z=y;s=1/(z*z);}if (x>y) z=x; s=z*z; else z=y;s=1/(z*z);D.a,temp,_isw,INT,keep,wind8.字符串“\”E OF= -\61\””的长度是.A.8B.9 C.12 D.非法字符串9.数学式xsin在C程序中对应的不正确的表达式为。
C语言练习测试题(带参考答案)-绝对经典题目不看后悔
1单选题1.(A)是构成C语言程序的基本单位。
A、函数B、过程C、子程序D、子例程2.C语言程序从C开始执行。
A)程序中第一条可执行语句???B)程序中第一个函数???C)程序中的main函数?????????D)包含文件中的第一个函数3、以下说法中正确的是(C)。
选项3)6.下列C选项A D中的“-”不满足(1);7.下列四组选项中,正确的C语言标识符是(C)。
A)%xB)a+bC)a123D)123选项A中的“%”,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。
A、print_3ddb8aBcB、I\amone_halfstart$it3paiC、str_1CpppowwhileD、PxqMy->bookline#His.age选项B中的“\”,”$”,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键字,不满足(3)9.C语言中的简单数据类型包括(D)。
A、整型、实型、逻辑型B、整型、实型、逻辑型、字符型C、整型、字符型、逻辑型D、整型、实型、字符型10.在C语言程序中,表达式5%2的结果是C。
A)2.5B)2 C)1D)3详见教材P52~53.%为求余运算符,该运算符只能对整型数据进行运算。
且符号与被模数相同。
5%2=1;5%(-2)=1;(-5)%2=-1;(-5)%(-2)=-1;/为求商运算符,该运算符能够对整型、字符、浮点等类型的数据进行运算,5/2=211.如果inta=3,b=4;则条件表达式"a<b?a:b"的值是__A__。
详见教材表达式1若表达式若表达式此题中的a为3,b为14.下面(D)14~16详见教材(1(2型。
选项A,11与3为两个整数,11/3结果的数据类型也应为整数,因此将3.666666的小数部分全部舍掉,仅保留整数,因此11/3=3.选项B,11.0为实数,3为整数,因此首先要统一数据类型,将整型数据3转换为3.0,转换后数据类型统一为实型数据,选项B变为11.0/3.0,结果的数据类型也应为实型数据,因此选项B11.0/3=3.666666选项C,先将整数11强制类型转换,转换为实型11.0,因此选项C变为11.0/3,其后计算过程、结果与选项B 同选项D,首先计算11.0/3,其计算过程、结果与选项B同,得到3.666666;再计算3.666666+0.5=4.166666,最后将4.166666强制类型转换为整型,即将其小数部分全部舍掉,结果为415.设整型变量a=2,则执行下列语句后,浮点型变量b的值不为0.5的是(B)A.b=1.0/aB.b=(float)(1/a)C.b=1/(float)aD.b=1/(a*1.0)16.若“intn;floatf=13.8;”,则执行“n=(int)f%3”后,n的值是(A)A.1B.4C.4.333333D.4.6“(int)f“表示将f中的值强制类型转换为整型,即将13.8的小数部分舍掉,转换为13;然后计算13%3,结果为1,再将结果赋给变量n,因此n的值为117.以下对一维数组a的正确说明是:DA)chara(10);B)inta[];C)intk=5,a[k];D)chara[3]={‘a’,’b’,’c’};详见教材P143~144,一维数组的定义、初始化类型符数组名[常量表达式]类型符是指数组中数组元素的类型;数组名要符合标识符命名规则;常量表达式是指数组的长度(数组中包含元素的个数)选项B,详见教材选项A19.在C详见教材数组名[下标inta[10]表示定义了一个包含10个整型数据的数组a,数组元素的逻辑地址下标范围为0~9,即a[0]表示组中第1个元素;a[1]表示组中第2个元素;a[2]表示组中第3个元素;......;a[9]表示组中第10个元素.选项A,超过了数组a的逻辑地址下标范围;选项B,逻辑地址下标只能为整数选项C,逻辑地址下标只能放在[]中21.若有以下数组说明,则i=10;a[a[i]]元素数值是(C)。
C语言试题公开
A. 3 B )4 C. 5 D.不定
14.执行下面程序段时输出的结果是
int i=5;
switch(i)
{ case 5:
case 6: i+=5;
case 7: break;
case 8: i+=5;
}
printf("i=%d",i)
A. i=5 B. i=10 C. i=15 D. i=20
则数组str得到的值为__ ____________。
4.有以下说明:step是一个有4个实型元素的数组,元素值分别为1.9, -2.33, 0, 20.6。则正确的C语言说明语句为__________________________。
5.调用fopen函数以文本方式打开文本文件aaa.txt如下
FILE *fp=fopen("aaa.txt",____);
printf("%s\n",p->name); //屏幕显示___
printf("%d\n",q[2]); //屏幕显示___
printf("%d\n",*(q+3)); //屏幕显示___
}
4.读懂源程序,并写出正确结果。
f(int a)
{auto b=0;
static c=3;
b=b+1;
c=c+1;
return(a+b+c);
}
main()
{int a=5,i;
for(i=0;i<3;i++)
printf("%d ",f(a) );
}
c语言选择法试题及答案
c语言选择法试题及答案C语言选择法试题及答案1. 以下哪个选项是C语言中选择结构的关键字?A. switchB. ifC. whileD. do答案:B2. 以下哪个语句用于执行条件判断?A. if (condition)B. switch (expression)C. for (initialization; condition; increment)D. while (condition)答案:A3. 假设有一个变量 `score` 表示一个学生的分数,以下哪个选择结构可以用来判断学生的成绩等级?A. if (score >= 90)B. switch (score)C. for (int i = 0; i < 100; i++)D. while (score != 100)答案:A4. 在C语言中,`switch` 语句中的 `case` 后面应该跟什么?A. 一个表达式B. 一个变量C. 一个常量表达式D. 一个函数答案:C5. 以下哪个选项是C语言中 `if` 语句的正确用法?A. if (x > y)B. if x > yC. if (x > y) elseD. if (x > y) else if答案:A6. 假设 `a` 和 `b` 是两个整数变量,以下哪个选择结构可以用来交换 `a` 和 `b` 的值?A. if (a > b) { int temp = a; a = b; b = temp; }B. switch (a > b) { case 1: int temp = a; a = b; b = temp; }C. for (int i = 0; i < 1; i++) { int temp = a; a = b; b = temp; }D. while (a != b) { int temp = a; a = b; b = temp; }答案:A7. 在C语言中,`else` 语句应该与哪个关键字配对使用?A. ifB. switchC. forD. while答案:A8. 以下哪个选项是 `switch` 语句的正确用法?A. switch (a) { case 1: ...; break; case 2: ...; break; }B. if (a) { case 1: ...; break; case 2: ...; break; }C. switch (a) { if 1: ...; break; if 2: ...; break; }D. switch (a) { case 1: ...; default: ...; }答案:A9. 在C语言中,`break` 语句的作用是什么?A. 退出当前循环B. 退出当前函数C. 退出当前选择结构D. 继续执行下一个循环答案:C10. 以下哪个选项是 `if-else` 语句的正确用法?A. if (condition) { ... } else { ... }B. if (condition) { ... } else { ... }C. if (condition) { ... } else if { ... }D. if (condition) { ... } else if { ... }答案:A。
c语言试题1有答案
一、单项选择题(每题2分,15小题,共30分)1.C语言源程序是由组成的。
A) 过程B) 函数C) 子程序D) 主程序和子程序2.一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是。
A) 有零个或多个输入B) 有零个或多个输出C) 有穷性D) 可行性3.以下选项中合法的C语言标识符是。
A) long B) _2Test C) 3Dmax D) A.dat4.下列转义字符中错误的是。
A) '\000'B) '\14'C) '\x111'D) '\2'5.对于语句:f=(3.0,4.0,5.0),(2.0,1.0,0.0);的判断中,是正确的。
A) 语法错误B) f为5.0C) f为0.0D) f为2.06.若变量a,b已经正确定义并赋值,符合C语言语法的表达式是。
A) a2+b B) a*a+b C) a×a+b D) a·a+b7.有输入语句:scanf("a=%d,b=%d,c=%d",&a,&b,&c);为使变量a的值为1,b的值为3,c 的值为2,则正确的数据输入方式是。
A) 132↙B) 1,3,2↙C) a=1b=3c=2↙D) a=1,b=3,c=2↙8.若 w=1,x=2,y=3,z=4,则条件表达式w<x ?w : y<z ?y : z的值是。
A) 4B) 3C) 2D) 19.设int a=0,b=0,m=0,n=0;则执行(m = a==b)||(n = b==a)后m和n的值分别是。
A) 0,0 B) 0,1 C) 1,0 D) 1,110.以下for循环的执行次数是。
for (x=0,y=0; (y=123)&&(x<4);x++) ;A) 无限循环B) 循环次数不定C) 4次D) 3次11.下面程序段的输出结果是。
C试题附答案
B)构造函数D)普通函数C)析构函选择题:1. 关于类和对象不正确的说法是(C)A类是一种类型,它封装了数据和操作B)对象是类的实例C)一个类的对象只有一个D)一个对象必属于某个类2. 在类定义的外部,可以被访问的成员有(C)A)所有类成员B) private 或protected 的类成员C) public 的类成员D) public 或private 的类成员3. 关于this指针的说法错误的是(A)A)this 指针必须显示说明B)当创建一个对象后,this指针就指向该对象C)成员函数拥有this指针D)静态成员函数不拥有this指针4. 声明一个类的对象时,系统自动调用(B )函数,撤消对象时,系统自动调用(C )函数A)成员函数数5. 下面对构造函数的不正确描述是(回值C)构造函数可以重载参数6. 下面对析构函数的正确描述是(C)A)系统不能提供默认的析构函数义C)析构函数没有参数以设置默认参数7. 对静态成员的不正确描述是(C )A静态成员不属于对象,是类的共享成员D)构造函数可以设置默认B)析构函数必须由用户定D)析构函数可B)静态数据成员要在类外定义和初始化C)调用静态成员函数时要通过类或对象激活,所以静态成员函数拥有this指针D)非静态成员函数也可以操作静态数据成员8. 下面选项中,不是类的成员函数为(C)A构造函数B)析构函数C)友元函数D)缺省参数的构造函数方言9. 下面对友元的错误描述是(D)A)关键字friend 用于声明友元B)一个类的成员函数可以是另一个类的友元C)友元函数访问对象的成员不受访问特性影响D)友元函数通过this指针访问对象成员10. 在C++中,类与类之间的继承关系具有( C )A)自反性B)对称性C)传递性D)反对称性11. 下列关于类的继承描述中,( A )是错误的A派生类可以访问基类的所有数据成员,也能调用基类的所有成员函数B)派生类也是基类,但基类不一定具有派生类的全部属性和方法C)继承描述类的层次关系,派生类可以具有与基类相同的属性和方法D)一个基类可以有多个派生类,一个派生类可以有多个基类12. 当一个派生类仅有继承一个基类时,基类中的所有公有成员成为派生类的(A)A)public 成员B) private 成员C) protected 成员D)友元13. 当一个派生类私有继承一个基类时,基类中的所有仅有成员和保护成员成为派生类的(B)A)public 成员B) private 成员C) protected 成员D)友元14. 不论派生类以何种方法继承基类,都不能使用基类的( B )A) public 成员B) private 成员C) protected 成员D) public 成员和protected 成员15. 下面描述中,错误的是(BC )(两个答案)A)在基类定义的public成员在公有继承的派生类中可见,也能在类外被访问B)在基类定义的public和protected 成员在私有继承的派生类中可见,在类外可以被访问C)在基类定义的public和protected 成员在保护继承的派生类中不可见D)在派生类中不可见的成员要变成可访问的,需要进行访问声明16. 在C++中,不能被派生类继承的函数是(BC )(两个答案)A)成员函数B)构造函数C)析构函数D)静态成员函数17. 在创建派生类对象时,构造函数的执行顺序是(D)A)对象成员构造函数、基类构造函数、派生类本身的构造函数B)派生类本身的构造函数、基类构造函数、对象成员构造函数C)基类构造函数、派生类本身的构造函数、对象成员构造函数D)基类构造函数、对象成员构造函数、派生类本身的构造函数18. 当不同的类具有相同的间接基类时,有特点(AD )(两个答案)A)各派生类对象将按继承路线产生自己的基类版本B)派生类对象无法产生自己的基类版本C)为了建立惟一的间接基类版本,在基类定义前加virtual即可D)为了建立惟一的间接基类版本,应该声明虚继承19. 在C++中,要实现动态联编,必须使用(D )调用虚函数A)类名B)派生类指针C)对象B )构造函数 D )析构函数C )成员函 A) void fun ()=0; C) virtual void fun(); D) virtual void fun(){}; 23.若一个类则该类称为( A )基类 B) 纯基类 C )派生 24.假设A 为抽象类,下列声明 B )是正确的 A) A fun (i nt); B) A *p; C) int fun(A); 25.下面描述中,正确的是( BD )(两个答案) A )虚函数是没有实现的函数 B )纯虚函数的实现在派生类中 C )抽象类是没有纯虚函数的类 D)抽象类指针可以指向不同的派生类 A 普通函数 数 21. 在派生类中,重载一个虚函数时,要求函数名、参数的个数、参数的类型、参数的顺 序和函数的返回值( B ) A )不同 B )相同 C )相容 D )部分相同 22. 下面函数原型声明中,( B )声明了 fun 为虚函数 B) virtual void fun( )=0;D )抽象类D) A Obj;26.关于函数模板,描述错误的是A)函数模板必须由程序员实例化为可执行的函数模板B)函数模板的实例化由编译器实现C)一个类定义中,只要有一个函数模板,则这个类是类模板D)类模板的成员函数都是函数模板,类模板实例化后,成员函数也随之实例化27.下列的模板说明中,正确提(AD )(两个答案)A)template <type name T1, type name T2>B)template <class T1, T2>C)template <class T1, class T2>D)template <type name T1; type name T2>28.假设有函数模板定义如下:Template <type name T>Max(T a, T b, T &c){ c=a+b; }下列选项正确的是( AD )(两个答案)A)float x,y; float z; Max(x,y,z);B)int x,y, z; Max(x,y,z);C)int x,y; float z; Max(x,y,z);D)float x; int y, z; Max(x,y,z);29.关于类模板,描述错误的是( D )A)一个普通基类不能派生类模板B)类模板从普通类派生,也可以从类模板派生A基类a派生类C)模板类a对象A)标准类B)标准对象数D)标准类模板C)标准函32. 下列类中(BD (两个答案)不是输入/输出流类iostream的派生类A) fstream strstream33. 在下列选项中(B) ofstreamD)ostrstreamBCDC)(三个答案)是ostream类的对象D)函数的类模板参数须通过构造函数实例化30. 建立类模板对象的实例化过程为( C )B)构造函数a对象D)模板类a模板函数31. 在C++中,容器是一种(D )A) cin B) cerr C)clog D) cout34. read函数的功能是从输入流中读取( D )A)一个字符B)当前字符C)一行字符D)指定若干个字符35. 下列选项中,用于清除基数格式位置以十六制输出的语句是( B )A) cout<<setf(ios::dec, ios::basefield);B) cout<<setf(ios::hex, ios::basefield);C) cout<<setf(ios::oct, ios::basefield);D) cin> >setf(ios::hex, ios::basefield);36.下列格式控制符, 在iostream.h中定义的是)AD )(两个答,在案)ioma nip.h中定义的是(BC )(两个答案)A) endl B) setfill C)setw D) oct37.下列串流类,在strstream.h 中定义的是(BD )(两个答案),在sstream 中定义的是(AC )A) istri ngstream B) istrstream C) ostri ngstream D) ostrstream38.包含类fstream定义的头文件是) A )A) fstream.h B) ofstream.h C)ifstream.h D) iostream.h39.要求打开文件d:\file.dat ,可与入数据,正确的语句是) D )A)ifstream in file(“d: \f ile.dat ”,ios::i n);B)ifstream in file(“ d: file.dat,IOS::I n);C)ofstream in file(“ d: file.dat ”,ios::out);D)fstream in file(“ d: file.dat ”,ios::i n| ios::out);40. 假定已定义浮点型变量data ,以二进制方式把data的值写入输出文件流对象outfile 中去,正确的语句是(C)A)outfile.write((float *) & data, sizeof(float));B) outfile.write((float *) & data, data);C) outfile.write((char *) & data, sizeof(float));D) outfile.write((char *) & data, data);二、简答题:1. 什么是预编译,何时需要预编译:回答:总是使用不经常改动的大型代码体。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1. C++程序从上机到得到结果的几个操作步骤依次是( )。
A. 编译、编辑、连接、运行
B. 编辑、编译、连接、运行
C. 编译、运行、编辑、连接
D. 编辑、运行、编辑、连接
2 .以下对C++语言函数的描述中,正确的是()。
A.一个程序中可以有多个main函数
B. C++函数既可以嵌套定义,又可以递归调用
C. C++程序由一个或一个以上的函数或类组成
D. C++程序中有调用关系的所有函数必须放在同一个文件中
3. 每个C++程序都必须有且仅有一个()。
A. 预处理命令
B. 主函数
C. 函数
D. 语句
4. 以下选项中合法的用户标识符是()。
A. long
B. _2Test
C. 3Dmax
D. A.dat
5. 在VC++编程中,为了调试程序,生成程序(Build)但不
进行调试的快捷键是()。
A.F10
B. F7
C. F5
D. F9
6. 在VC++编程中,为了调试程序,可以通过下面哪个快捷
键进行彻底逐语句(Step Into)调试。
()
A.F11
B.F7
C.F5
D.F9
7. 设有数组定义:char array[8] = "HELLO";则数组array所占的空间为()。
A. 5个字节
B. 7个字节
C. 6个字节
D. 8个字节
8. 设有数组定义:char array[]="China";则数组array所占的空间为()。
A. 4个字节
B. 5个字节
C. 6个字节
D. 7个字节
9.下列对字符数组进行初始化的语句正确的是()。
A.char a[] ="Hello";
B.char a[][]={…H‟,‟e‟,‟l‟,‟l‟,‟o‟};
C.char a[5]= “Hello”;
D.char a[2][5]={ “Hello”,“World”};
10. 设有函数原型说明,
void test(int a, int b=7, char *c="#");
下面的函数调用中存在语法错误的是( )
A.test(3)
B. test(3,8.2)
C. test(6, "*")
D. test(0,0, "*")
11. 以下正确的描述是()
A. 不允许设置参数的默认值
B. 设置参数的默认值时,应该靠左设置
C. 设置参数的默认值时,应该靠右设置
D. 设置参数的默认值时,应该全部参数都设置
12. 有以下程序
int main()
{
int a[]={1,2,3,4,5,6,7,8,9,0}, *p;
for(p=a; p<a+10; p++)
cout << *p << “,”;
return 0;
}
程序运行后的输出结果是:()
A. 1,2,3,4,5,6,7,8,9,0,
B. 2,3,4,5,6,7,8,9,10,1,
C. 0,1,2,3,4,5,6,7,8,9,
D. 1,1,1,1,1,1,1,1,1,1,
13. 函数定义为void Fun(int &i),变量定义n=100,则下面
调用正确的是()。
A.Fun(20)
B. Fun(20+n)
C. Fun(n)
D. Fun(&n)
14. 函数重载是指()。
A. 两个或两个以上的函数取相同的函数名,但形参的个数
或类型不同
B. 两个以上的函数取相同的名字和具有相同的参数个数,
但形参的类型可以不同
C. 两个以上的函数名字不同,但形参的个数或类型相同
D. 两个以上的函数取相同的函数名,并且函数的返回类型相同。
15. 设有以下语句:
int a=5; int arr[a];
const int b=5; int x[b];
int c=5; int *p=new int[c];
const int d=5; int *p1= new int[d];
其中存在语法错误的是( )
A.第一行
B.第二行
C.第三行
D. 第四行
18.下列关于while和do …while循环语句的叙述中正确的是( )
A. do …while 的循环体至少执行一次
B. while的循环体至少执行一次
C.do…while的循环体不能是复合语句
D.do …while 允许从循环体外跳转到循环体内
19. 有以下程序段
int k=0;
while (k=1) k++;
则while循环执行的次数是()。
A. 无限次
B. 有语法错,不能执行
C. 一次也不执行
D. 执行1次
20. 若执行下面的程序时,从键盘上输入3和4,则输出结果
是()。
int main()
{
int a, b, s;
cin >> a >> b;
s = a;
if (a < b)
s = b;
s = s * s;
cout << s << endl;
return 0;
}
A. 14
B. 16
C. 18
D. 20
21. int Function()
{
static int a = 6;
return a+=6;
}
int main( )
{
std::cout <<Function();
std::cout << ",";
std::cout <<Function();
return 0;
}
输出结果是()
A. 6,12
B. 12,18
C. 12,12
D. 6,6
22. 下面关于类的成员函数描述不正确的是:()
A.静态成员函数内可以直接访问类的非静态成员数据
B.静态成员函数内可以直接访问类的静态成员数据
C.非静态成员函数可以直接访问类的非静态成员数据
D.非静态成员函数可以直接访问类的静态成员数据
23. 以下有关析构函数的叙述不正确的是()。
A. 一个类只能定义一个析构函数
B. 析构函数和构造函数一样可以有形参
C. 析构函数不允许有返回值
D. 析构函数名前必须冠有符号“~“。
24. 任意一个类,构造函数和析构函数的个数最多分别是:
()
A. 不限个数,1
B. 1,不限个数
C. 2,1
D. 1,2
25. 下列关于this指针的说法,哪个是正确的: ()
A. this指针一定指向常量型数据
B. this指向的数据不可更改
C. 静态成员函数中也可以访问this指针
D. this指针本身可直接作为成员函数的返回值。
26.下列关于友元的说法错误的是()。
A. 友元有两种形式:友元函数和友元类。
B. 一个类的友元函数是该类的成员函数。
C. 友元的使用可以提高程序代码灵活性。
D. 友元会破坏面向对象的封装性和隐藏特性。
27.关于new运算符的下列描述中,()是错误的。
A. 它可以用来动态创建对象和对象数组。
B. 使用它创建的对象或对象数组,可以使用运算符delete删除。
C. 使用它创建对象时要调用构造函数。
D. 使用它创建对象数组时必须指定初始值。
28. 执行完C++程序中的下列三条语句之后c指向()。
int a,b,*c=&a; int *p=c; p=&b;
A.p
B. c
C. b
D. a
解答题:
1、试解释#include <myFile.h>和#include “myFile.h”的区别。
使用<>和""的不同在于,使用<>系统从它的默认路径开始寻找,就是你的C++默认放头文件的地方开始找起,找不到才从当前文件夹下找。
而""则是现在当前文件夹下找,找不到才去默认路径找。
2、如何调试VC或C++程序?
3、static关键字的用法及特点?举例说明。
4、在循环中使用break 和continue 语句的区别?
5、局部变量(自动变量),静态变量,全局变量的区别?
6、函数重载的规则是什么?并用简单代码举例说明。