C笔试试题
C语言理论基础考试习题
第一部分C语言理论基础(4) 结构化程序由三种基本结构组成,三种基本结构组成的算法A) 可以完成任何复杂的任务B) 只能完成部分复杂的任务C) 只能完成符合结构化的任务D) 只能完成一些简单的任务(7) 以下叙述中正确的是A) C语言比其他语言高级B) C语言可以不用编译就能被计算机识别执行C) C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D) C语言出现的最晚,具有其他语言的一切优点第二部分C语言基本语法知识(2)以下叙述中错误的是A)C语句必须以分号结束B)复合语句在语法上被看作一条语句C)空语句出现在任何位置都不会影响程序运行D)赋值表达式末尾加分号就构成赋值语句(4)以下能正确定义且赋初值的语句是A)int n1=n2=10;B)char c=32;C)float f=f+1.1;D)double x=12.3E2.5;(5)设有定义:int k=1,m=2; float f=7;,则以下选项中错误的表达式是A)k=k>=k B)-k++ C)k%int(f) D)k>=f>=m(6)有以下程序段int k=0,a=1,b=2,c=3;k=a<b ? b:a; k=k>c ? c:k;执行该程序段后,k的值是A)3 B)2 C)1 D)0(8).以下不能定义为用户标识符的是A)MainB)_0C)_intD)sizeof(11)若整型变量a、b、c、d中的值依次为:1、4、3、2。
则条件表达式a<b?a:c<d?c:d的值A)1 B)2 C)3 D)4(15) 以下4组用户定义标识符中,全部合法的一组是A) _main B) If C) txt D) intenclude -max REAL k_2sin turbo 3COM _001(24)下列关于单目运算符++、--的叙述中正确的是A) 它们的运算对象可以是任何变量和常量B) 它们的运算对象可以是char型变量和int型变量,但不能是float型变量C) 它们的运算对象可以是int型变量,但不能是double型变量和float型变量D) 它们的运算对象可以是char型变量、int型变量和float 型变量(26) 以下选项中合法的用户标识符是A) long B) _2Test C) 3Dmax D) A.dat(27) 以下非法的赋值语句是A) n=(i=2,++i); B)j++; C) ++(i+1); D)x=j>0;(28) 设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是A)6.500000B)6C) 5.500000D) 6.000000(33) 以下选项中不属于C语言的类型的是A) signed short intB) unsigned long intC) unsigned intD) long short(34) 以下叙述正确的是A) 可以把define和if定义为用户标识符B) 可以把define定义为用户标识符,但不能把if定义为用户标识符C) 可以把if定义为用户标识符,但不能把define定义为用户标识符D) define和if都不能定义为用户标识符(35) 在C语言中,合法的长整型常数是A) 0LB) 4962710C) 324562&D) 216D(37) 假定x和y为double型,则表达式x=2,y=x+3/2的值是A) 3.500000B) 3C) 2.000000D) 3.000000(38) 以下合法的赋值语句是A) x=y=100B) d--;C) x+y;D) c=int(a+b);(40) 以下程序的输出结果是main(){ int a=3;printf(“%d\n”,(a+a-=a*a) );}A) –6B)12C) 0D) –12(41) 以下所列的C语言常量中,错误的是A) 0xFFB) 1.2e0.5C) 2LD) ‘\72’(42) 下列选项中,合法的C语言关键字是A) VARB) cherC) integerD) default(47) 若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是A) 1 B) 2 C) 2.0 D) 2.5(48) 若变量a、iI已正确定义,且i已正确赋值,合法的语句是A) a==1 B) ++i; C) a=a++=5; D) a=int(i); (49) 若有以下程序段,int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是A) 0 B) 0.5 C) 1 D) 2(50) 设有int x=11; 则表达式(x++ * 1/3) 的值是A) 3 B) 4 C) 11 D) 12(51) 下列程序的输出结果是A) 3 B) 3.2 C) 0 D) 3.07main(){ double d=3.2; int x,y;x=1.2; y=(x+3.8)/5.0;printf("%d \n", d*y);}(52) 下列变量定义中合法的是A) short _a=1-.le-1;B) double b=1+5e2.5;C) long do=0xfdaL;D) float 2_and=1-e-3;(53) 以下选项中属于C语言的数据类型是A) 复数型B) 逻辑型C) 双精度型D) 集合型(62) C语言提供的合法的数据类型关键字是A) Double B) short C) integer D) Char(73) C语言程序的基本单位是A) 程序行B) 语句C) 函数 D) 字符(5) 设a、b、c为整型数,且a=2、b=3、c=4,则执行完以下语句:a*=16+(b++)-(++c);后,a的值是【5】。
春江苏计算机二C语言试题与答案(笔试)
2010年春江苏省计算机等级二级C考试试题第一部分计算机基础知识1.下面关于通信技术的叙述中,错误的是___1___ 。
A.任何一个通信系统都有信源、信道和信宿这三个基本组成部分B.为了实现远距离传输信息,在模拟通信和数字通信中均采用载波技术C.为了降低传输信息的成本,在通信中广泛采用多路复用技术D.数字通信系统的一个主要性能参数是信道带宽,它指实际进行数据传输时单位时间内传输的二进位数目2.在下列有关集成电路及其应用的叙述中,错误的是___2___ 。
A.集成电路的制造工序繁多,工艺复杂且技术难度高B.经过抛光后的硅片称为晶圆,每个晶圆最多可以制成一个合格的集成电路芯片C.IC卡分为接触式IC卡和非接触式IC卡,后者通常又称为射频卡或感应卡D.集成电路应用十分广泛,目前我国第2代居民身份证中就有集成电路芯片3.在下列有关数字技术的一些叙述中,错误的是_____3_____ 。
A.数字技术是采用有限个状态(例如"0"和"1")来表示、处理、存储和传输信息的B.在逻辑代数中,1与1进行逻辑加(V)和逻辑乘(^)的结果相同C.任何一个十进制数,均可以精确地转换成等值的二进制数D.在PC机中,通常用原码表示正整数、用补码表示负整数4.在下列有关PC机主机的叙述中,错误的是___4___ 。
A.BIOS和CMOS存储器安装在主板上,普通用户一般不能自己更换B.由于PC机主板的物理尺寸等没有标准化,所以不同PC机的主板均不能互换C.芯片组是PC机各组成部分相互连接和通信的枢纽,一般由2块VLSI芯片组成D.芯片组决定了主板上所能安装的内存最大容量、速度及可使用的内存条类型5.在下列4个Intel微处理器产品中,采用双核结构的是_____5_____ 。
A. Core 2 Duo B.Pentium PRO C.Pentium III D.Pentium 46.在下列四种PC机主存储器类型中,目前常用的是_____6_____ 。
c程序设计试题汇编第三版
c程序设计试题汇编第三版
《C程序设计试题汇编(第三版)》是清华大学出版社出版的图书,作者是谭浩强。
这本书包含全国计算机等级考试二级C语言的笔试试题汇编,以及参考答案。
每个题目都有详细的解析,以帮助读者更好地理解题目要求和解题思路。
以下是部分题目:
1. 已知int a[5] = {1, 2, 3, 4, 5};,则a[1]的值是 _______。
2. C语言中的注释不能嵌套,这是因为C语言中 _______ 。
3. 以下程序输出的结果是 _______ 。
4. 在C语言中,可以使用以下方式定义一个数组:int a[5] = {1, 2, 3, 4, 5};,以下对该数组初始化的描述错误的是 _______ 。
如需获取更多题目,建议购买《C程序设计试题汇编(第三版)》进行阅读。
C语言程序设计考试题(全题)
福建师范大学C语言程序设计考试题系别 _______ 班级 _______ 姓名_________ 学号________ 得分__________一、选择题(本大题共40个选项,每个选择项1.5分,共60分)1.在C语言中,合法的字符常数是【1】A)‘程序设计’ B)“程序设计”C)c D)‘\\’2.在C语言中,以下不正确的八进制或不正确的十六进制数是【2】A)090 B)0xABC)0xla D)-0163.执行int x=2,y=3;后表达式x=(y==3)的值是【3】A)0 B)1C)2 D)34.执行语句int a,b,c; a=(b=c=3, c++, b+=c);则a的值是【4】A) 3 B) 4C) 7 D) 115.在循环结构的循环体中执行break语句,其作用是【5】A) 结束本次循环,进行下次循环B) 继续执行break语句之后的循环体中各语句C) 跳出该循环体,提前结束循环D) 终止程序运行【6】main(){char s[]=”\’Address\’”;printf(%d\n”, strlen(s));}A) 9 B) 10C) 11 D) 12【7】main(){int a[]={2, 4, 6, 8, 10}, y=1, x;for(x=0; x<3; x++) y+=a[x+1];printf(“%d\n”, y);}A) 17 B) 18C) 19 D) 208.已定义char x[8]; int i;为了给x数组赋值,以下正确的语句是【8】A) x[8]=”Turbo C”; B) x=”Turbo C”;C) x[]=”Turbo C”; D) for(i=0; i<7; i++) x[i]=getchar();9.设int a[][4]={0, 0};则以下错误的描述是【9】A) 数组a的每个元素都可得到初值0B) 二维数组a的第一维大小为1C) 数组a的行数为1D) 只有元素a[0][0]和a[0][1]可得到初值0,其余元素得不到初值0 【10】fun3(int x){static int a=3;a+=x;return a;}main(){int k=2, m=1, n;n=fun3(k);n=fun3(m);printf(“%d\n”, n);}A) 3 B) 4C) 6 D) 911.以下四个运算符,按优先级由高到低的排列顺序是【11】A) ++ % += > B) % ++ > +=C) % += > ++ D) ++ % > +=【12】A) 在函数外部定义的变量是全局变量B) 在函数内部定义的变量是局部变量C) 函数的形参是局部变量D) 局部变量不能与全局变量同名13.“文件包含”预处理语句的使用形式中,当#include后面的文件名用“”括起时,寻找被包含的文件的方式为【13】A) 直接按系统设定的标准方式搜索目录B) 先在源程序所在目录搜索,再按系统设定的标准方式搜索C) 仅仅搜索源程序所在的目录D) 仅仅搜索当前目录14.设有语句int(*p)();则p是一个【14】A) 指向一维整型数组的指针变量B) 指针函数,该函数的返回值为指向整型变量的指针C) 指向函数的指针变量,该函数的返回值为整型D) 数组指针,它的每个元素都是一个可以指向整型变量的指针变量15.若有typedef float AR[5];AR a;则以下叙述正确的是【15】A) a是一个新类型名B) AR是一个实型数组C) AR是一个实型变量D) a是一个实型数组【16】A)整型、实型、逻辑型B)整型、实型、字符型、逻辑型C)整型、字符型、逻辑型D)整型、实型、字符型17.在C语言中,变量所分配的内存空间大小【17】A)均为一个字节 B)由用户自己定义C)由变量的类型决定 D)是任意的18.在C语言中,合法的整型常数是【18】A)-0x123 B)3.14159 C19.下列各变量均为整型,选项中不正确的C语言赋值语句是【19】A)i+=++i; B)i=j==k;C)i=j+=i; D)i=j+1=k;≤y≤z可用C语言的表达式表示为【20】A)(x<=y)&&(y<=z) B)(x<=y)and(y<=z)C)(x<=y<=z) D)(x<=y)&(y<z)21.若定义float a;现要从键盘输入a数据,其整数位为3位,小数位为2位,则选用【21】A)scanf(“%6f”,&a); B)scanf(“%”,a);C)scanf(“%”,&a); D)scanf(“%f”,a);【22】unsigned a=0356,b;b=~a|a<<2+1;printf(“%x\n”,b);A)ffba B)ff71 C)fff8 D)fc0223.要使以下程序的输出结果为4,则a和b应满足的条件是【23】main(){int s,t,a,b;scanf(“%d%d”,&a,&b);s=t=1;if(a>0) s += 1;if(a>b) t= s + t;elseif(a==b) t=5;else t=2*s;printf(“%d\n”,t);}A)a>0并且a<b B)a<0并且a<bC)a>0并且a>b D)a<0并且a<b24.若int i;则以下循环语句的循环执行次数是【24】for (i=2;i==0;) printf(“%d”,i--);A)无限次 B)0次C)1次 D)2次【25】main(){int i;for(i=100;i<200;i++){if(i%5==0) continue;printf(“%d\n”,i);break;}}A)100 B)101C)无限循环 D)无输出结果【26】int i=1,a[]={1,5,10,9,13,7};while(a[i]<=10) a[i++]+=2;for (i=0;i<6;i++) printf(“%d”,a[i]);A)2 7 12 11 13 9 B)1 7 12 11 13 7C)1 7 12 11 13 9 D)1 7 12 9 13 7“abcde”赋初值给字符数组,不正确的语句是【27】A)char s[]=“abcde”; B)char s[]={’a’, ’b’,’c’,’d’,’e’,’\0’};C)char s[]={“abcde”}; D)char s[5]= “abcde”;28.若变量c为char类型,能正确判断出c为小写字母的表达式是【28】A) 'a'<=c<= 'z' B) (c>= 'a')||(c<= 'z')C) ('a'<=c)and ('z'>=c) D) (c>= 'a')&&(c<= 'z')【29】void fun(int *x, int *y){ printf("%d %d", *x, *y); *x=3; *y=4;}main(){ int x=1,y=2;fun(&y,&x);printf("%d %d",x, y);}A) 2 1 4 3 B) 1 2 1 2 C) 1 2 3 4 D) 2 1 1 2【30】main(){ int i, k, a[10], p[3];k=5;for (i=0;i<10;i++) a[i ]=i;for (i=0;i<3;i++) p[i ]=a[i *(i+1)];for (i=0;i<3;i++) k+=p[i] *2;printf("%d\n",k);}A) 20 B) 21 C) 22 D)2331.当执行下面的程序时,如果输入ABC,则输出结果是【31】main(){ char ss[10]="1,2,3,4,5";gets(ss); strcat(ss, "6789"); printf("%s\n",ss);}A) ABC6789 B) ABC67 C【32】A) int a[2][3]={0}; B) int a[][3]={1,2,3,4,5};C) int a[2][3]={{1,2},{3,4},{5,6}}; D) int a[2][3]={{1},{3,4,5}};33.若int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是【33】A) 2 B) 3 C) 4 D)无确定值34.下面程序段的运行结果是【34】int a[2][3]={1,2,3},i,j;for(i=0;i<2;i++)for(j=0;j<3;j++){a[i][j]=a[i*j%2][j]+a[i][(i+j)%3];printf(“%d,”,a[i][j]);}A) 2,4,6,2,0,8, B) 1,2,3,0,0,0,C) 1,2,3,2,0,6, D) 2,4,6,2,0,6,35.下面程序段的运行结果是【35】int a[][3]={1,2,3,4,5,6,7,8,9,10,11,12};printf(“%d\n”,a[2][1]);A) 2 B) 4 C) 7 D)836.定义一个结构体变量时,系统分配给它的内存大小是【36】A)各成员所需内存量的总和B)成员中占内存量最大者所需内存容量C)结构中第一个成员所需内存容量D)结构中最后一个成员所需内存容量37.若typedef char STRING[255];STRING s;,则s是【37】A)字符指针数组变量B)字符数组变量C)字符变量D)字符指针变量38.若已定义:int *p,a;,则语句p=&a;中的运算符“&”的含义是【38】A) 位与运算B) 逻辑与运算C) 取指针内容D)取变量地址39.若有定义char *p,ch;则不能正确赋值的语句组是【39】A)p=&ch;scanf(“%c”,p);B)p=(char *)malloc(1); *p=getchar();C)*p=getchar();p=&ch;D)p=&ch;*p=getchar();40.下面程序段的运行结果是【40】char s[]=“ABC”;int i;for(i=0;i<3;i++) printf(“%s”,&s[i]);A) ABC B) ABCABCABC C) AABABC D)ABCBCC1.下列叙述中正确的是A) C语言编译时不检查语法B) C语言的子程序有过程和函数两种C) C语言的函数可以嵌套定义D) C语言所有函数都是外部函数0.5 C) 2L D) '\72'3.下列选项中,合法的C语言关键字是A) V AR B) cher C) integer D) default4.设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为A) 不定值B) 4 C) 3 D) 15.下面程序段的运行结果是【5】float y=0.0,a[]={2.0,4.0,6.0,8.0,10.0},*p;int i;p=&a[1];fo r(i=0;i<3;i++) y+=*(p+i);printf(“%f\n”,y);A) 12.0000 B) 28.0000 C) 20.0000 D) 18.00006.下面程序段的运行结果是【6】char c[]={‘a’,‘b’,‘\0’,‘c’,‘\0’};printf(“%s\n”,c);A) ab c B) ‘a’‘b’C) abc D) ab7.下面程序段的运行结果是【7】char s[10],*sp=“HELLO”;strcpy(s,sp);s[0]=‘h’;s[6]=‘!’;puts(s);A) hELLO B) HELLO C) hHELLO! D) h!8.若有定义int a[3][5],i,j;(且0≤i<3,0≤j<5),则a[i][j]的地址不正确表示是【8】A) &a[i][j] B) a[i]+jC) *(a+i)+j D) *(*(a+i)+j)9.若有定义int *p[4];,则标识符p是一个【9】A) 变量的指针变量B) 指向函数的指针变量C) 指向有四个整数元素的一维数组的指针变量D)指针数组名,有四个元素,每个元素均为一个指向整型变量的指针10.若有定义char *language[]={“FORTRAN”, “BASIC”,“PASCAL”,“JA V A”, “C”};则language[2]的值是【10】A) 一个字符B) 一个地址C) 一个字符串D) 不确定11.C语言规定,函数返回值的类型由【11】所决定。
C语言 程序设计基础试题五及答案
《程序设计基础》考试试卷五班级姓名学号____________1.以下叙述中正确的是( )A. C程序中注释部分可以出现在程序中任意合适的地方B. 花括号"{"和"}"只能作为函数体的定界符C. 构成C程序的基本单位是函数,所有函数名都可以由用户命名D. 分号是C语句之间的分隔符,不是语句的一部分2.在一个C语言程序中( )A. main函数必须出现在所有函数之前B. main函数可以在任何地方出现C. main函数必须出现在所有函数之后D. main函数必须出现在固定位置3.判断下面标识符中哪个是C语言中合法的用户定义标识符( )A. a-bB. #abdC. typedefD. _max4.为表示关系X≥Y≥Z,应使用C语言表达式( )A. (X≥Y)&&(Y≥Z)B. X>=Y>=ZC. (X>=Y)‖(Y>=Z)D. (X>=Y)&&(Y>=Z)5.设有一分段函数:x=1 a<b且c=dx=2 a>=b则下列程序段哪个是正确的( )A. if(a<b)B. if (a<b)C. if (a>b)D. if (a>=b)if(c= =d) {if (c= =d) if (c= =d) x=2;x=1; x=1; x=1; elseelse x=2; else x=2;} else x=2; {if(c= =d) x=1;}6.若有两条语句:static char x[]=”abcde”;static char y[]={…a‟,‟b‟,‟c‟,‟d‟,‟e‟};则下列说法中正确的是( )A. x数组和y数组长度相同B.x数组长度大于y数组长度C.x数组长度小于y数组长度D.以上三种说法均错误。
7.返回值为void的函数,其含义是( )A.调用函数之后,被调用的函数没有返回值;B.调用函数之后,被调用的函数不返回C.调用函数之后,被调用的函数返回值为任意类型D.以上三种说法均不正确。
C_C语言笔试面试题目含答案
C语言试题一:单项选择题1.void Example(char acHello[]){printf("%d", sizeof(acHello));return;}void main(){char acHello[] = "hello";Example(acHello);return;}的输出是( )A 4B 5C 6 D不确定2.网络上传输的字节序默认是大字节的,如果主机是小字节序,在网络通信时则须进行字节序转换;如果主机是大字节序,为了程序的一致性及可移植性,最好也在程序中加上字节序转换的操作(空操作)。
( )A. 正确B.错误3. int *(*ptr)();则以下叙述中正确的是( )A) ptr是指向一维组数的指针变量B) ptr是指向int型数据的指针变量C) ptr是指向函数的指针,该函数返回一个int型数据D) ptr是指向函数的指针,该函数的返回值是指向int型数据的指针4.此函数实现把32位IP地址(网络序)以字符串的方式打印出来:char *IpAddr2Str(unsigned long ulIpAddr){char szIpAddr[32];unsigned long ulLocIpAddr = ntohl(ulIpAddr);//把网络序转话为主机序(void)VOS_sprintf(szIpAddr, "%d.%d.%d.%d", ulLocIpAddr >> 24,(ulLocIpAddr >> 16) & 0xff, (ulLocIpAddr >> 8) & 0xff, ulLocIpAddr & 0xff);return szIpAddr;}下面描述正确的是():A、数组szIpAddr空间不够;B、函数返回局部数组szIpAddr变量地址;C、输出的IP地址次序颠倒;5.#define OK 0#define ERR 1#define ERROR (-1)#define BUFFER_SIZE 256char *GetMemory(unsigned long ulSize){char *pcBuf = NULL;pcBuf = (char *)malloc(ulSize);if(NULL == pcBuf){return ERROR;}return pcBuf;}void Test(void){char *pszBuf = NULL;pszBuf = GetMemory(BUFFER_SIZE);if(NULL != pszBuf){strcpy(pszBuf, "Hello World!\r\n");printf(pszBuf);free(pszBuf);}return;}如下描述正确的是:A、pszBuf指向的内存不能超过255B、GetMemory函数的异常分支返回了-1,是一个非法地址C、GetMemory中异常分支没有释放空间;D、pcBuf为局部指针,指向的内存将在GetMemory被调用后释放6、#include "stdio.h"unsigned short *Sum(unsigned char a, unsigned char b){unsigned short s = 0;s = a + b;return &s;}int main(){unsigned short *p = NULL;unsigned char a = 1, b = 2;p = Sum(a, b);printf("%u+%u", a, b);printf("=%u\n", *p);return 0;}程序执行结果是()A.1+2=0B.1+2=3C.1+2=NULLD.不可预测7、设有如下定义:BOOL gStatusA = FALSE;BOOL gStatusB = TRUE;int gVarA = 100;int gVarB = 100;则执行main函数后gVarA和gVarB的值分别为( )BOOL CheckA(){if(gStatusA){gVarA++;}else{gVarA--;}return gStatusA;}BOOL CheckB(){if(gStatusB){gVarB++;}else{gVarB--;}return gStatusB;}int main(int argc, char* argv[]){if(CheckA() && CheckB() ){printf(“Status OK”);}return 0;}A, 99和100 B, 99和101 C 99和99 D 101和998.下面的代码中,函数Test执行完毕后,希望输出无符号长整型的1。
历年计算机二级c语言考试真题以及答案详解
2010年9月全国计算机二级C语言笔试试题(11)以下关于结构化程序设计的叙述中正确的是A)一个结构化程序必须同时由顺序、分支、循环三种结构组成B)结构化程序使用goto语句会很便捷C)在C语言中,程序的模块化是利用函数实现的D)由三种基本结构构成的程序只能解决小规模的问题(12)以下关于简单程序设计的步骤和顺序的说法中正确的是A)确定算法后,整理并写出文档,最后进行编码和上机调试B)首先确定数据结构,然后确定算法,再编码,并上机调试,最后整理文档C)先编码和上机调试,在编码过程中确定算法和数据结构,最后整理文档D)先写好文档,再根据文档进行编码和上机调试,最后确定算法和数据结构(13)以下叙述中错误的是A) C程序在运行过程中所有计算都以二进制方式进行B)C程序在运行过程中所有计算都以十进制方式进行C)所有C程序都需要编译链接无误后才能运行D)C程序中整型变量只能存放整数,实型变量只能存放浮点数(14)有以下定义:int a; long b;double x,y;则以下选项中正确的表达式是A)a%(int)(x-y)B)a=x!=y;C)(a*y)%bD)y=x+y=x(15)以下选项中能表示合法常量的是A)整数:1,200B)实数:1.5E2.0C )字符斜杠:‘\’D)字符串:"\007" (16)表达式a+=a-=a=9的值是A)9B)_9C)18D)0(17)若变量已正确定义,在if (W)printf (“%d\n,k”);中,以下不可替代W的是A)a<>b+cB)ch=getchar()C)a==b+cD)a++(18)有以下程序#include<stdio.h>main(){int a=1,b=0;if(!a) b++;else if(a==0)if(a)b+=2;else b+=3;printf(”%d\n”,b);}程序运行后的输出结果是A)0B)1C)2D)3(19)若有定义语句int a, b;double x;则下列选项中没有错误的是A)switch(x%2) B)switch ((int)x/2.0{case 0: a++;break; {case 0: a++; break;case 1: b++;break; case 1: b++; break;default : a++;b++; default : a++; b++;}}C)switch((int)x%2) D)switch((int)(x)%2){case 0: a++;break; {case 0.0: a++; break;case 1: b++;break; case 1.0:b++; break;default : a++;b++; default : a++; b++;}}(20)有以下程序#include <stdio.h>main(){int a=1,b=2;while(a<6){b+=a;a+=2;b%二10;}printf(”%d,%d\n”,a,b);}程序运行后的输出结果是A)5,11B)7,1C)7,11D)6,1(21)有以下程序#include<stdio.h>main(){int y=10;while(y--);printf(”Y=%d\n”,Y);}程序执行后的输出结果是A)y=0B)y= -1C)y=1D)while构成无限循环(22)有以下程序#include<stdio .h>main(){char s[」=”rstuv";printf(”%c\n”,*s+2);}程序运行后的输出结果是A)tuvB)字符t的ASCII码值C)tD)出错(23)有以下程序#include<stdio.h>#include<string.h>main(){char x[]=”STRING”;x[0」=0;x[1]=’\0’;x[2」=’0’;printf(”%d %d\n”,sizeof(x),strlen (x));}程序运行后的输出结果是A)6 1B)7 0C)6 3D)7 1(24)有以下程序#include<stdio.h>Int f(int x);main(){int n=1,m;m=f(f(f(n)));printf(”%d\n”,m);}int f(int x){return x*2;}程序运行后的输出结果是A)1B)2C)4D)8(25)以下程序段完全正确的是A)int *p; scanf("%d",&p);B)int *p; scanf(“%d”,p);C)int k, *p=&k; scanf("%d",p);D)int k, *p:; *p= &k; scanf(“%d”,p);(26)有定义语句:int *p[4];以下选项中与此语句等价的是A)int p[4];B)int **p;C)int *(p「4」);D)int (*p)「4」;(27)下列定义数组的语句中,正确的是A)int N=10;B)#define N 10int x[N]; i nt x[N];C)int x[0..10]; D)int x[];(28)若要定义一个具有5个元素的整型数组,以下错误的定义语句是A)int a[5]=﹛0﹜;B)int b[]={0,0,0,0,0};C)int c[2+3];D)int i=5,d[i];(29)有以下程序#include<stdio.h>void f(int *p);main(){int a[5]={1,2,3,4,5},*r=a;f(r);printf(”%d\n”;*r);}void f(int *p){p=p+3;printf(”%d,”,*p);}程序运行后的输出结果是A)1,4B)4,4C)3,1D)4,1(30)有以下程序(函数fun只对下标为偶数的元素进行操作)# include<stdio.h>void fun(int*a;int n){int i、j、k、t;for (i=0;i<n一1;1+=2){k=i;‘for(j=i;j<n;j+=2)if(a[j]>a〔k])k=j;t=a〔i];a〔i]=a[k];a〔k]=t;}}main(){int aa「10」={1、2、3、4、5、6、7},i;fun(aa、7);for(i=0,i<7; i++)printf(”%d,”,aa [i]));printf(”\n”);}程序运行后的输出结果是A)7,2,5,4,3,6,1B)1,6,3,4,5,2,7C)7,6,5,4,3,2,1D)1,7,3,5,6;2,1(31)下列选项中,能够满足“若字符串s1等于字符串s2,则执行ST"要求的是A)if(strcmp(s2,s1)==0)ST;B)if(sl==s2)ST;C)if(strcpy(s l ,s2)==1)ST;D)if(sl-s2==0)ST;(32)以下不能将s所指字符串正确复制到t 所指存储空间的是A)while(*t=*s){t++;s++;}B)for(i=0;t[i]=s[i];i++);C)do{*t++=*s++;}while(*s);D)for(i=0,j=0;t[i++]=s[j++];);(33)有以下程序( strcat函数用以连接两个字符串)#include<stdio.h>#include<string .h>main(){char a[20]=”ABCD\OEFG\0”,b[]=”IJK”;strcat(a,b);printf(”%s\n”,a);}程序运行后的输出结果是A)ABCDE\OFG\OIJKB)ABCDIJKC)IJKD)EFGIJK(34)有以下程序,程序中库函数islower (ch)用以判断ch中的字母是否为小写字母#include<stdio.h>#include<ctype.h>void fun(char*p){int i=0;while (p[i]){if(p[i]==’ ’&& islower(p「i-1」))p[i-1]=p[i-1]-‘a’+‘A’;i++;}}main(){char s1[100]=”ab cd EFG!”;fun(s1); printf(”%s\n”,s1);}程序运行后的输出结果是A)ab cd EFG!B)Ab Cd EFg!C)aB cD EFG!D)ab cd EFg!(35)有以下程序#include<stdio.h>void fun(int x){if(x/2>1)fun(x/2);printf(”%d”,x);}main(){fun(7);printf(”\n”);}程序运行后的输出结果是A)1 3 7B)7 3 1C)7 3D)3 7(36)有以下程序#include<stdio.h>int fun(){static int x=1;x+=1;return x;}main(){int i;s=1;for(i=1;i<=5;i++)s+=fun();printf(”%d\n”,s);}程序运行后的输出结果是A)11B)21C)6D)120(37)有以下程序#inctude<stdio.h>#include<stdlib.h>Main(){int *a,*b,*c;a=b=c=(int*)malloc(sizeof(int));*a=1;*b=2,*c=3;a=b;printf(“%d,%d,%d\n”,*a,*b,*c);}程序运行后的输出结果是A)3,3,3 B)2,2,3 C)1,2,3 D)1,1,3(38)有以下程序#include<stdio.h>main(){int s,t,A=10;double B=6;s=sizeof(A);t=sizeof(B);printf(“%d,%d\n”,s,t);}在VC6平台上编译运行,程序运行后的输出结果是A)2,4 B)4,4 C)4,8 D)10,6(39)若有以下语句Typedef struct S{int g; char h;}T;以下叙述中正确的是A)可用S定义结构体变量B)可用T定义结构体变量C)S是struct类型的变量D)T是struct S类型的变量(40)有以下程序#include<stdio.h>main(){short c=124;c=c_______;printf(“%d\n”、C);}若要使程序的运行结果为248,应在下划线处填入的是A)>>2 B)|248 C)&0248 D)<<I二、填空题(每空2分,共30分)请将每空的正确答案写在答题卡【1】至【15】序号的横线上,答在试卷上不得分。
CPP笔试面试汇总
IT公司笔试面试题系列(一)C++笔试题1.多态类中的虚函数表是Compile-Time,还是Run-Time时建立的?答案:虚拟函数表是在编译期就建立了,各个虚拟函数这时被组织成了一个虚拟函数的入口地址的数组.而对象的隐藏成员--虚拟函数表指针是在运行期--也就是构造函数被调用时进行初始化的,这是实现多态的关键.2.一个父类写了一个virtual 函数,如果子类覆盖它的函数不加virtual ,也能实现多态?在子类的空间里,有没有父类的这个函数,或者父类的私有变量? (华为笔试题)答案:只要基类在定义成员函数时已经声明了virtue关键字,在派生类实现的时候覆盖该函数时,virtue关键字可加可不加,不影响多态的实现。
子类的空间里有父类的所有变量(static除外)。
3.完成字符串拷贝可以使用sprintf、strcpy 及memcpy 函数,请问这些函数有什么区别,你喜欢使用哪个,为什么?答案:这些函数的区别在于实现功能以及操作对象不同。
1.strcpy 函数操作的对象是字符串,完成从源字符串到目的字符串的拷贝功能。
2.snprintf 函数操作的对象不限于字符串:虽然目的对象是字符串,但是源对象可以是字符串、也可以是任意基本类型的数据。
这个函数主要用来实现(字符串或基本数据类型)向字符串的转换功能。
如果源对象是字符串,并且指定 %s 格式符,也可实现字符串拷贝功能。
3.memcpy 函数顾名思义就是内存拷贝,实现将一个内存块的内容复制到另一个内存块这一功能。
内存块由其首地址以及长度确定。
程序中出现的实体对象,不论是什么类型,其最终表现就是在内存中占据一席之地(一个内存区间或块)。
因此,memcpy 的操作对象不局限于某一类数据类型,或者说可适用于任意数据类型,只要能给出对象的起始地址和内存长度信息、并且对象具有可操作性即可。
鉴于 memcpy 函数等长拷贝的特点以及数据类型代表的物理意义,memcpy 函数通常限于同种类型数据或对象之间的拷贝,其中当然也包括字符串拷贝以及基本数据类型的拷贝。
C语言试题汇总西电第二版
第一章1.选择题(1)C 语言程序的基本单位是( )A .程序行B .语句C .函数D .字符(2)在计算机系统中,可以直接执行的程序是( )A .源程序B .汇编语言程序C .机器语言程序D .ASCII 码(3)下列对C 语言程序的书写格式的描述,( )是正确的。
A .C 语言程序中,每行只能写一条语句B .C 语言程序书写时通常采用“缩排”方式C .C 语言程序的书写中要求每行都要以分号作结尾D .注释行必须放在程序的头或程序的尾(4)以下说法中正确的是( )。
A .C 语言程序总是从第一个定义的函数开始执行B .C 语言程序总是从main( )函数开始执行C .C 语言程序中的main( )函数必须放在程序的开始部分D .一个C 函数中只允许一对花括号(5)保存一个C 语言源程序的快捷键是( )A . F1B . F2C . F3D . F4(6)启动TC V2.0环境后,打开一个C 语言源程序的快捷键是( )A . F1B . F2C . F3D . F4(7)C 语言源程序文件file .C 经系统编译、连接后,生成的文件名为( )A . file .CB . fileC .D .2.填空题(1) 一个C 语言程序有且仅有一个___________函数(2) C 语言程序的执行,总是从_________函数开始,而不论其在程序中的位置。
(3) C 语言程序是由一个主函数main()和___________函数结合而成的,或仅由一个main()函数构成。
(4) C 语言程序总是从主函数main()开始执行,到___________函数执行完后结束(5) 所有函数(包括主函数main())都是由___________和___________两部分组成。
(6) 执行一个C 语言程序的一般过程是______________________(7) 在TC 集成环境下,存盘、编译与连接、运行、查看运行结果操作的快捷键分别是___________、___________、___________、___________。
C语言程序设计试题及答案
《C语言程序设计》(卷)考核班级学生数印数考核方式闭卷考核时间120 分钟(本试卷包括第一卷和第二卷,答卷时间总共120分钟)第一卷第一部分:基础知识(20项,共40分)1.一个C语言程序是由()组成的。
A.主程序B.子程序C.函数D.过程2.转换说明符%x的输出形式是()。
A.十进制B.八进制C.十六进制D.二进制3.若a、b均为int型变量,且a=100,则关于循环语句for(b=100;a!=b;++a,++b) printf ( “------------“) ;的正确说法是()。
A.循环体只执行一次B.死循环C.循环体一次也不执行D.输出-----------4.若x、y、z均为int 型变量,则执行下列语句后的z值为()。
x=1; y=2; z=3; z=(x>y)?z :y ; z = (z<y)?z:x;A.1 B.4 C.2 D.35.下面标识符中,合法的用户标识符为()。
A.P#Ad B.12a C.char D._int6.‘A’+ 3 的结果是()。
A.’A’B.’D’的ASCⅡ码C.65 D.37.语句char str[20];说明str是一个字符串,最多能表示()。
A.20个字符B.19个字符C.18个字符D.21个字符8.将int 型变量n转换成float型变量的方法是()。
A.float n B.(float)n C.float(n) D.21个字符9.以下不正确的描述是()。
A.使用while和do-while循环时,循环变量初始化的操作应在循环语句之前完成B.while循环是先判断表达式后执行循环体语句C.do-while和for循环均是先执行循环体语句,后判断表达式D.for、while、do-while循环中的循环体均可以由空语句构成10.在循环中使用break 语句的功能是()。
A.使程序的执行跳出break所在的那一重循环B.使程序执行结束C.跳出包含此break语句的所有循环D.终止本次循环,继续下次循环11.下面是一个初始化指针的语句:int *px = &a;其中指针变量的名字应该是()。
C语言程序设计试卷及答案
C语言程序设计试卷及答案(总14页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--2C 语言程序设计 笔试试题题号 一 二 三 四 五 六 笔试(70%) 综合 (30%) 总分分数试卷说明:1. 笔试卷面总分100分,取卷面成绩的70%计入总分;2. 综合成绩为平时成绩(10%)和实验成绩(20%)之和,占总分的30%;3. 答题时禁止拆开试卷钉,试卷背面即为草稿纸;4. 答题时间120分钟。
一、单项选择题。
将正确答案填入下面框中。
(本题16分,每小题1分) 题号 1 2 3 4 5 6 7 8 答案 题号 9 10 11 12 13 14 15 16 答案1. 有以下程序 main() {int a=1,b=0; if(!a) b++;else if(a==0) if(a) b+=2; else b+=3;printf(“%d\n ”,b); }则程序输出( A )。
A) 0B) 1C) 2D) 32. 有以下定义:int a; long b; double x,y;则下列正确的是( A )。
A) a%(int)(x-y)B) a=x!=y C) (a*y)%b D) y=x+y=x号学名姓注意行为规范 遵守考试纪律3. 若有定义 int (*p)[3];则下列说法正确的是( C )。
A) 定义了基类型为int的三个指针变量B) 定义了一个名为 *pt、具有三个元素的整型数值C) 定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组D) 定义了基类型为int的具有三个元素的整型数组4. 有以下程序段main(){ int x=10;while(x--);printf("x=%d\n",x);}则最后的输出结果是:( B )。
A) x=0 B) x= -1 C) x=1 D)while构成无限循环5. 有以下程序: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) ;}执行后的输出结果为( D )。
c++ 笔试 指针题
C 指针和引用基础概念测试题
C++笔试中的指针题是指涉及C++指针和引用的相关题目,通常出现在编程语言考试中,用于测试学生对指针和引用的理解及运用能力。
以下是几个C++笔试指针题的示例:
1.定义一个指向整数的指针,并使用该指针将一个整数变量初始化为42。
2.编写一个程序,通过指针来交换两个变量的值。
3.定义一个指向函数的指针,该函数返回一个整数,并接受两个整数参数。
请为该函数指针声明一个变量,并将其指向一个实现累加功能的函数。
4.编写一个程序,使用指针来遍历一个整数数组,并输出每个元素的值。
5.定义一个指向类的成员函数的指针,并使用该指针调用该成员函数。
这些题目都是关于C++指针和引用的基本概念和操作的测试题目,旨在检验学生对指针和引用的理解及运用能力。
通过练习这些题目,学生可以加深对指针和引用的理解,提高自己的编程技能。
华中科技大学c程序设计考试题
1.c++系统预定了4个用于标准数据流的对象,下;正确答案:【D】分值:【1】;2.设有说明:charw;intx;floaty;正确答案:【D】分值:【1】;3.下列对析构函数的描述中,正确的是(____);C.析构函数的定义只能在类体内D.析构函数可以有;正确答案:【A】分值:【1】;4.下列定义数组的语句中正确CPP程序设计模拟考试 1--第2套试卷1.c++系统预定了4个用于标准数据流的对象,下列选项中不属于此类对象的是(____) A.cout B.cin C.cerr D.cset正确答案:【D】2.设有说明:char w;int x;float y;double z;则表达式w*x+z-y 值的数据类型为(____) A.float B.char C.int D.double正确答案:【D】分值:【1】3.下列对析构函数的描述中,正确的是(____) A.一个类中只能定义一个析构函数 B.析构函数名与类名不同C.析构函数的定义只能在类体内D.析构函数可以有一个或多个参数正确答案:【A】分值:【1】4.下列定义数组的语句中正确的是(____)A.#define size 10 char str1[size],str2[size+2];B.char str[];C.i nt num['10'];D.int n=5; int a[n][n+2];正确答案:【A】分值:【1】5.关于this指针使用说法正确的是(____)A.保证每个对象拥有自己的数据成员,但共享处理这些数据的代码B.保证基类私有成员在子类中可以被访问。
C.保证基类保护成员在子类中可以被访问。
D.保证基类公有成员在子类中可以被访问。
正确答案:【A】分值:【1】6.所谓多态性是指(____)A.不同的对象调用不同名称的函数B.不同的对象调用相同名称的函数C.一个对象调用不同名称的函数D.一个对象调用不同名称的对象正确答案:【B】分值:【1】7.派生类构造函数的执行顺序是先执行________ 的构造函数,然后执行成员对象的构造函数,最后执行________ 的构造函数。
C语言试题及答案
大学C语言考试题库第1章 C语言概述习题1. 单项选择题(1) C 语言是在 B 语言的基础上产生的。
A. AB. BC. DD. E(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 语言只有 32 个关键字和 9 种控制语句。
(2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。
(3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。
(4) 在 C 语言程序中允许出现的字符集是 ASCII码字符集。
(5) C 语言的程序中有特殊含义的英语单词称为保留字。
(6) C 语言标识符的长度是前 8 位有效。
(7) C 语言中,标识符的定义规则是以字母或下划线为开头。
全国计算机等级考试C语言2级笔试题(第30次)-2009年09月
全国计算机等级考试C语言2级笔试题(第30次)-2009年09月全国计算机等级考试C语言2级笔试题-2009年09月第30次考试题目选择题软件技术基础单选题(1-10)下列各题A)、B),C)、D)四个选项中,只有一个选项是正确的。
1.下列数据结构中,属于非线性结构的是()A)循环队列B)带链队列C)二叉树D)带链栈C[解析]根据数据结构中各数据元素之间前后关系的复杂程度,一般将数据结构分为两大类型:线性结构与非线性结构。
线性结构表示数据元素之间为一对一的关系,非线性结构表示数据元素之间为一对多或者多对一的关系。
根据各种结构的定义知二叉树是一种非线性结构。
2.下列数据结构中,能够按照“先进后出”原则取数据的是()A)循环队列B)栈C)队列D)二叉树B[解析]栈是限定只在一端进行插入与删除的线性表,通常称插入、删除的这一端为栈顶,另一端为栈底。
栈顶元素总是后被插入的元素,也是最先被删除的元素;栈底元素总是最先被插人的元素,也是最后才能被删除的元素。
栈是按照“先进后出”或“后进先出”的原则组织数据的。
3.对于循环队列,下列叙述中正确的是()A)队头指针是固定不变的B)队头指针一定大干队尾指针C)队头指针一定小于队尾指针D)队头指针可以大干队尾指针,也可以小于队尾指针D[解析]循环队列是将顺序队列首尾相连形成的,随着插入元素或删除元素的进行,其队头指针及队尾指针是在不断变化的,有时可能会出现队头指针大于队尾指针的情况,也可能是队尾指针大于队头指针,故答案为D)。
4.算法的空间复杂度是指()A)算法在执行过程中所需要的计算机存储空间B)算法所处理的数据量C)算法程序中的语句或指令条数D)算法在执行过程中所需要的临时工作单元数A[解析]算法的空间复杂度是指:算法执行过程中所需的存储空间。
一个算法所占用的存储空间包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间。
5.软件设计中划分模块的一个准则是()A)低内聚低耦合B)高内聚低耦合C)低内聚高耦合D)高内聚高耦合B[解析]模块划分应考虑的因素包括模块之间的耦合和内聚。
江苏省计算机二级C语言试题与答案(笔试)
江苏省二级C 语言程序设计2008 年(秋)第一部分计算机基础知识(1)信息技术指的是用来扩展人们信息器官功能、协助人们更有效地进行信息处理的一类技术。
在下列有关信息技术的叙述中,错误的是__________。
A)现代信息技术的主要特征之一是以数字技术和电子技术为基础B)遥感遥测技术、自动控制技术等均属于现代信息技术C)微电子技术是信息技术领域的关键技术,它以集成电路为核心D)利用磁带、光盘、电话、传真等进行信息传递均属于现代通信(2)二进制数10111000 和11001010 进行逻辑“与”运算,结果再与10100110 进行逻辑“或”运算,最终结果的十六进制形式为__________。
A)A2 B)DE C)AE D)95(3)计算机的性能在很大程度上是由CPU 决定的。
在下列有关CPU 结构和原理的一些叙述中,错误的是__________。
A)目前PC 机所使用的CPU 均是Intel 公司的产品B)从逻辑组成上看,CPU 主要由寄存器组、运算器和控制器等部分组成C)目前CPU 中的运算部件ALU 有多个,每个ALU 均可独立完成运算D)不同CPU 能执行的指令有所不同,但同一系列CPU 产品通常是“向下兼容的”(4)在下列有关目前PC 机主板及其组件的叙述中,正确的是__________。
A)主板的物理尺寸没有标准,通常不同品牌的主板采用不同的尺寸B)主板上的BIOS 芯片是一种RAM 芯片,因而其存储的信息是可以随时刷新的C)主板上的存储器控制和I/O 控制功能大多集成在芯片组内D)主板上的CMOS 芯片是一种非易失性存储器,其存储的信息永远不会丢失(5)在下列有关PC 机硬盘存储器的叙述中,错误的是__________。
A)硬盘上的数据块要用柱面号、扇区号和磁头号这三个参数来定位B)目前硬盘一般都含有DRAM 芯片构成的高速缓存(Cache)C)目前硬盘与主机的接口大多为串行ATA 接口D)硬盘容量的增加主要是靠碟片数增加,目前硬盘一般均有数十个碟片组成(6)在下列有关PC 机I/O 总线和接口的叙述中,错误的是__________。
笔试模拟试题二基础部分和C语言程序设计(考试时间120分钟-满分...
笔试模拟试题二基础部分和C语言程序设计(考试时间120分钟,满分100分)一、选择题((1)~(40)题每题1分,(41)~(50)每题2分,四个选项中,只有一个选项是正确的,共60分)(1)IBM微机及其兼容机的性能指标中的内部存储器容量是指()A)高速缓存Cache的容量B)RAM的容量C)RAM和ROM的总容量D)ROM、RAM、Cache的总容量(2)磁盘的存储地址是由()决定的。
A)扇区号B)磁头号C)磁道号` D)盘面号、磁道号、扇区号(3)内存储器存储容量的大小取决于()A)字长B)地址总线的宽度C)数据总线的宽度D)字节数(4)十六进制数4DE。
7转换成二进制数是()A)10011011110。
111 B)10011011110。
1110C)100011011110。
1110 D)1001101110。
0111(5)若用八位二进制补码表示带符号的定点整数,则能表示的范围是()A)-127~+127 B)-128~+128 C)-127~+128 D)-128~+127(6)发现磁盘文件中有计算机病毒后,比较彻底的清除办法是()A)用反病毒软件清除病毒B)格式化含该磁盘文件的磁盘C)删除该磁盘文件D)进行写保护(7)解释程序的功能是()A)将高级语言源程序转换成为目标文件B)将汇编语言源程序转换成为目标文件C)逐条解释并执行高级语言源程序D)逐条解释并执行汇编语言源程序(8)可以实现打印当前盘当前目录下指定文件ZHU。
BA T中的内容的命令行是()。
A)TYPE ZHU>PRN B)COPY ZHU.BAT PRNC)COPY ZHU.BAT>PRN D)COPY ZHU.BAT CON(9)在DOS系统下可以执行的命令文件的扩展名不能是()。
A).BAK B).COM C).EXE D).BAT(10)A盘为DOS系统盘,B盘为格式化的空白盘,去掉A盘当前目录下所有扩展名为.SYS的文件扩展名,可以实现此操作的命令行是()。
C++常见笔试题及答案
C++面试题1 #include “filename.h”和#include <filename.h〉的区别?答:对于#include <filename.h>编译器从标准库开始搜索filename。
h对于#include “filename。
h"编译器从用户工作路径开始搜索filename.h2 头文件的作用是什么?答:一、通过头文件来调用库功能。
在很多场合,源代码不便(或不准)向用户公布,只要向用户提供头文件和二进制的库即可.用户只需要按照头文件中的接口声明来调用库功能,而不必关心接口怎么实现的。
编译器会从库中提取相应的代码.二、头文件能加强类型安全检查。
如果某个接口被实现或被使用时,其方式与头文件中的声明不一致,编译器就会指出错误,这一简单的规则,能大大减轻程序员调试、改错的负担。
3 C++函数中值的传递方式有哪几种?答:C++函数的三种传递方式为:值传递、指针传递和引用传递。
4 内存的分配方式有几种?答:一、从静态存储区域分配。
内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在.例如全局变量。
二、在栈上创建.在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。
栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。
三、从堆上分配,亦称动态内存分配.程序在运行的时候用malloc或new申请任意多少的内存,程序员自己负责在何时用free或delete释放内存。
动态内存的生存期由我们决定,使用非常灵活,但问题也最多.5 实现双向链表删除一个节点P,在节点P后插入一个节点,写出这两个函数;答:双向链表删除一个节点Ptemplate〈class type> void list〈type〉::delnode(int p){int k=1;listnode〈type〉*ptr,*t;ptr=first;while(ptr->next!=NULL&&k!=p){ptr=ptr—>next;k++;}t=ptr-〉next;cout〈〈”你已经将数据项”〈<t-〉data〈〈"删除"〈〈endl;ptr—〉next=ptr-〉next—>next;length-—;delete t;}在节点P后插入一个节点:template〈class type> bool list〈type〉::insert(type t,int p){listnode〈type〉*ptr;ptr=first;int k=1;while(ptr!=NULL&&k<p){ptr=ptr->next;k++;}if(ptr==NULL&&k!=p)return false;else{listnode<type〉*tp;tp=new listnode<type〉;tp->data=t;tp->next=ptr—〉next;ptr->next=tp;length++;return true;}}6 写一个函数,将其中的\t都转换成4个空格。
国家开放大学C语言试题及答案
1.C语言中的循环类语句有3条,它们是()。
选择一项:A. for,if,whileB. for,while,doC. while,do,switchD. for,break,do正确答案是:for,while,do2.C语言中的跳转类语句有四条,它们是goto,return和()。
A. break,constB. static,continueC. break,continueD. while,extern正确答案是:break,continue3.当不需要函数返回任何值时,则所使用的返回类型为()。
A. IntB. unionC. voidD. Void 正确答案是:void4.在一个函数定义中,函数头包括的3个部分依次为函数类型、函数名和()。
选择一项:A. 表达式B. 语句C. 函数体D. 参数表正确答案是:参数表5.在一个程序文件的开始,若需要使用一个包含命令包含一个头文件时,则命令标识符为A. #cludeB. #constC. #includeD. #defile正确答案是:#include6.在#include预处理命令中,不可以包含()。
A. 系统头文件B. 程序文件C. 用户头文件D. 目标文件正确答案是:目标文件7.在printf()函数调用的格式字符串中,若使用格式符为“%6.2f”,则规定对应输出的数据占用的字符位置个数为()。
选择一项:A. 5B. 6C. 4D. 2正确答案是:68.在printf()函数调用的格式字符串中,若使用格式符为“%6.2f”,则规定对应输出的数据中,其小数部分占用的字符位置个数为()。
选择一项:A. 5B. 6C. 4D. 2正确答案是:29.在printf()函数调用的格式字符串中,若使用格式符为“%6.2f”,则规定对应输出的数据中,其整数部分占用的字符位置个数为()。
A. 6B. 4C. 3D. 2正确答案是:310.在scanf()函数调用的格式字符串中,若使用格式符为“%f”,则对应输入的数据类型为()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、选择题((1)~(1O)每题2分,(11)~(50)每题1分,共60分)下列各题A)、B)、c)、D)四个选项中,只有一个选项是正确的,请将正确选项写在答题卡相应位置上,答在试卷上不得分。
1)下列选项中不属于结构化程序设计方法的是DA)自顶向下 B)逐步求精 C)模块化 D)可复用2)两个或两个以上模块之间关联的紧密程度称为AA)耦合度 B)内聚度 C)复杂度 D)数据传输特性3)下列叙述中正确的是DA)软件测试应该由程序开发者来完成 B)程序经调试后一般不需要再测试C)软件维护只包括对程序代码的维护 D)以上三种说法都不对4)按照“后进先出”原则组织数据的数据结构是BA)队列 B)栈 C)双向链表 D)二叉树6)下列叙述中正确的是A1A)线性链表是线性表的链式存储结构 B)栈与队列是非线性结构C)双向链表是非线性结构 D)只有根结点的二叉树是线性结构(6)对如下二叉树A/ \B C/ \ /D E F进行后序遍历的结果为DA)ABCDEF B)DBEAFC C)ABDECF D)DEBFCA(7)在深度为7的满二叉树中,叶子结点的个数为CA)32 B)31 C)64 D)63(8)“商品”与“顾客”两个实体集之间的联系一般是DA)一对一 B)一对多 C)多对一 D)多对多2(9)在E-R图中,用来表示实体的图形是AA)矩形 B)椭圆形 C)菱形 D)三角形(10)数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是CA)DB包含DBS和DBMS B)DBMS包含DB和DBSC)DBS包含DB和DBMS D)没有任何关系(11)以下不合法的用户标识符是CA)j2_KEY B)Double C) 4d D) _8_(12)以下不合法的数值常量是CA)011 B) 1e1 C)8.0E0.5 D) 0xabcd(13)以下不合法的字符常量是AA) '\018' B) '\"' C) '\\' D) '\xcc'14>表达式3.6-5/2+1.2+5%2的值是DA)4.3 B)4.8 C) 3.3 D)3.8(15)以下正确定义字符串的语句是D3A)char str[5]={'a',’b’,’c’}; B) char str="\x43";C)char str=''; D) char Str[]="\0";(16)以下数组定义中错误的是BA)int x[][3]={O}; B)int x[2][3]={{1,2},{3,4},{5,6}};C)int x[][3]={{1,2,3},{4,5,6}}; D)int x[2][3]={1,2,3,4,5,6};(17)若要求从键盘读入含有空格字符的字符串,应使用函数 BA)getc() B)gets() C)getchar() D)scanf()(18)以下四个程序中,完全正确的是BA)#include <stdio.h> B) #include <stdio.h>main(); main(){/*programming*/ {/*/programming/*/printf("programming!\n");} printf("programming!\n");}C)#include <stdio.h> D) include <stdio.h>main() main()4{/*/*progmmmfug*/*/ {/*programming*/printf("programming!\n");} printf("programming!\n");}19)若有定义:float x=1.5; int a=1,b=3,c=2;则正确的switch语句是CA)switch(x) B)switch((int)x);{case 1.0:printf("*\n"); {case l:printf("*\n");case 2.0:printf("**\n");} case 2:printf("**\n");}C)switch(a+b) D)switch(a+b){case 1:printf("*\n"); {case 1:printf("*\n");case 2+1:printf("**\n");} case c:printf("**\n");}20)若各选项中所用变量已正确定义,函数fun中通过return语句返回一个函数值,以下选项中错误的程序是AA)main() B)float fun(int a,int b){......}{......x=fun(2,10);......} main()float fun(int a,int b){......} {……x=fun(i,j);……}C)float fun(int,int); D)main()5main() {float fun(int i,int j);{...x=fun(2,10);...} ... x=fun(i,j);...}float fun(int a,int b){...} float fun(int a,int b){…}(21)在以下给出的表达式中,与while(E)中的(E)不等价的表达式是CA)(!E==0) B)(E>0||E<0) C)(E==O) D)(E!=O)(22)要求通过while循环不断读入字符,当读入字母N时结束循环。
若变量已正确定义,以下正确的程序段是AA)while((ch=getchar())!='N') printf("%c",ch);B)while(ch=getchar()!='N') printf("%c",ch);C)while(ch=getchar()=='N') printf("%c"),ch);D)while((ch=getchar())=='N') printf("%c",ch);(23)已定义以下函数int fun(int *p){6return *p; }fun函数返回值是 BA)不确定的值 B)一个整数 C)形参p中存放的值 D)形参p的地址值(24)若有说明语句:double *p,a;则能通过scanf语句正确给输入项读入数据的程序是DA)*p=&a;scanf("%lf",p); B)*p=&a;scanf("%f",p);C)p=&a; scanf("%lf",*p); D)p=&a; scanf("%lf",p);(25)现有以下结构体说明和变量定义.如图所示,指针p、q、r分别指向一个链表中连续的三个结点。
struct node{char data;struct node *next;}*p,*q,*r;data next data next data next↑p ↑q ↑r现要将q和r所指结点交换前后位置,同时要保持链表的连续,以下不能完成此操作7的语句是DA)q->next=r->next;p->next=r;r->next=q;B)p->next=r;q->next=r->next;r->next=q;C)q->next=r->next;r->next=q;p->next=r;D)r->next=q;p->next=r;q->next=r->next;(26)有以下程序段struct st{int x; int *y;} *pt;int a[]={1,2},b[]={3,4};struct st c[2]={10,a,20,b};pt=c;以下选项中表达式的值为11的是 CA)*pt->y B)pt->x C)++pt->x D)(pt++)->x(27)设fP为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fP)的返回值为 D8A)EOF B)非0值 C)O D)NULL(28)设有以下语句int a=1,b=2,c;c=a^(b<<2);执行后,c的值为 DA)6 B)7 C)8 D)9(29)有以下程序#include <stdio.h>main(){char c1,c2,c3,c4,c5,c6;scanf("%c%c%c%c",&c1,&c2,&c3,&c4);c5=getchar(); c6=getchar();putchar(c1); putchar(c2);printf("%c%c\n",c5,c6);9}程序运行后,若从键盘输入(从第1列开始)123<回车>45678<回车>则输出结果是DA)1267 B)1256 C)1278 D)1245(30)有以下程序main(){int y=lO;while(y--); printf("y=%d\n",y);}程序执行后的输出结果是BA)y=0 B)y=-1 C)y=1 D)while构成无限循环(31)有以下程序10main(){int a=0,b=O,c=0,d=0;if(a=1) b=l;c=2;else d=3;printf("%d,%d,%d,%d\n",a,b,c,d);}程序输出DA)0,1,2,0 B)0,0,0,3 C)1,1,2,0 D)编译有错(32)有以下程序main(){int i,j,x=O;for(i=0;i<2;i++){x++;for(j=0;j<=3;j++)11{if(j%2)continue;x++;}x++;}printf("x=%d\n",x);}程序执行后的输出结果是BA)x=4 B)x=8 C)x=6 D)x=12(33)有以下程序int funl(double a) {return a*=a;}int fun2(double x,double y){double a=0,b=0;a=funl(x); b=fun1(y); return (int)(a+b);12}main(){double w; w=fun2(1.1,2.O);......}程序执行后变量w中的值足AA)5.21 B)5 C)5.0 D)0.0(34)有以下程序main(){int i,t[][3]={9,8,7,6,5,4,3,2,1};for(i=0;i<3;i++) printf("%d ",t[2-i][i]);}程序执行后的输出结果是BA)7 5 3 B)3 5 7 C)3 6 9 D)7 5 113(35)有以下程序fun(char p[][10]){int n=0,i;for(i=O;i<7;i++)if(p[i][0]=='T') n++;return n;}main(){char str[][10]={"Mon","Tue","Wed","Thu","Fri","Sat","Sun"};printf("%d\n",fun(str));}程序执行后的输出结果是BA)1 B)2 C)3 D)0(36)有以下程序14main(){int i,s=0,t[]={1,2,3,4,5,6,7,8,9};for(i=0;i<9;i+=2) s+=*(t+i);printf("%d\n",s);}程序执行后的输出结果是CA)45 B)20 C)25 D)36(37)有以下程序void funl(char *p){char *q;q=p;while(*q!='\0'){(*q)++; q++; }}15main(){char a[]={"Program"},*p;p=&a[3]; funl(p); printf("%s\n",a);}程序执行后的输出结果是AA)Prohsbn B)Prphsbn C)Progsbn D)Program38)有以下程序void swap(char *x,char *y){char t;t=*x; *x=*y; *y=t;}main(){char *s1="abc",*s2="123";swap(s1,s2); printf("%s,%s\n",s1,s2);16}程序执行后的输山结果是CA)123,abc B)abc,123 C)1bc,a23 D)321,cba(39)有以下程序int fun(int n){if(n==1) return 1;elsereturn (n+fun(n-1));}main(){int x;scanf("%d",&x); x=fun(x); printf("%d\n",x);}执行程序时,给变量x输入10,程序的输出结果是A17A)55 B)54 C)65 D)45(40)有以下程序int fun(int x[],int n){static int sum=0,i;for(i=O;i<n;i++) sum+=x[i];return sum;}main(){int a[]={1,2,3,4,5},b[]={6,7,8,9},s=0;s=fun(a,5)+fun(b,4); printf("%d\n",s);}程序执行后的输出结果是CA)45 B)50 C)60 D)55(41)有以下程序18main(){ union{ char ch[2];int d;} s;s.d=Ox4321;printf("%x,%x\n",s.ch[0],s.ch[l]);}在16位编译系统上,程序执行后的输出结果是AA)21,43 B)43,21 C)43,00 D)21,00(42)有以下程序main(){char *p[]={"3697","2584"};int i,j; long num=0;19for(i=0;i<2;i++){j=0;while(p [j]!='\0'){if((p [j]-'0')%2) num=1O*num+p[j]-'0';j+=2;}}printf("%d\n",num);}程序执行后的输出结果是CA)35 B)37 C)39 O)3975(43) 执行以下程序后,test.txt文件的内容是(若文件能正常打开)#include <stdio.h>main()20{FILE *fp;char *s1="Fortran",*s2="Basic";if((fp=fopen("test.txt","wb"))==NULL){printf("Can't open test.txt file\n");exit(1);}fwrite(sl,7,1,fp); /*把从地址s1开始的7个字符写到fP所指文件中*/fseek(fp,0L,SEEK_SET);/*文件位置指引移到文件开头*/fwrite(s2,5,1,fp);fclose(fp);}A)Basican B)BasicFortran C)Basic D)FortranBasic(44)以下叙述中错误的是A)c语言源程序经编译后生成后缀为.obj的目标程序B)c程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件C)用c语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中21D)c语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令(45)以下叙述中错误的是A)算法正确的程序最终一定会结束B)算法正确的程序可以有零个输出C)算法正确的程序可以有零个输入 D)算法正确的程序对于相同的输入一定有相同的结果(46)以下叙述中错误的是A)c程序必须由一个或一个以上的函数组成 B)函数调用可以作为一个独立的语句存在C)若函数有返回值,必须通过return浯句返回D)函数形参的值也可以传回给对应的实参(47)设有以下定义和语句char str[20]="Program",*p;p=str;则以下叙述中正确的是A) *p与str[0]中的值相等 B) str与p的类型完全相同C) str数组长度和p所指向的字符串长度相等D) 数组str中存放的内容和指针变量p中存放的内容相同22(48)以下叙述中错误的是A)C程序中的#include和#define行均不是C语句B)除逗号运算符外,赋值运算符的优先级最低C)c程序中,j++;是赋值语句D)c程序中,+、-、*、/、%号是算术运算符,可用于整型和实型数的运算(49)以下叙述中正确的是A)预处理命令行必须位于c源程序的起始位置B)在c语言中,预处理命令行都以,"#"开头C)每个C程序必须在开头包含预处理命令行:#include <stdio.h>D)c语言的预处理不能实现宏定义和条件编译的功能<50)以下叙述中错误的是A)可以通过typedef增加新的类型B)可以用typedef将已存在的类型用一个新的名字来代表C)用typedef定义新的类型名后,原有类型名仍有效23D)用typedef可以为各种类型起别名,但不能为变量起别名二、填空题(每空2分,共40分)请将每一个空的正确答案写在答题卡[1]至[20]序号的横线上,答在试卷上不得分(1)对长度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为__45____·(2)在面向对象方法中,__类___描述的是具有相似属性与操作的一组对象。