1、计算机二级C语言直题(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)物
2、理设计(6)设有如下三个关系表nn二T下列操作中正确的是A) T=RnSB) T=RUSA) 3B) 5C) 7D) 11(37)有以下程序# include# defineN5# defineMN+l# definef(x)(x*M)main()int il, i2;11 = f(2);12 = f(l+l);printf(%d %dnz ilz i2);程序的运行结果是A) 12 12 B) 11 7C) 11 11 D) 12 7(38) 有以下结构体说明、变量定义和赋值语句struct STDchar name10;int age;char sex;s5z*ps;ps=&sO;则以下s
3、canf函数调用语句中错误引用结构体变量成员的是A) scanf(s,sO.name);B) scanf(%d,&sO.age);C) scanf(%c,&(ps-sex);D) scanf(%d,ps-age);(39) 若有以下定义和语句union data int i; char c; float f; x;int y;则以下语句正确的是A) x=10.5; B) x.c=101; C) y=x;D) printf(dn”,x);(40) 有以下程序ttincludemain()(FILE *fp; int i;char ch=,abcd/t;fp=fopen(”abc.dat”,”wb
4、+);for(i=0; ix) ? x : d;printf(%dnzx);(9) 有以下程序,若运行时从键盘输入:回车,则程序的输出结果是9 omain() int a,b;printffEnter a,b:);scanf(%d,%d,&a,&b);while(a!=b) while(ab) a -= b;while(ba) b -= a;printf(%3d%3dn,a/b);(10) 以下程序的功能是:将输入的正整数按逆序输出。例如:若输入135 则输出531。请填空。includemain()int n,s;printffEnter a number:); scanf(%dz&n);p
5、rintffOutput:);do( s=n%10; printf(d“,s); 【10】;while(n!=0);printf(n);(11) 以下程序中,函数fun的功能是计算x2-2x+6,主函数中将调用fun函 数计算:yl=(x+8)2-2 (x+8)+6y2=sin2(x)-2sin(x)+6请填空。#include math.hdouble funfdouble x) return (x*x-2*x+6);double x,yl,y2;printffEnter x:); scanf(%lfz&x);yl=fun(【11】);y2=fun(【12】);printf(yl=%lfzy
6、2=%lfn/yl/y2);(12) 下面程序的功能是:将N行N列二维数组中每一行的元素进行排序, 第0行从小到大排序,第1行从大到小排序,第2行从小到大排序,第3行从大 到小排序,例如:#define N 4void sort(int aN)(int i, j, k, t;for (i=0; ifor (j=0; jfor (k=【13】;k/*判断行下标是否为偶数来确定按升序或降序来排序*/if(【14】 ?aiUaik) t = aij;aij=aik;aik = t;void outarr(int aNN)int aaNN=2,3,4,l,8,6,5,7,ll,12,10,9,15,1
7、4,16,13;outarr(aa); /*以矩阵的形式输出二维数组*/ sort(aa);outarr(aa);(13) 下面程序的运行结果是:【15】o#includeint f(int aJnt n)(if(nl)return a0 + f(a+l, n-1);elsereturn a0;main()int aa10=l,2,3,4,5,6,7,8,9,10, s;s = f(aa+2,4); printf(%dn”, s);C) T=RxS D) T=R/S(7) 下列叙述中正确的是A) 个算法的空间复杂度大,则其时间复杂度也必定大B) 一个算法的空间复杂度大,则其时间复杂度必定小C)
8、 一个算法的时间复杂度大,则其空间复杂度必定小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) 下列叙
9、述中正确的是A) 每个C程序文件中都必须要有一个main()函数B) 在C程序中main()函数的位置是固定的C) C程序中所有函数之间都可以相互调用,与函数所在位置无关D) 在C程序的函数中不能定义另一个函数(13) 下列定义变量的语句中错误的是A) int _int; B) double int_jC) char For;D) floatUS$;(14) 若变量x、y己正确定义并赋值,以下符合C语言语法的表达式是A) +xzy=x-B) x+l=yC) x=x+10=x+yD)double(x)/10(15) 以下关于逻辑运算符两侧运算对象的叙述中正确的是A)只能是整数0或1B )只能是整
10、数0或非。整数C)可以是结构体类型的数据D)可以是任意合法的表达式(16) 若有定义int x,y;并已正确给变量赋值,则以下选项中与表达式(x-y)?(x+): (y+)中的条件表达式(xy)等价的是A) (x-y0) B) (x-y0)C) (x-y0)D) (x-y=0)(17) 有以下程序main()int x, y, z;x=y=l;z=x+,y+z+y;printf(%d,%d,%dn,x,y,z);程序运行后的输出结果是A) 2,3,3B) 2,3,2C) 23,1D) 2,2,1(18)设有定义:int a; float b; 执行 scanf(”2d%f,&a,&b);语句时
11、, 若从键盘输入876 543.0回车,a和b的值分别是A) 876 和 543.000000B) 87 和 6.000000C) 87 和 543.000000D) 76 和 543.000000(19)有以下程序main()int a=0, b=0;a=10;/*给a赋值b=20;给b赋值*/printf(a+b=%dn,a+b); /* 输出计算结果*/程序运行后的输出结果是A) a+b=10B) a+b=30C)30D)出错(20)在嵌套使用if语句时,C语言规定else总是A)和之前与其具有相同缩进位置的if配对B)和之前与其最近的if配对C)和之前与其最近的且不带else的if配对
12、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);printfCXn);执行后的输出结果是A) 1B) 2C) 4D)死循环(23)有以下程序main() int i;for(i=l; i=40; i+) if(i+%5=0) if(+i%8=0) printf(%d ”,i);printfCAn
13、);执行后的输出结果是A) 5B) 24C) 32D) 40(24)以下选项中,值为1的表达式是A) l-OB ) 1 - 0C) -0D) 0 - 0*(25)有以下程序 fun(int x, int y)( return (x+y);)int a=l, b=2, c=3z sum;sum二fun(a+,b+,a+b),c+); printf(%dn,sum);执行后的输出结果是A) 6B) 7(26) 有以下程序main() char s=abcde;s+=2;printf(”dn”,sO);执行后的结果是A)输出字符a的ASCII码C)输出字符c(27) 有以下程序funfint xz
14、int y)( static int m=0, i=2;C) 8D) 9B)输出字符c的ASCII码D)程序出错i+=m+l; m=i+x+y; return m;main()(int j=l, m=l, k;k=fun(j/m); printf(%d,k);k=fun(j,m); printf(dn”,k);执行后的输出结果是A) 5,5B) 5,11C) 11, 11 D) 11,5(28) 有以下程序fun(int x)(int P;if(x=O| |x=l) return(3);p=x-fun(x-2);return p;main()( pnntf(%dnzfun(7);执行后的输出结
15、果是A) 7B) 3C) 2D) 0(29) 在16位编译系统上,若有定义int a=(10z20/30/*p=&a;,当执行p+;后,下列说法错误的是A) p向高地址移了一个字节B) p向高地址移了一个存储单元C) p向高地址移了两个字节D) p与a+1等价(30) 有以下程序main()(int a=l, b=3, c=5;int *pl=&a, *p2=&b, *p=&c;*p =*pl*(*p2);printf(%dnzc);执行后的输出结果是A) 1B) 2C) 3D) 4(31) 若有定义:intw35;,则以下不能正确表示该数组元素的表达式是A) *(*w+3) B) *(w+l
16、)C) *(*(w+l)D) *(&wOO+l)(32) 若有以下函数首部int funfdouble x10, int *n)则下面针对此函数的函数声明语句中正确的是A) int funfdouble x, int *n);B) int funfdouble , int);C) int funfdouble *x, int n);D) int funfdouble *, int *);(33) 有以下程序void changefint k )( k0=k5;)main()(int x10=L2,3,4,5,6,7,8,9,10,n=0;while) n=4 ) change) &xn); n
17、+;)for(n=0; n5; n+) printf(%d ,xn);printf(nn);程序运行后输出的结果是A) 6 7 8 9 10 B) 135 79 C) 12345 D) 62 345(34) 有以下程序main()int x32=0/ i;for(i=0; i3; i+)scanf(%d,xi);printf(%3d%3d%3dn,x00/x0l,xl0);若运行时输入:246回车,则输出结果为A) 2 0 0 B) 2 0 40 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=l,n=0;while (iprintf(drT,n);该程序生成的可执行文件名为:proc.exe。若运行时输入命令行:proc 123 45 67
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100