二级C语言笔试-364

合集下载

二级C语言笔试必过399题

二级C语言笔试必过399题

二级C语言笔试400题1、C语言程序的基本单位是(C)A) 程序行 B) 语句 C) 函数D) 字符、2、C语言程序的三种基本结构是(A) A、顺序结构,选择结构,循环结构 B、递归结构,循环结构,转移结构 C、嵌套结构,递归结构,顺序结构 D、循环结构,转移结构,顺序结构、3、C语言规定,程序中各函数之间 (A)A) 既允许直接递归调用也允许间接递归调用 B) 不允许直接递归调用也不允许间接递归调用 C) 允许直接递归调用不允许间接递归调用 D) 不允许直接递归调用允许间接递归调用4、C语言中可处理的文件类型是(B) A) 文本文件和数据文件 B)文本文件和二进制文件 C) 数据文件和二进制文件 D)数据代码文件5、C语言可执行程序的开始执行点是(C ) A) 程序中第一条可执行语句 B) 程序中第一个函数 C) 程序中的main函数D) 包含文件中的第一个函数6、C语言提供的合法的数据类型关键B) A字是()double B) short C) integer D) char7、C语言中,运算对象必须是整型数的运算符是(A)A) % B) \C) %和\ D) * *8、C语言中函数返回值的类型是由( D)决定A) return语句中的表达式类型 B) 调用函数的主调函数类型 C)调用函数时临时D)定义函数时所指定的函数类型9、C语言中数组名作为参数传递给函数,作为实在参数的数组名被处理为(D)A、该数组的长度。

B、该数组的元素个数。

C、该数组中各元素的值。

D、该数组的首地址。

10、C语言中数组下标的下限是(B) A、1 B、0 C、视具体情况D、无固定下限11、C语言中提供的合法关键字是(D)A、swith B、cher C、caseD、default12、C语言中文件的存取方式是(C) A、顺序存取 B、随机存取C、顺序存取、随机存取均可D、顺序存取、随机存取均不可13、C语言中最简单的数据类型包括(B) A) 整型、实型、逻辑型 B) 整型、实型、字符型 C) 整型、字符型、逻辑型 D) 整型、实型、逻辑型、字符型14、sizeof(float)是(C ) A) 一种函数调用 B) 一个不合法的表示形式 C) 一个整型表达式 D) 一个浮点表达式15、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是(B) A) input x,y,z; B) scanf("%d%d%d",&x,&y,&z); C) scanf("%d%d%d",x,y,z); D) read("%d%d%d",&x,&y,&z);16、表达式:10!=9的值是(D) A) true B) 非零值 C) 0 D)17、表示关系x<=y<=z的c语言表达式为 (A)A) (X<=Y)&&(Y<=Z)B)(X<=Y)AND(Y<=Z) C) (X<=Y<=Z) D) (X<=Y)&(Y<=Z)18、程序片段:在TC20中, int i=65536; printf("%d\n",i);的输出结果是(B)A) 65536 B) 0 C) 有语法错误,无输出结果 D) -119、当调用函数时,实参是一个数组名,则向函数传送的是(B)A) 数组的长度 B) 数组的首地址 C) 数组每一个元素的地址D) 数组每个元素中的值20、对嵌套子程序调用说法正确的是(C) A、外层子程序可以调用所有的内层子程序 B、内层了程序只可以调用包含本身的外层子程序,不可以隔层调用 C、外分程序必须能完全套住内分程序 D、以上说法均不正确21、对于基类型相同的两个指针变量之间,不能进行的运算是(C)A)< B)= C)+ D)-22、合法的C语言中,合法的长整型常数是 (A)A) '\t' B) "A"C) 65 D) A23、假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是(D) A) 3 B) 6 C) 10 D) 2024、假定有以下变量定义: int k=7 ,x=12; 则能使值为3的表达式是(D)A x%=(k%=5)B x%=(k-k%5)C x%=k-k%5D (x%=k)-(k%=5)25、请读程序片段(字符串内没有空格): printf("%d\n",strlen("ATS\n012\1\\"));的输出结果是(C)A) 11 B) 10 C) 9 D) 826、请选出合法的C语言赋值语句(B)A) a=b=58 B) i++; C) a=58,b=58 D) k=int(a+b);27、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a 后,a的值是(C) A) -3 B) 9 C) -12 D) 628、若int类型占两个字节,则以下语句输出为(D) int k=-1; printf("%d,u%\n",k,k);A、-1,-1B、-1,65536C、-1,32768D、-1,6553529、若变量a是int类型,并执行了语句:a=‘A'+1、6;,则正确的叙述是(D)A) a的值是字符C B) a的值是浮点型 C) 不允许字符型和浮点型相加 D) a的值是字符‘A’的ASCII值加上130、若变量已正确说明为float类型,要通过语句scanf("%f %f %f ",&a,&b,&c);给a赋于10、0,b赋予22、0,c赋予33、0,不正确的输入形式是 (B) A) 10 B) 10、0,22、0,33、0 22 33 C) 10、0 D) 10 22 22、0 33、0 3331、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为(B) A)a<>0 B)!a C)a=0 D)a 32、若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是(C) A)1 B)2 C)2、0 D)2、533、若有定义:int a=8,b=5,c;,执行语句c=a/b+0、4;后,c的值为(B) A) 1、4 B) 1 C) 2、0 D) 234、若有定义:int x,y;char a,b,c;并有以下输入数据(此处< CR> 代表换行符,/u代表空格): 1u2 AuBuC 则能给x赋整数1,给y赋整数2,给a赋字符A,给b赋字符B,给c赋字符C 的正确程序段是 (D)A)scanf("x=%dy+%d",&x,&y);a=getchar();b=getchar();c=getchar();B)scanf("%d%d",&x,&y);a=getchar();b=getchar( );c=getchar();C)scanf("%d%d%c%c%c,&x,&y,&a,&b,&c);D)s canf("%d%d%c%c%c%c%c%c:&x,&y,&a,&a,&b,&b,&c,&c); 35、若有定义和语句: char s[10]:s="abcd";printf("%s\n",s); 则结果是(D)(以下u代表空格)A) 输出abcd B) 输出a C) 输出abcduuuuu D) 编译不通过36、若有以下程序段, int c1=1,c2=2,c3; c3=1、0/c2*c1; 则执行后,c3中的值是(A) A) 0 B) 0、5 C) 1 D) 237、若有以下定义:char a;int b;float c;double d;则表达式a*b+d-c值的类型为(D)A) float B) int C) char D) double 38、若有以下定义和语句char c1='b',c2='e'; printf("%d,%c\n",c2-c1,c2-'a'+"A"); 则输出结果是(B)A)2,M B)3,E C)2,E D)输出项与对应的格式控制不一致,输出结果不确定39、若有以下函数调用语句:fun(a+b,(x,y),fun(n+k,d,(a,b)));在此函数调用语句中实参的个数是(A)A)3 B)4 C)5 D)640、若执行下面的程序时从键盘上输入3和4,则输出是(B)A) 14 B) 16 C) 18 D) 20 main( ) { int a,b,s; scanf("%d %d",&a,&b); s=a; if(a41、若执行下面的程序时从键盘上输入5,则输出是(B) A) 7 B) 6 C) 5 D) 4 main() { int x; scanf("%d",&x); if(x++>5) printf("%d\n",x); else printf("%d\n",x--);}42、若执行以下程序时从键盘上输入9,则输出结果是(B)A)11B)10 C) 9 D) 8 main( ) { int n; scanf("%d",&n); if(n++43、设 a、b、c、d、m、n均为 int型变量,且 a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式 (m=a>b)&&(n=c>d)运算后,n的值为(C)A) 0 B) 1 C) 2 D) 344、设 int a=12,则执行完语句 a+=a-=a*a后,a的值是 (D)A) 552 B) 264 C) 144 D) -26445、设 int b=2;表达式(b>>2)/(b>>1)的值是(A) A) 0 B) 2 C) 4 D) 846、设a,b和c都是int型变量,且a=3,b=4,c=5,则下列表达式中,值为0的表达式是________ A)'a'&&'b' B)a<=bC)a||b+c&&b-c D)!((a47、设x、y、z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值为 (C)A 4 B 16 C 32 D 5248、设x=3,y=-4,z=6,写出表达式的结果(B)!(x>y)+(y!=z)||(x+y)&&(y-z) A、0 B、1 C、-1 D、649、设x和y均为int 型变量,则以下语句:x+=y;y=x-y;y=x-y;x-=y;的功能是 (D)A、把x 和y按从大到小排列B、把x和y按从小到大排列C、无确定结果D、交换x和y中的值50、设有 int x=11; 则表达式 (x++ * 1/3) 的值是(A) A) 3B) 4 C) 11 D) 1251、设有如下的变量定义: int i =8,k ,a,b ; unsigned long w=5; double x=1,42,y=5、2; 则以下符合C语言语法的表达式是(A) A、 a+=a-=(b=4)*(a=3) B、 x%(-3); C、 a=a*3=2 D、y=float(i)52、设有如下定义: char *aa[2]={"abcd","ABCD"}; 则以下就法中正确的是(D)A) aa数组成元素的值分别是"abcd"和ABCD" B) aa是指针变量,它指向含有两个数组元素的字符型一维数组 C) aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址D) aa数组的两个元素中各自存放了字符'a'和'A'的地址53、设有如下定义: int x=10,y=3,z; 则语句printf("%d\n",z=(x%y,x/y)); 的输出结果是(D) A) 1 B) 0 C) 4 D) 354、设有数组定义: char array [ ]="China"; 则数组 array 所占的空间为 (C)A) 4个字节 B) 5个字节 C) 6个字节 D) 7个字节55、设有说明语句:char a='\72';则变量a (A)A) 包含1个字符 B) 包含2个字符 C) 包含3个字符 D) 说明不合法56、设有以下语句:int x=03,y=02,z=01;那么语句printf("%d",x|y&~Z)的执行结果(C) (A) 1 (B) 2 (C) 3 (D) 057、下列if语句中,不正确的是(C)A、if(x>y);B、if(x==y) x+=y; C、if(x!=y) scanf("%d",&x) else x=1; D、if(x 58、下列变量定义中合法的是(A)A)short _a=1-、le-1;B)double b=1+5e2、5;C) long do=0xfdaL; D) float 2_and=1-e-3;59、下列标识符中不合法的是(D)A、s_name B、_e C、fox D、3DS60、下列不正确的转义字符是(C) A) '\\' B) '\" C) '074' D) '\0'61、请读程序: main(){ int a=1,b=2; printf("%d\n",a=a+1,a+6,b+2);}则上面程序的输出结果是(A)A、2B、3C、4D、162、请读程序: int i=0,j=0,a=6; if((++i>0)||(++j>0))a++; printf("i=%d,j=%d,a=d%\n",i,j,a); 则上面程序的输出结果是(B)A、i=0,j=0,a=6 B、i=1,j=0,a=7 C、i=1,j=1,a=6 D、i=1,j=1,a=763、下列程序段的输出结果为(A) int y=1; while(y--); printf("y=%d\n",y); A、y=-1B、y=0C、死循环D、y=9 64、下列程序执行后的输出结果是(B) A) 3 B) 6 C) 9 D)随机数 main(){ int a[3][3],*p,i;p=&a[0][0];for(i=p; i 65、下列程序执行后的输出结果是 (A)A) G B) H C) i D) J main() { int x='f'; printf("%c \n",'A'+(x-'a'+1)); }66、下列程序执行后的输出结果是(小数点后只写一位)(A)A) 6 6 6、0 6、0 B) 6 6 6、7 6、7 C) 6 6 6、0 6、7 D)6 6 6、7 6、0 main() { double d; float f; ling l; int i; i=f=1=d=20/3; printf("%d %ld %f %f \n", i,l,f,d); }67、下列可作为C语言赋值语句的是 (C)A)x=3,y=5 B)a=b=6C)i--; D)y=int(x);68、下列描述中不正确的是(C) A) 字符型数组中可以存放字符串 B) 可以对字符型数组进行整体输入、输出 C) 可以对整型数组进行整体输入、输出 D) 不能在赋值语句中通过赋值运算符"="对字符型数组进行整体赋值69、下列说法中正确的是(B) A、在switch语句中一定要使用break语句 B、在switch语句中不一定要使用break语句 C、break语句是switch语句的一部分 D、break只能用于switch 语句中70、下列运算符其优先级最高的是(C) A、|| B、&& C、+ D、=71、下面的DO循环中,一共循环(D)次。

全国计算机等级考试二级C语言笔试试题及答案

全国计算机等级考试二级C语言笔试试题及答案
常将有日思无日,莫待无时思有时。——《增广贤文》
老当益壮,宁移白首之心;穷且益坚,不坠青云之志。——唐·王勃
D) 4 (31) 有如下类定义:
class XX( int xx; public: XX(): xx(0) {cout<<' A';} XX( int n):xx ( n) {tout<<' B';} }; Class YY:public XX( Int yy; public: YY(): yy ( 0) (cout+yy;} YY ( int n ): XX (n+1 ), yy(n) (cout<<yy;} YY ( int m, int n):XX (m), yy (n) (cout<<yy;} }; 下列选项中,输出结果为 A0 的语句是 A) YY y1 (0,0); B) YY y2(1); C) YYy3(0); D) YYy4; (32) 有如下程序: #include<iostream> Using namespace std; class A( public: virtual void f () (cout+1;} void g () (cout<<2;} }; class B:public A( public: virtual void f () (cout<<3;} void g()(ecut<<4;} }; void show (A &a)(a.f();a.g( ) ; } int main()( B b; show(b); return 0; } 运行时的输出结果是 A) 12 B) 34 C) 14 D) 32 (33) 有如下程序: #include<iostream> using namespace std; class Pair( int m; int n; public: Pair ( int i, int j ): m(i), n(j) (} boot operator > ( pair p ) const;//须在类体外给出定义 ); int main () { Pair Al(3,4),p2(4,3); p3(4,5); Cout<< (pl>p2) << (P2>P1) << (p2>p3) << (p3>p2); return 0; } 运算符函数。operator〉的功能是比较两个 Pair 对象的大小,当左边对象大时,返回 true,否则 返 回 false。比较规则是首先比较两对象的 m 成员,m 大者为大;当 m 相等时比较 n, n 大者为大。程序输 出 0101, 下列对运算符重载函数的正确定义是 A ) bool Pair::operator> ( Pair p ) const {if (m!=p.m) return m>p.m; return n>p.n;}

全国计算机等级考试二级c语言笔试试题

全国计算机等级考试二级c语言笔试试题

全国计算机等级考试二级c语言笔试试题全国计算机等级考试二级C语言笔试试题一、单项选择题(每题2分,共40分)1. C语言中,一个整型变量所占的基本存储单位是()。

A. 1个字节B. 2个字节C. 3个字节D. 4个字节2. 下列关于C语言函数的描述,错误的是()。

A. 函数可以返回一个结构体类型的值B. 函数可以没有返回值,也可以返回一个值C. C语言中,main函数可以没有返回值D. 函数的返回值类型必须与定义时的类型一致3. 在C语言中,用于定义字符串的标识符是()。

A. char *B. char[]C. stringD. text4. 下列关于C语言数组的描述,正确的是()。

A. 数组在定义时必须初始化B. 数组的元素可以是不同数据类型的C. 数组在定义后,其元素的个数不能改变D. 数组的元素个数可以是变量5. C语言中,表示逻辑“与”操作的运算符是()。

A. &&B. ||C. !D. &6. 下列关于C语言指针的描述,错误的是()。

A. 指针是一个变量,用于存储另一个变量的地址B. 指针的值是它所指向的变量的地址C. 指针变量可以重新赋值为任意地址D. 指针可以进行算术运算7. C语言中,用于文件操作的库函数是()。

A. math.hB. stdio.hC. string.hD. conio.h8. 下列关于C语言结构体的描述,错误的是()。

A. 结构体是一种构造数据类型B. 结构体可以包含不同类型的成员C. 结构体的所有成员必须同时初始化D. 结构体可以定义为函数的参数9. C语言中,表示关系“小于等于”的运算符是()。

A. <B. >C. <=D. >=10. 在C语言中,用于实现循环结构的语句有()。

A. forB. whileC. do-whileD. 所有选项二、填空题(每空3分,共30分)11. C语言中,一个浮点型变量所占的存储空间通常是________字节。

二级C++笔试-364_真题-无答案

二级C++笔试-364_真题-无答案

二级C++笔试-364(总分100,考试时间90分钟)一、选择题1. C++本身没有定义I/O操作,但I/O操作包含在C++实现中。

C++标准库iostream提供了基本的I/O类。

I/O操作分别由类istream和( )提供。

A. fstreamB. iostreamC. ostreamD. cin2. 继承具有( ),即当基类本身也是某一个类的派生类时,底层的派生类也会自动继承间接基类的成员。

A. 规律性B. 传递性C. 重复性D. 多样性3. 下面叙述错误的是( )。

A. 派生类可以使用private派生B. 对基类成员的访问必须是无二义性的C. 基类成员的访问能力在派生类中维持不变D. 赋值兼容规则也适用于多继承的组合4. 以下程序段的执行结果为( )。

#include<iostream.h>#definePLUS(x,y) x+yvoid main ()int x=1,y=2,Z=3,sum:sum=PLUS (x+y,Z) * PLUS (y,Z):cout<<"SUM="<<sum;cout<<endl:A. SUM=9B. SUM=12C. SUM=18D. SUM=305. 下列for循环的次数为( )。

for( int i=0,x=0;!x&&i<=5;i++)A. 5B. 6C. 1D. 无限6. 多态性指的是( )。

A. 以任何方式调用一个虚函数B. 以任何方式调用一个纯虚函数C. 借助于指向对象的基类指针或引用调用一个虚函数D. 借助于指向对象的基类指针或引用调用一个纯虚函数7. 若有以下函数调用语句:f( m+n,x+y,f(m+n,z,(x,y)));在此函数调用语句中实参的个数是( )。

A. 6B. 5C. 4D. 38. 一个函数带有参数说明时,则参数的默认值应该在( )中给出。

A.函数定义 B.函数声明C. 函数定义或声明 D.函数调用。

全国计算机二级《C语言》考试题库与答案

全国计算机二级《C语言》考试题库与答案

全国计算机二级《C语言》考试题库与答案全国计算机二级《C语言》考试题库与答案在学习、工作中,我们都离不开试题,借助试题可以检验考试者是否已经具备获得某种资格的基本能力。

什么样的试题才能有效帮助到我们呢?以下是店铺为大家收集的全国计算机二级《C语言》考试题库与答案,欢迎大家分享。

全国计算机二级《C语言》考试题库与答案篇1(1)下列关于栈叙述正确的是( )。

A.栈顶元素最先能被删除B.栈顶元素最后才能被删除C.栈底元素永远不能被删除D.栈底元素最先被删除(2)下列叙述中正确的是( )。

A.在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化B.在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化C.在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化D.以上说法都不正确某二叉树共有7个结点,其中叶子结点只有l个,则该二叉树的深度为(假设根结点在第1层)( )。

A.3B.4C.6D.7软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。

下面属于应用软件的是( ):A.学生成绩管理系统B.c语言编译程序C.UNIX操作系统D.数据库管理系统(5)结构化程序所要求的基本结构不包括( )。

A.顺序结构B.GOT0跳转C.选择(分支)结构D.重复(循环)结构(6)下面描述中错误的是( )。

A.系统总体结构图支持软件系统的详细设计B.软件设计是将软件需求转换为软件表示的过程C.数据结构与数据库设计是软件设计的任务之一D.PAD图是软件详细设计的表示工具(7)负责数据库中查询操作的数据库语言是( )。

A.数据定义语言B.数据管理语言C.数据操纵语言D.数据控制语言一个教师可讲授多门课程,一门课程可由多个教师讲授。

则实体教师和课程间的联系是( )。

A.1:1联系B.1:m联系C.m:1联系D.m:n联系(9)已知大写字母A的ASCIl码值是65,小写字母a的ASCIl码值是97。

以下不能将变量C中的大写字母转换为对应小写字母的语句是( )。

二级C语言-364

二级C语言-364

二级C语言-364(总分:100.00,做题时间:90分钟)一、程序填空题(总题数:1,分数:30.00)1.给定程序中,函数fun的功能是建立一个N×N的矩阵。

矩阵元素的构成规律是:最外层元素的值全部为1;从外向内第2层元素的值全部为2;第3层元素的值全部为3,……依次类推。

例如,若N=5,生成的矩阵为:1 1 1 1 11 2 2 2 11 2 3 2 11 2 2 2 11 1 1 1 1请在程序的下划线处填入正确的内容,使程序得出正确的结果。

注意:部分源程序给出如下。

不得增行或删行,也不得更改程序的结构!试题程序:#include<stdio.h>#define N 7/**********found**********/void fun(int(*a) 1){int i,j,k,m;if(N%2==0)m=N/2;else m=N/2+1;for(i=0;i<m;i++){/**********found**********/for(j= 2;j<N-i;j++)a[i][j]=a[N-i-1][j]=i+1;for(k=i+1;k<N-i;k++)/**********found**********/a[k][i]=a[k][N-i-1]= 3;}}main(){int x[N][N]={0},i,j;fun(x);printf("/nThe result is:/n");for(i=0;i<N;i++){for(j=0;j<N;j++)printf("%3d",x[i][j]);printf("/n");}}(分数:30.00)解析:(1)[N] (2)i (3)i+1 [解析] 填空1:本题考查了形参的确定。

参数传递时将实参的值赋给形参,实参和形参是一一对应的,因此该空应该填写[N]。

填空2:第二重for循环中a[i][j]和a[N-i-1][j]表示第一行和最后一行数组a[N][N]的值,因而此空应该填写i。

二级C语言笔试题库及答案

二级C语言笔试题库及答案

1.m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人作为函数值返回,将低于平均分的分数放在below所指定的函数中。

1.int fun(int score[],int m,int below[]){int i,k=0,aver=0;for(i-0;i<m;i++)aver+=score[i];aver/=m;for(i=0,i<m;i++)if(score[i]<aver){below[k]=score[i];k++;}return k;}2.请编写函数fun,它的功能是:求出1到100之内能北7或者11整除,但不能同时北7和11整除的所有证书,并将他们放在a所指的数组中,通过n返回这些数的个数。

2.void fun(int *a,int *n){int i,j=0;for(i=2;i<1000;i++)if((i%7==0//i%11==0))&i%77!=0)a[j++]=i;*n=j;}3.请编写函数void fun(int x,int pp[],int *n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。

3. void fun(int x, int pp[],int *n){int i=1,j=0,k=0,*t=pp;for(i=0;i<=x;i++)if(i%2!=0){t[j]=i;j++;}for(i=0;i<j;i++)if(x%t[i]==0){pp[k]=t[i];k++;}*n=k;}4.请编写一个函数void fun(char *tt,int pp[]),统计在tt字符中"a"到"z"26各字母各自出现的次数,并依次放在pp所指的数组中。

4. void fun(char *tt,int pp[]){int i;for(i=0;i<26;i++)pp[i]=0;while (*tt){switch(*tt){case'a':pp[0]++;break;case'b':pp[1]++;break;case'c':pp[2]++;break;case'd':pp[3]++;break;case'e':pp[4]++;break;case'f':pp[5]++;break;case'g':pp[6]++;break;case'h':pp[7]++;break;case'i':pp[8]++;break;case'j':pp[9]++;break;case'k':pp[10]++;break;case'l':pp[11]++;break;case'm':pp[12]++;break;case'n':pp[13]++;break;case'o':pp[14]++;break;case'p':pp[15]++;break;case'q':pp[16]++;break;case'r':pp[17]++;break;case's':pp[18]++;break;case't':pp[19]++;break;case'u':pp[20]++;break;case'v':pp[21]++;break;case'w':pp[22]++;break;case'x':pp[23]++;break;case'y':pp[24]++;break;case'z':pp[25]++;break;}tt++;}}5.请编写一个函数void fun(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k 各素数存入xx所指的数组中。

c语言二级考试题及答案

c语言二级考试题及答案

c语言二级考试题及答案一、单项选择题(本大题共40小题,每小题2分,共80分)1. 在C语言中,下列哪个选项是正确的整型常量?A. 0.5B. 0x12C. 0x12.0D. 0x12L答案:B2. C语言中,下列哪个选项是正确的字符串字面量?A. "hello"B. 'hello'C. "hello'"D. 'hello"答案:A3. 在C语言中,下列哪个选项是合法的标识符?A. 2variableB. variable2C. _variableD. variable-2答案:C4. 下列哪个选项是C语言中的关键字?A. intB. integerC. realD. double答案:A5. 在C语言中,下列哪个选项是正确的二进制常量表示?A. 0x1BB. 0b1101C. 0B1101D. 0x1101答案:B6. C语言中,下列哪个选项是正确的浮点型常量表示?A. 3.14B. 3.14e2C. 3.14E-2D. 3.14f答案:C7. 在C语言中,下列哪个选项是正确的字符常量表示?A. 'a'B. "a"C. 'ab'D. '0x61'答案:A8. 下列哪个选项是C语言中合法的数组声明?A. int a[5] = {1, 2, 3, 4, 5};B. int a[] = {1, 2, 3, 4, 5};C. int a[5] = {1, 2, 3};D. int a = {1, 2, 3, 4, 5};答案:A9. 在C语言中,下列哪个选项是正确的函数声明?A. int add(int a, int b);B. int add();C. int add(int, int);D. int add(int a, b);答案:A10. 下列哪个选项是C语言中合法的指针声明?A. int *p;B. int *p[];C. int *p[5];D. int (*p)();答案:A11. 在C语言中,下列哪个选项是正确的结构体声明?A. struct Point { int x, y; };B. struct { int x, y; } Point;C. struct Point { int x; int y; };D. struct { int x; int y; };答案:C12. 下列哪个选项是C语言中合法的枚举声明?A. enum {RED, GREEN, BLUE} color;B. enum color {RED, GREEN, BLUE};C. enum {RED, GREEN, BLUE};D. enum color {0, 1, 2};答案:B13. 在C语言中,下列哪个选项是正确的宏定义?A. #define PI 3.14159B. #define PI = 3.14159C. #define PI(3.14159)D. #define PI 3.14159;答案:A14. 下列哪个选项是C语言中合法的文件包含指令?A. #include <stdio.h>B. #include "stdio.h"C. #include <stdio.h>D. #include "stdio.h"答案:A15. 在C语言中,下列哪个选项是正确的条件语句?A. if (a > b) { ... }B. if a > b { ... }C. if (a > b) then { ... }D. if a > b then { ... }答案:A16. 下列哪个选项是C语言中合法的循环语句?A. for (i = 0; i < n; i++) { ... }B. for i = 0; i < n; i++ { ... }C. for (i = 0; i < n; i++) { ... }D. for i = 0 to n { ... }答案:A17. 在C语言中,下列哪个选项是正确的switch语句?A. switch (a) { case 1: ...; case 2: ...; }B. switch (a) { case 1: ...; case 2: ...; default: ...; }C. switch (a) { case 1: ...; case 2: ...; break; }D. switch (a) { case 1: ...; case 2: ...; default: ...; }答案:D18. 下列哪个选项是C语言中合法的goto语句?A. goto label;B. goto 10;C. label: ...D. goto;答案:C19. 在C语言中,下列哪个选项是正确的函数调用?A. printf("%d", 10);B. scanf("%d", &a);C. printf("%d", a);D. scanf("%d", a);答案:B20. 下列哪个选项是C语言中合法的函数定义?A. int add(int a, int b) { return a + b; }B. int add(int a, b) { return a + b; }C. int add(int a, int b) { return a + b; }D. int add(a, b) { return a + b; }答案:A21. 在C语言中,下列哪个选项是正确的递归函数调用?A. int factorial(int n) { return n * factorial(n - 1); }B. int factorial(int n) { if (n == 0) return 1; else return n * factorial(n - 1); }C. int factorial(int n) { return n * factorial(n + 1); }D. int factorial(int n) { if (n == 1) return 1; else return n * factorial(n - 1); }答案:B22. 下列哪个选项是C语言中合法的数组初始化?A. int a[5] = {1, 2, 3, 4, 5};B. int a[5] = {1, 2, 3, 4};C. int a[5] = {1, 2, 3};D. int a[5] = {1, 2, 3, 4, 5, 6};答案:A23. 在C语言中,下列哪个选项是正确的字符串复制?A. strcpy(a, b);B. strcopy(a, b);C. copy(a, b);D. strcp(a, b);24. 下列哪个选项是C语言中合法的内存分配?A. int *p = (int *)malloc(sizeof(int) * 10);B. int *p = malloc(10 * sizeof(int));C. int *p = (int *)malloc(10);D. int *p = malloc(sizeof(int) * 10);答案:A25. 在C语言中,下列哪个选项是正确的内存释放?A. free(p);B. delete p;C. deallocate p;D. dispose p;答案:A26. 下列哪个选项是C语言中合法的指针运算?B. p--;C. p += 2;D. p = 2;答案:A27. 在C语言中,下列哪个选项是正确的结构体赋值?A. Point p1 = {1, 2};B. Point p1 = p2;C. Point p1 = {1, 2};D. Point p1 = {1, 2, 3};答案:B28. 下列哪个选项是C语言中合法的枚举值使用?A. color = RED;B. color = 0;C. color = "RED";D. color = 1;答案:A29. 在C语言中,下列哪个选项是正确的宏替换?A. #define SQUARE(x) x * xB. #define SQUARE(x) (x) * (x)C. #define SQUARE(x) x * xD. #define SQUARE(x) (x) * (x)答案:D30. 下列哪个选项是C语言中合法的文件操作?A. FILE *fp = fopen("file.txt", "r");B. FILE *fp = open("file.txt", "r");C. FILE *fp = fopen("file.txt", "w");D. FILE *fp = open("file.txt", "w");答案:A31. 在C语言中,下列哪个选项是正确的文件读取?A. fscanf(fp, "%d", &a);B. scanf(fp, "%d", &a);C. fscanf(fp, "%d", a);D. scanf(fp, "%d", a);答案:A32. 下列哪个选项是C语言中合法的文件写入?A. fprintf(fp, "%d", a);B. printf(fp, "%d", a);C. fprintf(fp, "%d", &a);D. printf(fp, "%d", &a);答案:A33. 在C语言中,下列哪个选项是正确的文件关闭?A. close(fp);B. fclose(fp);C. fclose(fp);D. close(fp);答案:B34. 下列哪个选项是C语言中合法的错误处理?A. if (fp == NULL) { perror("Error opening file"); exit(1); }B. if (fp == NULL) { printf("Error opening file"); exit(1); }C. if (fp == NULL) { perror("Error opening file"); return 1; }D. if (fp == NULL) { printf("Error opening file"); return 1; }答案:A35. 在C语言中,下列哪个选项是正确的位运算?A. a & b;B. a && b;D. a || b;答案:A36. 下列哪个选项是C语言中合法的逻辑运算?A. a && b;B. a || b;C. a & b;D. a | b;答案:A37. 在C语言中,下列哪个选项是正确的自增运算?A. a++;B. ++a;C. a += 1;D. a = a + 1;38. 下列哪个选项是C语言中合法的自减运算?A. a--;B. --a;C. a -= 1;D. a = a - 1;答案:A39. 在C语言中,下列哪个选项是正确的类型转换?A. (int)a;B. int(a);C. (int)(a);D. int a;答案:C40. 下列哪个选项是C语言中合法的sizeof运算?A. sizeof(a);B. sizeof int;C. sizeof(int);D. sizeof "string";答案:C二、程序填空题(本大题共2小题,每小题10分,共20分)1. 给定以下代码片段,请填写缺失的部分以实现计算并打印两个整数的和。

浙江省二级c理论考试试题及答案

浙江省二级c理论考试试题及答案

浙江省二级c理论考试试题及答案一、单项选择题(每题2分,共20分)1. C语言中,用于定义一个结构体的关键字是()。

A. structB. unionC. enumD. typedef答案:A2. 下列哪个选项不是C语言中的运算符?()A. %B. &&C. ->D. ::答案:D3. 在C语言中,用于定义数组的关键字是()。

A. arrayB. listC. vectorD. int答案:D4. 下列哪个选项不是C语言中的循环控制语句?()A. forB. whileC. do-whileD. switch5. 在C语言中,用于定义一个函数的关键字是()。

A. functionB. defC. voidD. int答案:C6. C语言中,用于声明一个指针变量的关键字是()。

A. ptrB. pointerC. *D. &答案:C7. 在C语言中,用于定义一个枚举类型的关键字是()。

A. enumB. typeC. typedefD. struct答案:A8. 下列哪个选项是C语言中的文件操作函数?()A. printfB. scanfC. fopenD. fclose答案:C9. 在C语言中,用于定义一个联合体的关键字是()。

B. structC. enumD. typedef答案:A10. C语言中,用于定义一个宏的预处理指令是()。

A. #defineB. #includeC. #importD. #pragma答案:A二、填空题(每题3分,共15分)1. C语言中,用于定义一个变量的关键字是________。

答案:int2. 在C语言中,用于声明一个函数的关键字是________。

答案:void3. C语言中,用于定义一个枚举类型的关键字是________。

答案:enum4. 在C语言中,用于定义一个联合体的关键字是________。

答案:union5. C语言中,用于定义一个宏的预处理指令是________。

c语言二级考试题库

c语言二级考试题库

c语言二级考试题库第一篇c语言二级考试题库:2021计算机二级《C语言》考试题及答案一、选择题(每小题1分。

共40分)(1)程序流程图中带有箭头的线段表示的是( )。

A.图元关系B.数据流C.掌握流D.调用关系(2)结构化程序设计的基本原则不包括( )。

A.多态性B.自顶向下C.模块化D.逐步求精(3)软件设计中模块划分应遵循的准则是( )。

A.低内聚低耦合B.高内聚低耦合C.低内聚高耦合D.高内聚高耦合(4)在软件开发中,需求分析阶段产生的主要文档是( )。

A.可行性分析报告B.软件需求规格说明书C.概要设计说明书D.集成测试方案(5)算法的有穷性是指( )。

A.算法程序的运行时问是有限的。

B.算法程序所处理的数据量是有限的C.算法程序的长度是有限的D.算法只能被有限的用户使用(6)对长度为n的线性表排序,在最坏状况下,比较次数不是n(n一1)/2的排序方法是( )。

A.快速排序B.冒泡排序C.直接插入排序D.堆排序(7)下列关于栈的叙述正确的是( )。

A.栈按“先进先出”组织数据,B.栈按“先进后出”组织数据C.只能在栈底插入数据D.不能删除数据(8)在数据库设计中,将E—R图转换成关系数据模型的过程属于( )。

A.需求分析阶段B.概念设计阶段C.规律设计阶段D.物理设计阶段(9)有三个关系R、s和T如下:由关系R和s通过运算得到关系T,则所使用的运算为( )。

A.并B.自然连接C.笛卡尔积D.交(10)设有表示同学选课的三张表,同学s(学号,姓名,性别,年龄,身份证号),课程c(课号,课名),选课SC(学号,课号,成果),则表sc 的关键字(键或码)为( )。

A.课号,成果B.学号,成果C.学号,课号D.学号,姓名,成果(11)以下叙述中错误的是( )。

A.c语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令B.c程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件C.用c语言编写的程序称为源程序,它以ASCIl代码形式存放在一个文本文件中D.c语言源程序经编译后生成后缀为.obj的目标程序(12)以下选项中,合法的一组c语言数值常量是( )。

二级C语言程序设计笔试资料

二级C语言程序设计笔试资料

C语言程序设计笔试辅导资料考试内容:一、C语言的结构1.程序的构成,main函数和其他函数。

2.头文件,数据说明,函数的开始和结束标志。

3. C语言的风格。

二、数据类型及其运算(基础)1.C的数据类型(基本类型,构造类型,指针类型,空类型)及其定义方法。

2.C运算符的种类、运算优先级和结合性。

3.不同类型数据间的转换与运算。

4.C表达式类型(赋值表达式、算术表达式、关系表达式、逻辑表达式、条件表达式、逗号表达式)和求值规则。

三、基本语句(基础)1.表达式语句,空语句,复合语句。

2.数据的输入和输出,输入输出函数的调用。

3.复合语句。

4.GOTO语句和语句标号的使用。

(这个了解即可)四、选择结构程序设计1.用if语句实现选择结构。

(基础)2.用switch语句实现多分支选择结构。

(笔试有)3.选择结构的嵌套。

五、循环结构程序设计(基础)1.for 循环结构。

2.while和do while循环结构。

3.continue语句和break语句。

4.循环的嵌套。

(基础)六、数组的定义和引用1.一维数组和多维数组的定义、初始化和引用。

2.字符串与字符数组。

七、函数(基础)1.库函数的正确调用。

2.函数的定义方法。

3.函数的类型和返回值。

4.形式参数与实在参数,参数值的传递。

5.函数的正确调用,嵌套调用,递归调用。

6.局部变量和全局变量。

7.变量的存储类别(自动、静态、寄存器、外部),变量的作用域和生存期。

8.内部函数与外部函数。

八、编译预处理(基础,笔试有考到宏替换)1.宏定义:不带参数的宏定义;带参数的宏定义。

2.“文件包含”处理。

九、指针(这个很重要,上机题有这方面的)1.指针与指针变量的概念,指针与地址运算符。

2.指针类型、指针变量与指针引用数据。

3.用指针作函数参数。

4.返回指针值的指针函数。

5.指针数组,指向指针的指针,MAIN函数的命令行参数。

十、结构体(即“结构”)与共用体(即“联合”)1.结构体和共用体类型数据的定义方法和引用方法。

全国计算机等级考试二级C语言笔试试题及答案.doc

全国计算机等级考试二级C语言笔试试题及答案.doc

2005年4月全国计算机等级考试二级C语言笔试试题及答案囱一、选择题(⑴〜(10)每小题2分,(11)〜(50)每小题1分,共60分)下列各题A)、B)、C)、D)四个选项中,只有一个选项就是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。

(1)数据的存储结构就是指。

A.存储在外存中的数据B.数据所占的存储空间量C.数据在计算机中的顺序存储方式D.数据的逻辑结构在计算机中的表示(2)下列关于栈的描述中错误的就是。

A.栈就是先进后出的线性表B.栈只能顺序存储C.栈具有记忆作用D.对栈的插入与删除操作中,不需要改变栈底指针(3)对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的就是A.冒泡排序为n/2B.冒泡排序为nC.快速排序为nD.快速排序为n(n-l)/2(4)对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为A.log2nB.n/2C.nD.n+1(5)下列对于线性链表的描述中正确的就是。

A.存储空间不一定就是连续,且各元素的存储顺序就是任意的B.存储空间不一定就是连续,且前件元素一定存储在后件元素的前面C.存储空间必须连续,且前件元素一定存储在后件元素的前面D.存储空间必须连续,且各元素的存储顺序就是任意的(6)下列对于软件测试的描述中正确的就是。

A.软件测试的目的就是证明程序就是否正确B.软件测试的目的就是使程序运行结果正确C.软件测试的目的就是尽可能多地发现程序中的错误D.软件测试的目的就是使程序符合结构化原则(7)为了使模块尽可能独立,要求oA.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强B.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱C.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱D.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强(8)下列描述中正确的就是。

A.程序就就是软件B.软件开发不受计算机系统的限制C.软件既就是逻辑实体,又就是物理实体D.软件就是程序、数据与相关文档的集合(9)数据独立性就是数据库技术的重要特点之一,所谓数据独立性就是指A.数据与程序独立存放B.不同的数据被存放在不同的文件中C.不同的数据只能被对应的应用程序所使用D.以上三种说法都不对(10)用树形结构表示实体之间联系的模型就是。

二级C语言_笔试题库

二级C语言_笔试题库

2012年3月份全国计算机等级考试二级C语言笔试题库(全)第一部分一、选择题(1)为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为A)PAD图B)N-S图C)结构图D)数据流图(2)结构化程序设计主要强调的是A)程序的规模B)程序的效率C)程序设计语言的先进性D)程序易读性(3)为了使模块尽可能独立,要求A)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强B)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱C)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱D)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强(4)需求分析阶段的任务是确定A)软件开发方法B)软件开发工具C)软件开发费用D)软件系统功能(5)算法的有穷性是指A)算法程序的运行时间是有限的B)算法程序所处理的数据量是有限的C)算法程序的长度是有限的D)算法只能被有限的用户使用(6)对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是A)快速排序B)冒泡排序C)直接插入排序D)堆排序(7)如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是A)e3,e1,e4,e2 B)e2,e4,e3,e1 C)e3,e4,e1,e2 D) 任意顺序(8)将E-R图转换到关系模式时,实体与联系都可以表示成A)属性B)关系C)键D)域(9)有三个关系R、S和T如下:RB C Da 0 k1b 1 n1SB C Df 3 h2a 0 k1n 2 x1TB C Da 0 k1由关系R和S通过运算得到关系T,则所使用的运算为A)并B)自然连接C)笛卡尔积D)交(10)下列有关数据库的描述,正确的是A)数据处理是将信息转化为数据的过程B)数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变C)关系中的每一列称为元组,一个元组就是一个字段D)如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字(11)以下叙述中正确的是A)用C程序实现的算法必须要有输入和输出操作B)用C程序实现的算法可以没有输出但必须要有输入C)用C程序实现的算法可以没有输入但必须要有输出D)用C程序实现的算法可以既没有输入也没有输出(12)下列可用于C语言用户标识符的一组是A)void, define, WORD B)a3_3,_123,Car C)For, -abc, IF Case D)2a, DO, sizeof (13)以下选项中可作为C语言合法常量的是A)-80B)-080 C)-8e1.0 D)-80.0e(14)若有语句:char *line[5];,以下叙述中正确的是A) 定义line是一个数组,每个数组元素是一个基类型为char为指针变量B) 定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组C) 定义line是一个指针数组,语句中的*号称为间址运算符D) 定义line是一个指向字符型函数的指针(15)以下定义语句中正确的是A)int a=b=0; B)char A=65+1,b=′b′;C)float a=1,*b=&a,*c=&b;D)double a=0 0;b=1.1;(16)有以下程序段char ch; int k;ch=′a′;k=12;printf("%c,%d,",ch,ch,k); printf("k=%d \n",k);已知字符a的ASCII码值为97,则执行上述程序段后输出结果是A)因变量类型与格式描述符的类型不匹配输出无定值B)输出项与格式描述符个数不符,输出为零值或不定值C)a,97,12k=12D)a,97,k=12(17)有以下程序main(){ int i,s=1;for (i=1;i<50;i++)if(!(i%5)&&!(i%3)) s+=i;printf("%d\n",s);}程序的输出结果是A)409 B)277 C)1 D)91(18)当变量c的值不为2、4、6时,值也为"真"的表达式是A)(c==2)||(c==4)||(c==6)B)(c>=2&& c<=6)||(c!=3)||(c!=5)C)(c>=2&&c<=6)&&!(c%2)D)(c>=2&& c<=6)&&(c%2!=1)(19)若变量已正确定义,有以下程序段int a=3,b=5,c=7;if(a>b) a=b; c=a;if(c!=a) c=b;printf("%d,%d,%d\n",a,b,c);其输出结果是A)程序段有语法错B)3,5,3 C)3,5,5 D)3,5,7 (20)有以下程序#include <stdio.h>main(){ int x=1,y=0,a=0,b=0;switch(x){ case 1:switch(y){ case 0:a++; break;case 1:b++; break;}case 2:a++; b++; break;case 3:a++; b++;}printf("a=%d,b=%d\n",a,b);}程序的运行结果是A)a=1,b=0 B)a=2,b=2 C)a=1,b=1 D)a=2,b=1 (21)下列程序的输出结果是#include "stdio.h"main(){ int i,a=0,b=0;for(i=1;i<10;i++){ if(i%2==0){a++;continue;}b++;}printf("a=%d,b=%d",a,b); }A)a=4,b=4 B)a=4,b=5 C)a=5,b=4 D)a=5,b=5(22)已知#int t=0;while (t=1){...}则以下叙述正确的是A)循环控制表达式的值为0B)循环控制表达式的值为1C)循环控制表达式不合法D)以上说法都不对(23)下面程序的输出结果是main(){ int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;printf("%d\n",*(p+2));}A)3 B)4 C)1 D)2(24)以下错误的定义语句是A)int x[][3]={{0},{1},{1,2,3}}; B)int x[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};C)int x[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}}; D)int x[][3]={1,2,3,4};(25)有以下程序void ss(char *s,char t){ while(*s){ if(*s==t)*s=t-′a′+′A′;s++; } }main(){ char str1[100]="abcddfefdbd",c=′d′;ss(str1,c); printf("%s\n",str1);}程序运行后的输出结果是A)ABCDDEFEDBD B)abcDDfefDbD C)abcAAfefAbA D)Abcddfefdbd (26)有如下程序main(){ char ch[2][5]={"6937","8254"},*p[2];int i,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>′\0′;j+=2)s=10*s+p[i][j]-′0′;printf("%d\n",s);}该程序的输出结果是A)69825 B)63825 C)6385 D)693825(27)有定义语句:char s[10];,若要从终端给s输入5个字符,错误的输入语句是A)gets(&s[0]); B)scanf("%s",s+1); C)gets(s); D)scanf("%s",s[1]);(28)以下叙述中错误的是A)在程序中凡是以"#"开始的语句行都是预处理命令行B)预处理命令行的最后不能以分号表示结束C)#define MAX 是合法的宏定义命令行D)C程序对预处理命令行的处理是在程序执行的过程中进行的(29)设有以下说明语句typedef struct{ int n;char ch[8];} PER;则下面叙述中正确的是A)PER 是结构体变量名B)PER是结构体类型名C)typedef struct 是结构体类型D)struct 是结构体类型名(30)以下叙述中错误的是A)gets函数用于从终端读入字符串B)getchar函数用于从磁盘文件读入字符C)fputs函数用于把字符串输出到文件D)fwrite函数用于以二进制形式输出数据到文件(31)以下能正确定义一维数组的选项是A)int a[5]={0,1,2,3,4,5}; B)char a[]={′0′,′1′,′2′,′3′,′4′,′5′,′\0′}; C)char a={′A′,′B′,′C′}; D)int a[5]="0123";(32)有以下程序#include<string.h>main(){ char p[]={′a′, ′b′, ′c′},q[10]={ ′a′, ′b′, ′c′};printf("%d%d\n",strlen(p),strlen(q));}以下叙述中正确的是A) 在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3B) 由于p数组中没有字符串结束符,长度不能确定,但q数组中字符串长度为3C) 由于q数组中没有字符串结束符,长度不能确定,但p数组中字符串长度为3D) 由于p和q数组中都没有字符串结束符,故长度都不能确定(33)有以下程序#include <stdio.h>#include <string.h>void fun(char *s[],int n){ char *t; int i,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(strlen(s[i])>strlen(s[j])) {t=s[i];s[i]:s[j];s[j]=t;}}main(){ char *ss[]={"bcc","bbcc","xy","aaaacc","aabcc"};fun(ss,5); printf("%s,%s\n",ss[0],ss[4]);}程序的运行结果是A)xy,aaaacc B)aaaacc,xy C)bcc,aabcc D)aabcc,bcc(34)有以下程序#include <stdio.h>int f(int x){ int y;if(x==0||x==1) return(3);y=x *x-f(x-2);return y;}main(){ int z;z=f(3); printf("%d\n",z);}程序的运行结果是A)0 B)9 C)6 D)8(35)下面程序段的运行结果是char str[]="ABC",*p=str;printf("%d\n",*(p+3));A)67 B)0 C)字符′C′的地址D)字符′C′(36)若有以下定义:struct link{ int data;struct link *next;} a,b,c,*p,*q;且变量a和b之间已有如下图所示的链表结构:指针p指向变量a,q指向变量c。

全国计算机等级考试二级笔试样卷C语言程序设计含答案

全国计算机等级考试二级笔试样卷C语言程序设计含答案

全国计算机等级考试二级笔试样卷C语言程序设计【打印】【字体:大中小】【关闭】一、选择题((1)~(10)、(21)~(40)每题2分,(11)~(20)每题2分,共70分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。

(1)下列选项中不符合良好程序设计风格的是A)源程序要文档化B)数据说明的次序要规化C)避免滥用goto语句 D)模块设计要保证高耦合、高聚(2)从工程管理角度,软件设计一般分为两步完成,它们是A)概要设计与详细设计B)数据设计与接口设计C)软件结构设计与数据设计D)过程设计与数据设计(3)下列选项中不属于软件生命周期开发阶段任务的是A)软件测试B)概要设计C)软件维护D)详细设计(4)在数据库系统中,用户所见的数据模式为A)概念模式B)外模式C)模式D)物理模式(5)数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和A)编码设计B)测试阶段C)运行阶段D)物理设计(6)设有如下三个关系表R S T下列操作中正确的是A)T=R∩S B)T=R∪SC)T=R×S D)T=R/S(7)下列叙述中正确的是A)一个算法的空间复杂度大,则其时间复杂度也必定大B)一个算法的空间复杂度大,则其时间复杂度必定小C)一个算法的时间复杂度大,则其空间复杂度必定小D)上述三种说法都不对(8)在长度为64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为A)63 B)64 C)6 D)7(9)数据库技术的根本目标是要解决数据的A)存储问题B)共享问题C)安全问题D)保护问题(10)对下列二叉树进行中序遍历的结果是A)ACBDFEG B)ACBDFGE C)ABDCGEF D)FCADBEG(11)下列叙述中错误的是A)一个C语言程序只能实现一种算法B)C程序可以由多个程序文件组成C)C程序可以由一个或多个函数组成D)一个C函数可以单独作为一个C程序文件存在(12)下列叙述中正确的是A)每个C程序文件中都必须要有一个main()函数B)在C程序中main()函数的位置是固定的C)C程序中所有函数之间都可以相互调用,与函数所在位置无关D)在C程序的函数中不能定义另一个函数(13)下列定义变量的语句中错误的是A)int _int; B)double int_; C)char For; D)float US$; (14)若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是A)++x,y=x-- B)x+1=y C)x=x+10=x+y D)double(x)/10(15)以下关于逻辑运算符两侧运算对象的叙述中正确的是A)只能是整数0或1 B)只能是整数0或非0整数C)可以是结构体类型的数据D)可以是任意合法的表达式(16)若有定义int x,y; 并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++) :(y++)中的条件表达式(x-y) 等价的是A)(x-y>0) B)(x-y<0) C)(x-y<0||x-y>0) D)(x-y==0)(17)有以下程序main(){ int x, y, z;x=y=1;z=x++,y++,++y;printf("%d,%d,%d\n",x,y,z);}程序运行后的输出结果是A)2,3,3 B)2,3,2 C)2,3,1 D)2,2,1(18)设有定义:int a; float b; 执行scanf("%2d%f",&a,&b); 语句时,若从键盘输入876 543.0<回车>,a和b的值分别是A)876和543.000000 B)87和6.000000 C)87和543.000000 D)76和543.000000(19)有以下程序main(){ int a=0, b=0;a=10; /* 给a赋值b=20; 给b赋值*/printf("a+b=%d\n",a+b); /* 输出计算结果*/}程序运行后的输出结果是A)a+b=10 B)a+b=30 C)30 D)出错(20)在嵌套使用if语句时,C语言规定else总是A)和之前与其具有相同缩进位置的if配对B)和之前与其最近的if配对C)和之前与其最近的且不带else的if配对D)和之前的第一个if配对(21)下列叙述中正确的是A)break语句只能用于switch语句B)在switch语句中必须使用defaultC)break语句必须与switch语句中的case配对使用D)在switch语句中,不一定使用break语句(22)有以下程序main(){ int k=5;while(--k) printf("%d",k -= 3);printf("\n");}执行后的输出结果是A)1 B)2 C)4 D)死循环(23)有以下程序main(){ int i;for(i=1; i<=40; i++){ if(i++%5==0)if(++i%8==0) printf("%d ",i);}printf("\n");}执行后的输出结果是A)5 B)24 C)32 D)40(24)以下选项中,值为1的表达式是A)1 –'0' B)1 - '\0' C)'1' -0 D)'\0' - '0'(25)有以下程序fun(int x, int y){ return (x+y); }main(){ int a=1, b=2, c=3, sum;sum=fun((a++,b++,a+b),c++);printf("%d\n",sum);}执行后的输出结果是A)6 B)7 C)8 D)9(26)有以下程序main(){ char s[]="abcde";s+=2;printf("%d\n",s[0]);}执行后的结果是A)输出字符a的ASCII码B)输出字符c的ASCII码C)输出字符c D)程序出错(27)有以下程序fun(int x, int y){ static int m=0, i=2;i+=m+1; m=i+x+y; return m;main(){ int j=1, m=1, k;k=fun(j,m); printf("%d,",k);k=fun(j,m); printf("%d\n",k);}执行后的输出结果是A)5, 5 B)5, 11 C)11, 11 D)11, 5(28)有以下程序fun(int x){ int p;if(x==0||x==1) return(3);p=x-fun(x-2);return p;main(){ printf("%d\n",fun(7)); }执行后的输出结果是A)7 B)3 C)2 D)0(29)在16位编译系统上,若有定义int a[]={10,20,30}, *p=&a;,当执行p++;后,下列说法错误的是A)p向高地址移了一个字节B)p向高地址移了一个存储单元C)p向高地址移了两个字节D)p与a+1等价(30)有以下程序main(){ int a=1, b=3, c=5;int *p1=&a, *p2=&b, *p=&c;*p =*p1*(*p2);printf("%d\n",c);}执行后的输出结果是A)1 B)2 C)3 D)4(31)若有定义:int w[3][5]; ,则以下不能正确表示该数组元素的表达式是A)*(*w+3) B)*(w+1)[4] C)*(*(w+1)) D)*(&w[0][0]+1)(32)若有以下函数首部int fun(double x[10], int *n)则下面针对此函数的函数声明语句中正确的是A)int fun(double x, int *n); B)int fun(double , int );C)int fun(double *x, int n); D)int fun(double *, int *);(33)有以下程序void change(int k[ ]){ k[0]=k[5]; }main(){ int x[10]={1,2,3,4,5,6,7,8,9,10},n=0;while( n<=4 ) { change( &x[n]) ; n++; }for(n=0; n<5; n++) printf("%d ",x[n]);printf("\n");}程序运行后输出的结果是A)6 7 8 9 10 B)1 3 5 7 9 C)1 2 3 4 5 D)6 2 3 4 5(34)有以下程序main(){ int x[3][2]={0}, i;for(i=0; i<3; i++) scanf("%d",x[i]);printf("%3d%3d%3d\n",x[0][0],x[0][1],x[1][0]);}若运行时输入:2 4 6<回车>,则输出结果为A)2 0 0 B)2 0 4 C)2 4 0 D)2 4 6(35)有以下程序int add( int a,int b){ return (a+b); }main(){ int k, (*f)(), a=5,b=10;f=add;…}则以下函数调用语句错误的是A)k=(*f)(a,b); B)k=add(a,b);C)k= *f(a,b); D)k=f(a,b);(36)有以下程序#includemain( int argc, char *argv[ ]){ int i=1,n=0;while (iprintf("%d\n",n);}该程序生成的可执行文件名为:proc.exe。

历年二级C语言笔试真题及答案

历年二级C语言笔试真题及答案

1)下列数据结构中,属于非线性结构的是A)循环队列B) 带链队列C) 二叉树D)带链栈2)下列数据结果中,能够按照“先进后出”原则存取数据的是A) 循环队列B)栈C)队列D)二叉树3)对于循环队列,下列叙述中正确的是A)队头指针是固定不变的B)队头指针一定大于队尾指针C)队头指针一定小于队尾指针D)队头指针可以大于队尾指针,也可以小于队尾指针4)算法的空间复杂度是指A)算法在执行过程中所需要的计算机存储空间B)算法所处理的数据量C)算法程序中的语句或指令条数D)算法在执行过程中所需要的临时工作单元数5)软件设计中划分模块的一个准则是A) 低内聚低耦合B) 高内聚低耦合C) 低内聚高耦合D) 高内聚高耦合6)下列选项中不属于结构化程序设计原则的是A) 可封装B) 自顶向下C) 模块化D) 逐步求精7)软件详细设计产生的图如下:该图是A) N-S图B) PAD图C) 程序流程图D) E-R图8)数据库管理系统是A)操作系统的一部分B)在操作系统支持下的系统软件C) 一种编译系统D) 一种操作系统9)在E-R图中,用来表示实体联系的图形是A) 椭圆图B) 矩形C) 菱形D) 三角形10)有三个关系R,S和T如下:其中关系T由关系R和S通过某种操作得到,该操作为A) 选择B) 投影C) 交D) 并11)以下叙述中正确的是A)程序设计的任务就是编写程序代码并上机B)程序设计的任务就是确定所用数据结构C)程序设计的任务就是确定所用算法D)以上三种说法都不完整12)以下选项中,能用作用户标识符的是A)void B)8_8 C)_0_D)unsigned13)阅读以下程序#include <stdio.h>main(){ int case; float printF;printf(“请输入2个数:”);scanf(“%d %f”,&case,&pjrintF);printf(“%d %f\n”,case,printF);}该程序编译时产生错误,其出错原因是A)定义语句出错,case是关键字,不能用作用户自定义标识符B)定义语句出错,printF不能用作用户自定义标识符C)定义语句无错,scanf不能作为输入函数使用D)定义语句无错,printf不能输出case的值14)表达式:(int)((double)9/2)-(9)%2的值是A)0 B)3C)4 D)515)若有定义语句:int x=10;,则表达式x-=x+x的值为A)-20B)-10C)0D)1016)有以下程序#include <stdio.h>main(){ int a=1,b=0;printf(“%d,”,b=a+b);printf(“%d\n”,a=2*b);}程序运行后的输出结果是A)0,0 B)1,0 C)3,2 D)1,217)设有定义:int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是A)if(a>b) c=a,a=b,b=c; B)if(a>b) {c=a,a=b,b=c;} C)if(a>b) c=a;a=b;b=c; D)if(a>b) {c=a;a=b;b=c;}18)有以下程序#include <stdio.h>main(){ int c=0,k;for (k=1;k<3;k++)switch (k){default: c+=kcase 2: c++;break;case 4: c+=2;break;}printf(“%d\n”,c);}程序运行后的输出结果是A)3B)5 C)7 D)919)以下程序段中,与语句:k=a>b?(b>c?1:0):0;功能相同的是A)if((a>b)&&(b>c)) k=1;else k=0;B)if((a>b)||(b>c) k=1;else k=0;C)if(a<=b) k=0;else if(b<=c) k=1;D)if(a>b) k=1;else if(b>c) k=1; else k=0;20)有以下程序#include <stdio.h>main(){ char s[]={“012xy”};int i,n=0;for(i=0;s[i]!=0;i++)if(s[i]>=’a’&&s[i]<=’z’) n++;printf(“%d\n”,n);} 程序运行后的输出结果是A)0 B)2 C)3 D)521)有以下程序#include <stdio.h>main(){ int n=2,k=0;while(k++&&n++>2);printf(“%d %d\n”,k,n);} 程序运行后的输出结果是A)0 2 B)1 3 C)5 7 D)1 222)有以下定义语句,编译时会出现编译错误的是A)char a=’a’B)cha r a=’\n’;C)char a=’aa’; D)char a=’\x2d’;23)有以下程序#include <stdio.h>main(){ char c1,c2;c1=’A’+’8’-‘4’;c2=’A’+’8’-‘5’;printf(“%c,%d\n”,c1,c2);}已知字母A的ASCII码为65,程序运行后的输出结果是A)E,68 B)D,69C)E,D D)输出无定值24)有以下程序#include <stdio.h>void fun(int p){ int d=2;p=d++; printf(“%d”,p);}main(){ int a=1;fun(a); printf(“%d\n”,a);} 程序运行后的输出结果是A)32 B)12 C)21D)2225)以下函数findmax拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能#define MIN -2147483647int findmax (int x[],int n){ int i,max;for(i=0;i<n;i++){ max=MIN;if(max<x[i]) max=x[i];}return max;} 造成错误的原因是A)定义语句int i,max;中max未赋初值B)赋值语句max=MIN;中,不应给max赋MIN值C)语句if(max<x[i]) max=x[i];中判断条件设置错D)赋值语句max=MIN;放错了位置(26)有以下程序#include <stdio.h>main(){ int m=1,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf(“%d,%d,%d,%d\n”,m,n,*p,*q);} 程序运行后的输出结果是A)1,2,1, B)1,2,2,1C)2,1,2, D)2,1,1,227)若有定义语句:int a[4][10],*p,*q[4];且0≤i<4,则错误的赋值是A)p=a B)q[i]=a[i] C)p=a[i] D)p=&a[2][1]28)有以下程序#include <stdio.h>#include<string.h>main(){ char str[ ][20]={“One*World”, “One*Dream!”},*p=str[1];printf(“%d,”,strlen(p));printf(“%s\n”,p);} 程序运行后的输出结果是A)9,One*World B)9,One*Dream C)10,One*Dream D)10,One*World29)有以下程序#include <stdio.h>main(){ int a[ ]={2,3,5,4},i;for(i=0;i<4;i++)switch(i%2){ case 0:switch(a[i]%2){case 0:a[i]++;break;case 1:a[i]--;}break;case 1:a[i[=0;}for(i=0;i<4;i++) printf(“%d”,a[i]); printf(“\n”);}A)3 3 4 4 B)2 0 5 0 C)3 0 4 0D)0 3 0 430)有以下程序#include <stdio.h>#include<string.h>main(){ char a[10]=”abcd”;print f(“%d,%d\n”,strlen(a),sizeof(a);} 程序运行后的输出结果是A)7,4 B)4,10C)8,8 D)10,1031)下面是有关C语言字符数组的描述,其中错误的是A)不可以用赋值语句给字符数组名赋字符串B)可以用输入语句把字符串整体输入给字符数组C)字符数组中的内容不一定是字符串D)字符数组只能存放字符串32)下列函数的功能是fun(char * a,char * b){ while((*b=*a)!=’\0’) {a++,b++;} }A)将a所指字符串赋给b所指空间B)使指针b指向a所指字符串C)将a所指字符串和b所指字符串进行比较D)检查a和b所指字符串中是否有’\0’33)设有以下函数void fun(int n,char * s) {……} 则下面对函数指针的定义和赋值均是正确的是A)void (*pf)(); pf=fun; B)viod *pf(); pf=fun; C)void *pf(); *pf=fun; D)void (*pf)(int,char);pf=&fun;(34)有以下程序#include <stdio.h>int f(int n);main(){ int a=3,s;s=f(a);s=s+f(a);printf(“%d\n”,s);}int f(int n){ static int a=1;n+=a++;return n;} 程序运行以后的输出结果是A)7 B)8C)9 D)1035)有以下程序#include <stdio.h>#define f(x) x*x*xmain(){ int a=3,s,t;s=f(a+1);t=f((a+1));printf(“%d,%d\n’,s,t);} 程序运行后的输出结果是A)10,64B)10,10 C)64,10 D)64,6436)下面结构体的定义语句中,错误的是A)struct ord {int x;int y;int z;}; struct ord a; B)struct ord {int x;int y;int z;} struct ord a;C)struct ord {int x;int y;int z;} a;D)struct {int x;int y;int z;} a;37)设有定义:char *c;,以下选项中能够使字符型指针c正确指向一个字符串的是A)char str[ ]=”string”;c=str; B)scanf(“%s”,c);C)c=getchar(); D)*c=”string”;38)有以下程序#include <stdio.h>#include<string.h>struct A{ int a; char b[10]; double c;};struct A f(struct A t);main(){ struct Aa={1001,”ZhangDa”,1098.0};a=f(a);jprintf(“%d,%s,%6.1f\n”,a.a,a.b,a.c);}struct A f(struct A t)( t.a=1002;strcpy(t.b,”ChangRong”);t.c=1202.0;return t; )程序运行后的输出结果是A)1001,ZhangDa,1098.0 B)1001,ZhangDa,1202.0 C)1001,ChangRong,1098.0 D)1001,ChangRong,1202.039)若有以下程序段int r=8;printf(“%d\n”,r>>1);输出结果是A)16 B)8 C)4D)240)下列关于C语言文件的叙述中正确的是A)文件由一系列数据依次排列组成,只能构成二进制文件B)文件由结构序列组成,可以构成二进制文件或文本文件C)文件由数据序列组成,可以构成二进制文件或文本文件D)文件由字符序列组成,其类型只能是文本文件二、填空题(每空2分,共30分)1)某二叉树有5个度为2的结点以及3个度为1的结点,则该二叉树中共有【1】14个结点。

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

二级C语言笔试-364(总分:103.50,做题时间:90分钟)一、选择题(总题数:50,分数:65.00)1.下列函数值的类型是( )。

fun(double x)float y;y=3*x-4;return y;A) int B) 不确定 C) void D) float(分数:2.00)A. √B.C.D.解析:[解析] 本题考查默认函数的函数值的类型。

在函数调用时,尽管y的类型是float,x的类型是double,但是因为函数定义时省去类型说明,系统默认函数值的类型为int型,所以计算后的y的类型是int型。

2.对长度为n的线性表进行顺序查找,在最坏的情况下需要比较的次数为( )。

A) 125 B) n/2 C) n D) n+1(分数:2.00)A.B.C. √D.解析:[解析] 对线性表进行顺序查找时,从表中的第一个元素开始,将给定的值与表中逐个元素的关键字进行比较,直到两者相符,查找到所要找的元素为止。

在最坏的情况下,要查找的元素是表的最后一个元素或查找失败,这两种情况都需要将这个元素与表中的所有元素进行比较,因此比较次数为n。

3.以下程序的输出结果是 ( )main( )int a=5,b=4,c=6,d;printf(”%d//n",d=a>b?(a>c?a:c):(b));A.5B.4C.6D.不确定(分数:1.00)A.B.C. √D.解析:4.规范化理论中,分解()是消除其中多余的数据相关性A) 关系运算 B) 内模式 C) 外模式 D) 视图(分数:1.00)A. √B.C.D.解析:[解析] 数据库规范化的基本思想是逐步消除数据依赖中不合适的部分,根本思想是通过分解关系运算来消除多余的数据相关性。

5.下列对于线性链表的描述中正确的是 ______。

A)存储空间不一定是连续,且各元素的存储顺序是任意的B)存储空间不一定是连续,且前件元素一定存储在后件元素的前面C)存储空间必须连续,且前件元素一定存储在后件元素的前面D)存储空间必须连续,且各元素的存储顺序是任意的(分数:1.00)A. √B.C.D.解析:[解析] 在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来来确定的。

6.以下叙述中正确的是( )。

A) 调用pfintf函数时,必须要有输出项B) 使用putchar函数时,必须在之前包含头文件stdio.hC) 在C语言中,整数可以以十二进制、八进制或十六进制的形式输出D) 调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码(分数:1.00)A.B. √C.D.解析:[解析] 在使用标准输入输出库函数前,必须要用预编译命令“#include”将头文件"stdio.h"包括到用户源文件中。

7.若有定义int b[8], *p=b; 则p+6表示( )。

A) 数组元素b[6]的值B) 数组元素b[6]的地址C) 数组元素b[7]的地址D) 数组元素b[0]的值加上6(分数:2.00)A.B. √C.D.解析:[解析] 指针中存放的是变量的地址,指针也可以进行增减运算,这时指针移动的最小单位是一个存储单元,而不是一个字节。

所以题中将p+6指的是将指针向后移动了6个存储单元,指向b[6],存放的是b[6]的地址。

8.以下叙述中正确的是A) C程序中的注释只能出现在程序的开始位置和语句的后面B) C程序书写格式严格,要求一行内只能写一个语句C) C程序书写格式自由,一个语句可以写在多行上D) 用C语言编写的程序只能放在一个程序文件中(分数:1.00)A.B.C. √D.解析:[解析] 考查C语言的几个基本概念。

[解题要点] 选项A)中,C语言的注释可以出现在程序的任何位置;C语言的语法限制不严格,可以多条语句放在同一行上,也可以将一条语句写在多行,故选项B)错误,选项C)正确;选项D)是错误的,因为用C 语言编写的程序可以放在不同的文件中,文件之间使用预处理命令进行调用。

[考点链接] 掌握算法的相关特性。

9.已知p为指针变量,a为数组名,i为整型变量,下列语句中,不正确的是______。

A) p=&i; B) p=a; C) p=&a[i]; D) p=10;(分数:1.00)A.B.C.D. √解析:[解析] 不能把一个整数赋给指针变量,只能将变量已分配的地址赋给指针变量。

10.若函数中有定义语句:int k;,则A) 系统将自动给k赋初值0 B) 这时k中值无定义C) 系统将自动给k赋初值-1 D) 这时k中无任何值(分数:1.00)A.B. √C.D.解析:[解析] 函数中定义的变量,如果不专门声明,属于自动变量。

自动变量不会自动赋初值,此时,变量中无确定值,称变量值“无意义”。

11.执行下列程序中的输出语句后,a的值是( )。

main()int a;printf("%d/n",(a=2*3,a*5,a+7) );A) 17 B) 37 C) 6 D) 13(分数:2.00)A.B.C. √D.解析:[解析] 本题考查逗号表达式。

本题的返回值是a+7,a=2.3=6,a+7=13(注意:本题问的是a的值,而不是程序的输出值)。

12.有以下程序:main()int i,j,x=0;for(i=0;i<2;i++)x++;for(j=0;j<=3;j++)if(j%2)continue;x++;x++;printf("x=%d/n",x);程序执行后的输出结果是______。

A) x=4 B) x=8C) x=6 D) x=12(分数:2.00)A.B. √C.D.解析:[解析] 内层for循环语句实现x=x+2,故外层for循环语句单次循环实现x=x+4,所以程序执行后的输出结果为x=8。

13.以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是()A) char s[10]=”abcdefg”;B) char t[ ]=”abcdefg”,*s=t;C) char s[10];s=”abcdefg”;D) char s[10];strcpy(s,”abcdefg”);(分数:1.00)A.B.C. √D.解析:[解析] 因为“abcdefg”字符串在赋值过程中给出的是这个字符串在内存中所占一块连续存储单元的首地址,而s是一个不可重新赋值的数组名。

14.有以下程序union myunstructint x,y,z;u;int k;a;main()a.u.x=4;a.u.y=5;a,u.z=6;a.k=0;printf("%d/n",a.u.x);程序运行后的输出结果是 ( )A) 4 B) 5 C) 6 D) 0(分数:1.00)A.B.C.D. √解析:15.下列数据结构中能应用二分查找的是( )。

A) 有序线性链表 B) 有序顺序表 C) 顺序存储的栈 D) 顺序存储的队列(分数:1.00)A.B. √C.D.解析:[解析] 有序线性表顺序存储时才能采用二分查找。

16.下列关于栈的叙述中,正确的是A) 在栈中只能插入数据 B) 在栈中只能删除数据C) 栈是先进先出的线性表 D) 栈是先进后出的线性表(分数:1.00)A.B.D. √解析:[解析] 对栈可进行插入和删除数据的操作,但必须牢记插入和删除数据都只能在栈顶,是一种特殊的线性表。

所以栈是先进后出的线性表。

17.以下函数值的类型是_______。

fun (float x)float y;y=3*x-4;return y;A) int B) 不确定 C) void D) float(分数:2.00)A. √B.C.D.解析:[解析] C语言中如果函数前不加任何数据类型时,默认函数的类型为整型,函数的类型就是函数返回值的类型。

18.设有如下关系表 ______。

则下列操作中,正确的是 ______。

A) T=R∩S B) T=R∪SC T=R×S D) T=R/S(分数:1.00)A.B. √C.D.解析:[解析] 从图中可以看出,关系T是关系R和关系S的简单合并,而合并的符号为u,所以答案为T=RUS。

19.有以下程序main()int a,b,d=25;a=d/10%9;b=a&&(-1);printf("%d,%d/n",a,b);程序运行后的输出结果是A) 6,1 B) 2,1 C) 6,0 D) 2,0(分数:1.00)A.B. √C.解析:[解析] 本题考查算术运算符“/”、“%”,逻辑运算符“&&”。

a=25/10%9= 2;b=2&&(-1)=1。

20.设有如下程序:#include "string.h"main()static char s1[20],s2[20];scanf("%s",s1);scanf("%s",s2);if(strcmp(s1,s2)) printf("@");else printf("$");printf("%d/n",strlen(strcat(s1,s2)));如果从键盘上输入name<回车>name1<回车>,则程序运行后的输出结果是 ( )A) $8 B) @10 C) $9 D) @9(分数:1.00)A.B.C.D. √解析:21.若有定义:char *st="how are you";,下列程序段中正确的是A) char a[11],*p; strcpy(p=a+1,&st[4]);B) char a[11]; strcpy(++a, st);C) char a[11]; strcpy(a, st);D) char a[],*p; strcpy(p=&a[1], st+2);(分数:1.00)A. √B.C.D.解析:[解析] 本题综合考查字符数组的赋值和strcpy函数的用法。

C语言不允许用赋值表达式对字符数组赋值,如下面的语句就是非法的:str1=“China”,如果想把“China”这5个字符放到数组str1中,除了逐个输入外,还能使用strcpy函数,该函数的功能是将一个字符串复制到一个字符数组中。

例如:strcpy( str1,“China”)或strcpy(str1,str2);注意,不能企图用以下语句来进行赋值(将str2的值传给str1):str1=str2;不能用赋值语句将一个字符串常量或字符数组直接赋值给一个字符数组。

相关文档
最新文档