计算机二级c语言真题三[1]
计算机二级c考试真题及答案解析
计算机二级c考试真题及答案解析一、选择题(每题2分,共20分)1. 在C语言中,以下哪个选项是合法的字符常量?A. 'a'B. "a"C. 3D. 'ab'答案:A解析:在C语言中,字符常量需要用单引号括起来,因此'a'是合法的字符常量。
选项B是字符串常量,选项C是整数常量,选项D是两个字符的序列,不是单个字符常量。
2. 若有以下定义:```cint a = 3, b = 4;```则表达式`a + b`的值是:A. 7B. 3C. 4D. 0答案:A解析:根据题目中给出的变量定义,a的值为3,b的值为4。
因此,表达式`a + b`的值是3 + 4,即7。
3. 在C语言中,以下哪个选项是正确的整型变量声明?A. int a;B. float b;C. double c;D. All of the above答案:D解析:在C语言中,int、float和double都是合法的整型和浮点型变量声明。
因此,选项A、B和C都是正确的整型变量声明。
4. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. !D. All of the above答案:D解析:在C语言中,&&代表逻辑与,||代表逻辑或,!代表逻辑非,它们都是C语言中的逻辑运算符。
5. 若有以下定义:```cint x = 10;```则表达式`x % 3`的值是:A. 1B. 2C. 3D. 0答案:A解析:表达式`x % 3`表示x除以3的余数。
10除以3的商是3,余数是1,因此`x % 3`的值是1。
6. 在C语言中,以下哪个选项是正确的字符串声明?A. char str[10] = "Hello";B. char str[] = "Hello";C. Both A and BD. None of the above答案:C解析:在C语言中,选项A和B都是正确的字符串声明方式。
2023年计算机二级考试c语言(精选3篇)
2023年计算机二级考试c语言(精选3篇)计算机二级考试c语言1选择题1).在软件设计中,不属于过程设计工具的是()A.PDL(过程设计语言)B.PAD图C.N-S图D.DFD图正确答案:D答案解析:DFD(数据流图Data-Flow-Diagram)是描述数据处理过程的工具,是需求理解的逻辑模型的图形表示。
它直接支持系统功能建模。
在软件详细设计的过程阶段,要对每个模块规定的'功能以及算法的设计给出适当的算法描述。
常见的过程设计工具有:图形工具:程序流程图,N-S,PAD,HIPO;表格工具:判定表;语言工具:PDL(伪码)。
2).数据结构中,与所使用的计算机无关的是数据的()。
A.存储结构B.物理结构C.逻辑结构D.线性结构正确答案:C答案解析:数据的逻辑结构反映的是数据元素之间的逻辑关系,与使用的计算机无关。
3).设有定义:intx=2;以下表达式中,值不为6的是()A.2__x,x+=2B.x++,2__xC.x__=(1+x)D.x__=x+1正确答案:A答案解析:本题考查逗号表达式。
逗号表达式的求解过程是:先求解表达式1,再求解表达式2,整个逗号表达式的值是表达式2的值,因此,选项A中值为4;选项B中,值为6。
选项C中x__=x+1等价于x=x__(x+1),所以等于6;选项D与选项C等价,结果也为6。
4).在长度为64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为()A.63B.64C.6D.7正确答案:B答案解析:顺序查找又称顺序搜索。
顺序查找一般是指在线性表中查找指定的元素,其基本方法是:从线性表的第一元素开始,依次将线性表中的元素与被查找的元素进行比较,若相等则表示找到(即查找成功),若线性表中所有元素都与被查元素进行了比较但都不相等,则表示线性表中没有要找的元素(即查找失败)。
如果线性表中的第一个元素就是要查找的元素,则只需要做一次比较就查找成功;但如果要查找的元素是线性表中的最后一个元素,或者要查找元素不在线性表中,则需要与线性表中所有元素进行比较,这是顺序查找的最坏情况,比较次数为线性表的长度。
3月全国计算机二级c语言考题试卷及答案
3月全国计算机二级C语言考题试卷及答案一、选择题(1)下列关于栈叙述正确的是A)栈顶元素先能被删除B)栈顶元素后才能被删除C)栈底元素永远不能被删除D)以上三种说法都不对(2)下列叙述中正确的是A)有一个以上根结点的数据结构不一定是非线性结构B)只有一个根结点的数据结构不一定是线性结构C)循环链表是非线性结构D)双向链表是非线性结构(3)某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)A)3 B)4 C)6 D)7(4)在软件开发中,需求解析阶段产生的主要文档是A)软件集成测试计划 B)软件详细设计说明书C)用户手册 D)软件需求规格说明书(5)结构化程序所要求的基本结构不包括A)顺序结构 B)GOTO跳转C)选择(分支)结构 D)重复(循环)结构(6)下面描述中错误的是A)系统总体结构图支持软件系统的详细设计B)软件设计是将软件需求转换为软件表示的过程C)数据结构与数据库设计是软件设计的任务之一D)PAD图是软件详细设计的表示工具(7)负责数据库中查询操作的数据库语言是A)数据定义语言B)数据管理语言C)数据操纵语言D)数据控制语言(8)一个教师可讲授多门课程,一门课程可由多个教师讲授。
则实体教师和课程间的联系是A)1:1联系 B)1:m联系C)m:1联系 D)m:n联系(9)有三个关系R、S和T如下:则由关系R和S得到关系T的操作是A)自然连接 B)交 C)除 D)并(10)定义无符号整数类为UInt,下面可以作为类UInt实例化值的是A)-369 B)369 C)0.369 D)整数集合{1,2,3,4,5}(11)计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是A)C语言程序仅可以编译执行B)C语言程序仅可以解释执行C)C语言程序既可以编译执行又可以解释执行D)以上说法都不对(12)以下叙述中错误的是A)C语言的可执行程序是由一系列机器指令构成的B)用C语言编写的源程序不能直接在计算机上运行C)通过编译得到的二进制目标程序需要连接才可以运行D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件(13)以下选项中不能用作C程序合法常量的是A)1,234 B)'123'C)123 D)"\x7G"(14)以下选项中可用作C程序合法实数的是A).1e0 B)3.0e0.2C)E9 D)9.12E(15)若有定义语句:int a=3,b=2,c=1;,以下选项中错误的赋值表达式是A)a=(b=4)=3; B)a=b=c+1;C)a=(b=4)+c; D)a=1+(b=c=4);(16)有以下程序段char name[20];int num;scanf("name=%s num=%d",name;&num);当执行上述程序段,并从键盘输入:name=Lili num=1001<回车>后,name的值为A)LiliB)name=LiliC)Lili num=D)name=Lili num=1001(17)if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是A)必须是逻辑值 B)必须是整数值C)必须是正数 D)可以是任意合法的数值(18)有以下程序#includemain(){ int x=011;printf("%d\n",++x);}程序运行后的输出结果是A)12 B)11 C)10 D)9(19)有以下程序#includemain(){ int s;scanf("%d",&s);while(s>0){ switch(s){ case1:printf("%d",s+5);case2:printf("%d",s+4); break;case3:printf("%d",s+3);default:printf("%d",s+1);break;}scanf("%d",&s);}}运行时,若输入1 2 3 4 5 0<回车>,则输出结果是A)6566456 B)66656 C)66666 D)6666656(20)有以下程序段int i,n;for(i=0;i<8;i++){ n=rand()%5;switch (n){ case 1:case 3:printf("%d\n",n); break;case 2:case 4:printf("%d\n",n); continue;case 0:exit(0);}printf("%d\n",n);}以下关于程序段执行情况的叙述,正确的是A)for循环语句固定执行8次B)当产生的随机数n为4时结束循环操作C)当产生的随机数n为1和2时不做任何操作D)当产生的随机数n为0时结束程序运行(21)有以下程序#includemain(){ char s[]="012xy\08s34f4w2";int i,n=0;for(i=0;s[i]!=0;i++)if(s[i]>='0'&&s[i]<='9') n++;printf("%d\n",n);}程序运行后的输出结果是A)0 B)3 C)7 D)8(22)若i和k都是int类型变量,有以下for语句for(i=0,k=-1;k=1;k++) printf("*****\n");下面关于语句执行情况的叙述中正确的是A)循环体执行两次B)循环体执行一次C)循环体一次也不执行D)构成无限循环(23)有以下程序#includemain(){ char b,c; int i;b='a'; c='A';for(i=0;i<6;i++){ if(i%2) putchar(i+b);else putchar(i+c);} printf("\n");}程序运行后的输出结果是A)ABCDEF B)AbCdEf C)aBcDeF D)abcdef(24)设有定义:double x[10],*p=x;,以下能给数组x下标为6的元素读入数据的正确语句是A)scanf("%f",&x[6]); B)scanf("%lf",*(x+6));C)scanf("%lf",p+6); D)scanf("%lf",p[6]);(25)有以下程序(说明:字母A的ASCII码值是65)#includevoid fun(char *s){ while(*s){ if(*s%2) printf("%c",*s);s++;}}main(){ char a[]="BYTE";fun(a); printf("\n");}程序运行后的输出结果是A)BY B)BT C)YT D) YE(26)有以下程序段#includemain(){ …while( getchar()!='\n');…}以下叙述中正确的是A)此while语句将无限循环B) getchar()不可以出现在while语句的条件表达式中C)当执行此while语句时,只有按回车键程序才能继续执行D)当执行此while语句时,按任意键程序就能继续执行(27)有以下程序#includemain(){ int x=1,y=0;if(!x) y++;else if(x==0)if (x) y+=2;else y+=3;printf("%d\n",y);}程序运行后的输出结果是A)3 B)2 C)1 D) 0(28)若有定义语句:char s[3][10],(*k)[3],*p;,则以下赋值语句正确的是A)p=s; B)p=k; C)p=s[0]; D)k=s;(29)有以下程序#includevoid fun(char *c){ while(*c){ if(*c>='a'&&*c<='z') *c=*c-('a'-'A');c++;}}main(){ char s[81];gets(s); fun(s); puts(s):}当执行程序时从键盘上输入Hello Beijing<回车>,则程序的输出结果是A)hello beijing B)Hello Beijing C)HELLO BEIJING D)hELLO Beijing(30)以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。
200303计算机二级c语言真题
一、选择题((1)~(40)每小题1分,(41)~(55)每小题2分,共60分)下列各题 A、B、C、D.四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
(1) 用8位无符号二进制数能表示的最大十进制数为A.127B.128C.255D.256(2) 在64位高档微机中,一个字长所占的二进制位数为A.8B.16C.32D.64(3) 在Windows环境下,为了复制一个对象,在用鼠标拖动该对象时应同时按住A.Alt键B.Esc键C.Shift键D.Ctrl键(4) 在Windows菜单中,暗淡(灰色)的命令项表示该命令A.暂时不能用B.正在执行C.包含下一层菜单D.包含对话框(5) 在DOS环境下,为了得到TYPE命令的帮助信息,正确的DOS命令为A.TYPEB.TYPE/HC.TYPE/*D.TYPE/?(6) 下列选项中,能作为合法DOS文件名的是A.ANP/A.DATB.ABCCOMC.ECD.BASICD.XY+Z.TXT(7) 下列叙述中正确的是A.在Windows环境下,最大化的窗口是不能移动的B.在Windows环境下,应用程序窗口最小化后,该应用程序暂停执行C.在Windows环境下,只有最小化的窗口才能关闭D.在Windows环境下,不能关闭最大化的窗口(8) 在Windows环境下,工具栏中的复制按钮是A.打印机图标B.剪刀标志C.复制标志D.粘贴标志(9) 在Windows98环境下,若要将整个屏幕上显示的内容存入剪贴板,可以按A.Ctrl+PrintScreen键B.Alt+PrintScree键C.Shift+PrintScreen键D.PrintScreen键(10) 目前,计算机病毒扩散最快的途径是A.通过软件复制B.通过网络传播C.通过磁盘考贝D.运行游戏软件(11) 以下叙述中正确的是A.C语言比其他语言高级B.C语言可以不用编译就能被计算机识别执行C.C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D.C语言出现的最晚,具有其他语言的一切优点(12) C语言中用于结构化程序设计的三种基本结构是A.顺序结构、选择结构、循环结构B.if、switch、breakC.for、while、do-whileD.if、for、continue(13) 在一个C程序中A.main函数必须出现在所有函数之前B.main函数可以在任何地方出现C.main函数必须出现在所有函数之后D.main函(14) 下列叙述中正确的是A.C语言中既有逻辑类型也有集合类型B.C语言中没有逻辑类型但有集合类型C.C语言中有逻辑类型但没有集合类型D.C语言中既没有逻辑类型也没有集合类型(15) 下列关于C语言用户标识符的叙述中正确的是A.用户标识符中可以出现在下划线和中划线(减号)B.用户标识符中不可以出现中划线,但可以出现下划线C.用户标识符中可以出现下划线,但不可以放在用户标识符的开头D.用户标识符中可以出现在下划线和数字,它们都可以放在用户标识符的开头(16) 若有以下程序段(n所赋的是八进制数)int m=32767,n=032767printf("%d,%o/n",m,n);执行后输出结果是A.32767,32767B.32767,032767C.32767,77777D.32767,077777(17) 下列关于单目运算符++、--的叙述中正确的是A.它们的运算对象可以是任何变量和常量B.它们的运算对象可以是char型变量和int型变量,但不能是float型变量C.它们的运算对象可以是int型变量,但不能是double型变量和float型变量D.它们的运算对象可以是char型变量、int型变量和float型变量(18) 若有以下程序段int m=0xabc,n=0xabc;m-=n;printf("%X\n",m);执行后输出结果是A.0X0B.0x0C.0D.0XABC(19) 有以下程序段int m=0,n=0; char c='a';scanf("%d%c%d",&m,&c,&n);printf("%d,%c,%d\n",m,c,n);若从键盘上输入:10A10<回车>,则输出结果是:A.10,A,10B.10,a,10C.10,a,0D.10,A,0(20) 有以下程序main(){ int i;for(i=0;i<3;i++)switch(i){ case 1: printf("%d",i);case 2: printf("%d",i);default: printf("%d",i);}}执行后输出结果是A.011122B.012C.012020D.120(21) 有以下程序main(){ int i=1,j=1,k=2;if((j++‖k++)&&i++) printf("%d,%d,%d\n",i,j,k); }执行后输出结果是A.1,1,2B.2,2,1C.2,2,2D.2,2,3(22) 有以下程序main(){ int a=5,b=4,c=3,d=2;if(a>b>C.printf("%d\n",D.;else if((c-1>=D.==1)printf("%d\n",d+1);elseprintf("%d\n",d+2)}执行后输出结果是A.2B.3C.4D.编译时有错,无结果(23) 有以下程序main(){ int p[7]={11,13,14,15,16,17,18},i=0,k=0; while(i<7&&p[i]%2){k=k+p[i];i++;}printf("%d\n",k);}执行后输出结果是A.58B.56C.45D.24(24) 有以下程序main(){ int i=0,s=0;do{if(i%2){i++;continue;}i++;s +=i;}while(i<7);printf("%d\n",s);}执行后输出结果是A.16B.12C.28D.21(25) 有以下程序main(){ int i=10,j=1;printf("%d,%d\n",i--,++j);}执行后输出结果是A.9,2B.10,2C.9,1D.10,1(26) 有以下程序main(){ char a,b,c,*d;a='\'; b='\xbc';c='\0xab'; d="\017";print("%c%c%c\n",a,b,c,*D.;}编译时出现错误,以下叙述中正确的是A.程序中只有a='\';语句不正确B.b='\xbc';语句不正确C.d="\0127";语句不正确D.a='\';和c='\0xab';语句都不正确(27) 有以下程序intfl(intx,int y){ return x>y?x:y; }int f2(intx,int y){ return x>y?y:x; }main(){ int a=4,b=3,c=5,d,e,f;d=f1(a,B.; d=f1(d,C.;e=f2(a,B.; e=f2(e,C.;f=a+b+c-d-e;printf("%d,%d,%d\n",d,f,e);}执行后输出结果是A.3,4,5B.5,3,4C.5,4,3D.3,5,4(28) 有如下程序void f(intx,int y){ int t;if(x}main(){ int a=4,b=3,c=5;f(a,B.; f(a,C.; f(b,C.;printf("%d,%d,%d\n",a,b, C.;}执行后输出结果是A.3,4,5B.5,3,4C.5,4,3D.4,3,5(29) 若有以下定义和语句#includeint a=4,b=3,*p,*q,*w;p=&a; q=&b; w=q; q=NULL; 则以下选项中错误的语句是A.*q=0;B.w=p;C.*p=a;D.*p=*w;(30) 有以下程序int *f(int *x,int *y) { if(*x<*y)return x;elsereturn y;}main(){ int a=7,b=8,*p,*q,*r}; }执行后输出结果是A.7,8,8B.7,8,7C.8,7,7D.8,7,8(31) 有以下程序main(){ char *s[]={"one","two","three"},*p;p=s[1];printf("%c,%s\n",*(p+1),s[0]);}执行后输出结果是A.n,twoB.t,one C)w,oneD.o,two(32) 有以下程序main(){ int x[8]={8,7,6,5,0,0},*s;s=x+3printf("%d\n",s[2]);}执行后输出结果是A.随机值B.0C.5D.6 (33) 以下能正确定义数组并正确赋初值的语句是A.int N=5,b[N][N];B.int a[1][2]={{1},{3}};C.int c[2][]={{1,2},{3,4}};D.int d[3][2]={{1,2},{34}};(34) 有以下程序main(){ int m[][3]={1,4,7,2,5,8,3,6,9};inti,j,k=2;for(i=0;i<3;i++){ printf("%d",m[k][i]); }}执行后输出结果是A.4 5 6B.2 5 8C.3 6 9D.7 8 9(35) 以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。
全国计算机等级考试二级C语言程序设计真题精选3(含答案)
全国计算机等级考试二级C语言程序设计真题精选3一、单项选择题1.下列关于C语言文件的叙述中正确的是()。
A.文件由一系列数据依次排列组成,只能构成二进制文件B.文件由结构序列组成,可以构成二进制文件或文本文件C.文件由数据序列组成,可以构成二进制文件或文本文件√D.文件由字符序列组成,其类型只能是文本文件解析:C语言将文件看作是一个字符(字节)的序列,即由一个一个字符(字节)数据顺序组成。
根据数据的组成形式,可将文件分为两种:①ASCII文件,又称文本(text)文件,它的每一个字节可放一个ASCII码,代表一个字符;②二进制文件,是把内存中的数据按其在内存中的存储形式原样输出到磁盘上存放。
所以C文件就是一个字节流或一个二进制流。
2.有以下程序:#includ<stdio.h>main()inm=1,n=2,*p=&m,*q=&n,*r; r=p,p=q;q=r; printf("%d,%d,%d,%",m,n,*p,*q);}程序运行后的输出结果是()。
A.1,2,1,2B.1,2.2,1 √C.2,1,2,1D.2,1.1,2解析:本题定义了两个整型变量,然后用两个指针分别指向这两个整型变量,接着对指针进行交换,那么原来指向第一个整数的指针将指向第二个整数,原来指向第二个整数的指针将指向第一个整数。
3.有以下程序:#includ<stdio.h>#include<string.h>strucAina;chab[10];doublc;};strucf (struct);main()struca={1001,"ZhangDa",1098.0}; a=f(a);printf ("%d,%s,%6.1",a.a,a.b,a.c);}strucf(struct)t.a=1002;strcpy(t.b,"ChangRong");t.c=1202.0;returt;}程序运行后的输出结果是()。
计算机二级考试真题及答案c语言
计算机二级考试真题及答案c语言一、单项选择题(每题1分,共20分)1. 在C语言中,以下哪个关键字用于声明函数?A. structB. unionC. intD. void答案:D2. 若有定义int a=5; 则执行以下语句后,变量a的值是多少?A. a=(a++)+(++a)+a;B. a=a--+(++a)+a;C. a=(a++)+(++a)+a--;D. a=(a++)+(++a)+a--;答案:A3. 在C语言中,以下哪个运算符用于计算两个数的乘积?A. /B. %C. *D. ^答案:C4. 下列哪个选项是C语言中合法的字符常量?A. 'a'B. "a"C. 'ab'D. '\t'答案:D5. 在C语言中,以下哪个选项是合法的数组声明?A. int a[5];B. int a[];C. int a[5][5];D. int a[5,5];答案:A6. 若有定义int x=10; 则执行以下语句后,变量x的值是多少?A. x=x+++x;B. x=++x+x--;C. x=x--+x++;D. x=x+++x--;答案:B7. 在C语言中,以下哪个关键字用于声明一个结构体?A. structB. unionC. enumD. typedef答案:A8. 在C语言中,以下哪个选项是合法的指针声明?A. int *p;B. int *p[];C. int (*p)();D. int (*p)[5];答案:A9. 在C语言中,以下哪个选项是合法的循环语句?A. for(;;)B. while(1)C. do{}while(0)D. all of the above答案:D10. 在C语言中,以下哪个选项是合法的函数声明?A. int func();B. void func(int a);C. int func(int a, int b);D. all of the above答案:D11. 在C语言中,以下哪个选项是合法的宏定义?A. #define PI 3.14159B. #define PI 3.14159fC. #define PI 3.14159LD. all of the above答案:A12. 在C语言中,以下哪个选项是合法的文件操作函数?A. fopenB. fcloseC. freadD. all of the above答案:D13. 在C语言中,以下哪个选项是合法的字符串操作函数?A. strcpyB. strncpyC. strcatD. all of the above答案:D14. 在C语言中,以下哪个选项是合法的动态内存分配函数?A. mallocB. callocC. reallocD. all of the above答案:D15. 在C语言中,以下哪个选项是合法的位操作运算符?A. &B. |C. ^D. all of the above答案:D16. 在C语言中,以下哪个选项是合法的预处理指令?A. #includeB. #defineC. #ifdefD. all of the above答案:D17. 在C语言中,以下哪个选项是合法的类型转换运算符?A. (int)xB. (float)xC. (char)xD. all of the above答案:D18. 在C语言中,以下哪个选项是合法的条件运算符?A. ?B. :C. ||D. &&答案:A19. 在C语言中,以下哪个选项是合法的多维数组声明?A. int a[5][5];B. int a[][5];C. int a[5][];D. int a[][];答案:A20. 在C语言中,以下哪个选项是合法的枚举类型声明?A. enum color {red, green, blue};B. enum {red, green, blue};C. enum color {0, 1, 2};D. all of the above答案:D二、填空题(每题2分,共20分)1. 在C语言中,使用关键字________声明一个函数。
计算机二级考试c语言试题及答案
计算机二级考试c语言试题及答案一、选择题(每题2分,共20分)1. C语言中,下面哪个选项是合法的标识符?A. 2abcB. abc123C. _abcD. abc$答案:C2. 在C语言中,下面哪个运算符具有左结合性?A. 赋值运算符B. 逻辑运算符C. 位运算符D. 关系运算符答案:A3. 下面哪个函数用于实现字符串的复制?A. strcpyB. strcatC. strlenD. strcmp答案:A4. 下面哪个选项是正确的整型常量的表示方法?A. 1234BB. 0x1234C. 1234DD. 01234答案:D5. 下面哪个选项是合法的实型常量的表示方法?A. 123.B. 123.C. 123.D. 123.答案:C6. 在C语言中,下面哪个函数用于实现字符串的连接?A. strcpyB. strcatC. strlenD. strcmp答案:B7. 下面哪个选项是正确的关于一维数组的描述?A. 数组名是一个指向数组首元素的指针B. 数组名是一个指向数组首元素的指针C. 数组名是一个指向数组首元素的指针D. 数组名是一个指向数组首元素的指针答案:A8. 下面哪个选项是正确的关于二维数组的描述?A. 二维数组可以看作是多个一维数组的组合B. 二维数组可以看作是多个一维数组的组合C. 二维数组可以看作是多个一维数组的组合D. 二维数组可以看作是多个一维数组的组合答案:A9. 在C语言中,下面哪个函数用于实现字符串的比较?A. strcpyB. strcatC. strlenD. strcmp答案:D10. 下面哪个选项是合法的C语言语句?A. if(条件) {B. while(条件)C. do {D. }答案:D二、填空题(每题2分,共20分)1. 在C语言中,一个整型变量占用的存储空间为_____个字节。
答案:42. C语言中,定义一个整型变量的一般形式为_____。
答案:int 变量名;3. C语言中,定义一个实型变量的一般形式为_____。
3月计算机等级考试二级C语言笔试真题及参考答案
2010年3月计算机等级考试二级C语言笔试真题一、选择题(1)下列叙述中正确的是A)对长度为n的有序链表进行查找,最坏清况下需要的比较次数为nB)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)C)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)D)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(nlog2n)(2)算法的时问复杂度是指A)算法的执行时间B)算法所处理的数据量C)算法程序中的语司或指令条数D)算法在执行过程中所需要的基本运算次数(3)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。
下面属于系统软件的是A)编辑软件B)操作系统C)教务管理系统D)浏览器(4)软件(程序)调试的任务是A)诊断和改正程序中的错误B)尽可能多地发现程序中的错误C)发现并改正程序中的所有错误D)确定程序中错误的性质(5)数据流程图(DFD图)是A)软件概要设计的工具B)软件详细设计的工具C)结构化方法的需求分析工具D)面向对象方法的需求分析工具(6)软件生命周期可分为定义阶段,开发阶段和维护阶段。
详细设计属于A)定义阶段B)开发阶段C)维护阶段D)上述三个阶段(7)数据库管理系统中负责数据模式定义的语言是A)数据定义语言B)数据管理语言C)数据操纵语言D)数据控制语言(8)在学生管理的关系数据库中,存取一个学生信息的数据单位是A)文件B)数据库C)字段D)记录(9)数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的A)需求分析阶段B)逻辑设计一阶段C)概念设计阶段D)物理设计阶段(10)有两个关系R和T如下:则由关系K得到关系T的操作是A)选择B)投影C)交D)并(11)以下叙述正确的是A)C语言程序是由过程和函数组成的B)C语言函数可以嵌套调用,例如:fun(fun(x))C)C语言函数不可以单独编译D)C语言中除了main函数,其他函数不可作为单独文件形式存在(12)以下关于C语言的叙述中正确的是A)C语言中的注释不可以夹在变量名或关键字的中间B)C语言中的变量可以在使用之前的任何位置进行定义C)在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致D)C语言的数值常量中夹带空格不影响常量值的正确表示(13)以下C语言用户标识符中,不合法的是A)_1B)AaBcC)a_bD)a—b(14)若有定义:double a=22;int i=0,k=18;,则不符合C语言规定的赋值语句是A)a=a++,i++;B)i=(a+k)<=(i+k);C)i=a%11;D)i=!a;(15)有以下程序#includemain(){ char a,b,c,d;scanf(“%c%c”,&a,&b);c=getchar(); d=getchar();printf(“%c%c%c%cn”,a,b,c,d);}当执行程序时,按下列方式输入数据(从第1列开始,代表回车,注意:回车也是一个字符)1234则输出结果是A)1234B)12C)123D)1234(16)以i关于C语言数据类型使用的叙述中错误的是A)若要准确无误差的表示自然数,应本资.料来源于贵-州-学-习-网使用整数类型B)若要保存带有多位小数的数据,应使用双精度类型C)若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型D)若只处理“真”和“假”两种逻辑值,应使用逻辑类型(17)若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是A)1B)0C)2D)不知道a的值,不能确定(18)以下选项中与if(a==1)a=b; else a++;语句功能不同的switch语句是A)switch(a){case:a=b;break;default:a++;}B)switch(a==1){case 0:a=b;break;case 1:a++;}C)switch(a){default:a++;break;case 1:a=b;}D)switch(a==1){case 1:a=b;break;case 0:a++;}(19)有如下嵌套的if语句if (aif(aelse k=c;elseif(belse k=c;以下选项中与上述if语句等价的语句是A)k=(aB)k=(aC)k=(aD)k=(a(20)有以下程序#includemain(){in i,j,m=1;for(i=1;i<3;i++){for(j=3;j>O;j--){if(i*j)>3)break;m=i*j;}}printf("m=%dn",m);}程序运行后的输出结果是A)m=6B)m=2C)m=4D)m=5(21)有以下程序#include(stdio.h>main(){int a=l;b=2;for(;a<8;a++) {b+=a;a+=2;}printf("%d,%dn",a,b);}程序运行后的输出结果是A)9,18B)8,11C)7,11D)10,14(22)有以下程序,其中k的初值为八进制数#includemain(){int k=011;printf("%dn",k++);}程序运行后的输出结果是A)12B)11C)10D)9(23)下列语句组中,正确的是A)char *s;s="Olympic";B)char s[7];s="Olympic";C)char *s;s={"Olympic"};D)char s[7];s={"Olympic"};(24)以下关于return语句的叙述中正确的是A)一个自定义函数中必须有本文来源于贵州学习网WWW.GZU521.COM一条return语句B)一个自定义函数中可以根据不同情况设置多条return语句C)定义成void类型的函数中可以有带返回值的return语句D)没有return语句的自定义函数在执行结束时不能返回到调用处(25)下列选项中,能正确定义数组的语句是A)int num[0..2008];B)int num[];C)int N=2008;int num[N];D)#define N 2008int num[N];(26)有以下程序#includevoid fun(char *c,int d){*c=*c+1;d=d+1;printf("%c,%c,",*c,d);main(){char b='a',a='A';fun(&b,a);printf("%e,%en",b,a);}程序运行后的输出结果是A)b,B,b,AB)b,B,B,AC)a,B,B,aD)a,B,a,B(27)若有定义int(*Pt)[3];,则下列说法正确的是A)定义了基类型为int的三个指针变量B)定义了基类型为int的具有三个元素的指针数组ptC)定义了一个名为*pt、具有三个元素的整型数组D)定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组(28)设有定义double a[10],*s=a;,以下能够代表数组元素a[3]的是A)(*s)[3]B)*(s+3)C)*s[3]D)*s+3(29)有以下程序#include(stdio.h)main(){int a[5]={1,2,3,4,5},b[5]={O,2,1,3,0},i,s=0;for(i=0;i<5;i++) s=s+a[b[i]]);printf("%dn", s);}程序运行后的输出结果是A)6B)10C)11D)15(30)有以下程序#includemain(){int b [3][3]={O,1,2,0,1,2,O,1,2},i,j,t=1;for(i=0;i<3;i++)for(j=ij<=1;j++) t+=b[i][b[j][i]];printf("%dn",t);}程序运行后的输出结果是A)1B)3C)4D)9(31)若有以下定义和语句char s1[10]="abcd!",*s2="n123\";printf("%d %dn", strlen(s1),strlen(s2));则输出结果是A)5 5B)10 5C)10 7D)5 8(32)有以下程序#include#define N 8void fun(int *x,int i){*x=*(x+i);}main(){int a[N]={1,2,3,4,5,6,7,8},i;fun(a,2);for(i=O;i{printf("%d",a[i]);}printf("n");}程序运行后的输出结果是A)1313B)2234C)3234D)1234(33)有以下程序#includeint f(int t[],int n);main{ int a[4]={1,2,3,4},s;s=f(a,4); printf("%dn",s);}int f(int t[],int n){ if(n>0) return t[n-1]+f(t,n-1);else return 0;}程序运行后的输出结果是A)4B)1OC)14D)6(34)有以下程此资料转贴于贵州学习网序#includeint fun(){ static int x=1;x*2; return x;}main(){int i,s=1,for(i=1;i<=2;i++) s=fun();printf("%dn",s);}程序运行后的输出结果是A)OB)1C)4D)8(35)有以下程序#include#define SUB(a) (a)-(a)main(){ int a=2,b=3,c=5,d;d=SUB(a+b)*c;printf("%dn",d);}程序运行后的输出结果是A)0B)-12C)-20D)10(36)设有定义:struct complex{ int real,unreal;} data1={1,8},data2;则以下赋值语句中错误的是A)data2=data1;B)data2=(2,6);C)data2.real=data1.real;D)data2.real=data1.unreal;(37)有以下程序#include#includestruct A{ int a; char b[10]; double c;};void f(struct A t);main(){ struct A a={1001,"ZhangDa",1098.0};f(a); printf("%d,%s,%6.1fn",a.a,a.b,a.c);}void f(struct A t){ t.a=1002; strcpy(t.b,"ChangRong");t.c=1202.0;} 程序运行后的输出结果是(38)有以下定义和语句struct workers{ int num;char name[20];char c;struct{int day; int month; int year;}s;};struct workers w,*pw;pw=&w;能给w中year成员赋1980的语句是A)*pw.year=198O;B)w.year=1980;C)pw->year=1980;D)w.s.year=1980;(39)有以下程序#includemain(){ int a=2,b=2,c=2;printf("%dn",a/b&c);}程序运行后的输出结果是A)OB)1C)2D)3(40)有以下程序#includemain(){ FILE *fp;char str[10];fp=fopen("myfile.dat","w");fputs("abc",fp);fclose(fp);fpfopen("myfile.data","a++");fprintf(fp,"%d",28);rewind(fp);fscanf(fp,"%s",str); puts(str);fclose(fp);}程序运行后的输出结果是A)abcB) 28cC) abc28D)因类型不一致而出错二、填空题(1)一个队列的初始状态为空。
计算机等级考试二级C语言真题
计算机等级考试二级C语言真题计算机等级考试二级C语言真题导语:C语言之所以命名为C,是因为 C语言自Ken Thompson创造的B语言,而 B语言那么自BCPL语言。
下面是计算机二级考试C语言的真题,欢送参考!(1)以下表达中正确的选项是A.栈是“先进先出”的线性表B.队列是“先进先出”的线性表C.循环队列是非线性构造D.有序性表既可以采用顺序存储构造,也可以采用链式存储构造(2)支持子程序调用的数据构造是A.栈B.树C.队列D.二叉树(3)某二叉树有5个度为2的结点,那么该二叉树中的.叶子结点数是A.10B.8C.6D.4(4)以下排序方法中,最坏情况下比拟次数最少的是A.冒泡排序B.简单项选择择排序C.直接插入排序D.堆排序(5)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。
下面属于应用软件的是A.编译软件B.操作系统C.教务管理系统D.汇编程序(6)下面表达中错误的选项是A.软件测试的目的是发现错误并改正错误B.对被调试的程序进展“错误定位”是程序调试的必要步骤C.程序调试通常也称为DebugD.软件测试应严格执行测试方案,排除测试的随意性(7)耦合性和内聚性是对模块独立性度量的两个标准。
以下表达中正确的选项是A.进步耦合性降低内聚性有利于进步模块的独立性B.降低耦合性进步内聚性有利于进步模块的独立性C.耦合性是指一个模块内部各个元素间彼此结合的严密程度D.内聚性是指模块间互相连接的严密程度(8)数据库应用系统中的核心问题是A.数据库设计B.数据库系统设计C.数据库维护D.数据库管理员培训(9)有两个关系R,S如下:RABCa32b01c21SABa3b0c2由关系R通过运算得到关系S,那么所使用的运算为A.选择B.投影C.插入D.连接(10)将E-R图转换为关系形式时,实体和联络都可以表示为A.属性B.键C.关系D.域。
二级C语言笔试-431_真题-无答案
二级C语言笔试-431(总分99,考试时间90分钟)一、选择题1. 下列二叉树描述中,正确的是( )。
A) 任何一棵二叉树必须有一个度为2的结点 B) 二叉树的度可以小于2C) 非空二叉树有0个或1个根结点 D) 至少有2个根结点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. 某二叉树共有60个叶子结点与50个度为1的结点,则该二叉树中的总结点数为( )。
A) 148 B) 169 C) 182 D) 1988. 数据厍系统的核心是( )。
A) 数据模型 B) 软件开发 C) 数据库设计 D) 数据库管理系统9. 在16位C编译系统上,若定义long a;,则能给变量a赋值40000的正确语句是______。
A) a=20000+20000; B) a=4000*10;C) a=30000+10000; D) a=4000L*1OL;10. 下述关于数据库系统的叙述中正确的是______。
A) 数据库系统减少了数据冗余B) 数据库系统避免了—切冗余C) 数据库系统中数据的—致性是指数据类型的—致D) 数据库系统比文件系统能管理更多的数据11. 以下叙述中错误的是( )。
A)C语言编写的函数源程序,其文件名后缀可以是.CB)C语言编写的函数都可以作为一个独立的源程序文件C)C语言编写的每个函数都可以进行独立的编译并执行D)一个C语言程序只能有一个主函数12. 以下程序段中与语句k=a>b? (b>c? 1:0):0;功能等价的是( )。
国家二级C语言C语言基础知识机试-试卷3_真题-无答案
国家二级C语言(C语言基础知识)机试-试卷3(总分50,考试时间90分钟)1. 选择题1. 以下叙述中错误的是A. C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件B. 用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中C. C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令D. C语言源程序经编译后生成后缀为.obj的目标程序2. 下列叙述中错误的是A. C程序可以由多个程序文件组成B. 一个C语言程序只能实现一种算法C. C程序可以由一个或多个函数组成D. 一个C函数可以单独作为一个C程序文件存在3. 以下叙述中错误的是A. 结构化程序由顺序、分支、循环三种基本结构组成B. C语言是一种结构化程序设计语言C. 使用三种基本结构构成的程序只能解决简单问题D. 结构化程序设计提倡模块化的设计方法4. 以下叙述中错误的是A. 算法正确的程序最终一定会结束B. 算法正确的程序可以有零个输入C. 算法正确的程序可以有零个输出D. 算法正确的程序对于相同的输入一定有相同的结果5. 以下选项中关于程序模块化的叙述错误的是A. 把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块B. 可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序C. 把程序分成若干相对独立的模块,可便于编码和调试D. 可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序6. C语言源程序名的后缀是A. .exeB. .objC. .cD. .cp7. 关于算法,以下叙述中错误的是A. 同一个算法对于相同的输入必能得出相同的结果B. 一个算法对于某个输入的循环次数是可以事先估计出来的C. 某个算法可能会没有输入D. 任何算法都能转换成计算机高级语言的程序,并在有限时间内运行完毕8. 以下不能用于描述算法的是A. 程序语句B. E-R图C. 伪代码和流程图D. 文字叙述9. 以下叙述中正确的是A. 程序的算法只能使用流程图来描述B. N—S流程图只能描述简单的顺序结构的程序C. 计算机可以直接处理C语言程序,不必进行任何转换D. 结构化程序的三种基本结构是循环结构、选择结构、顺序结构10. 以下叙述中正确的是A. 在C语言程序设计中,所有函数必须保存在一个源文件中’B. 在算法设计时,可以把复杂任务分解成一些简单的子任务C. 只要包含了三种基本结构的算法就是结构化程序D. 结构化程序必须包含所有的三种基本结构,缺一不可11. 以下叙述中正确的是A. 每个后缀为.c的C语言源程序都应该包含一个main函数B. 在C语言程序中,main函数必须放在其他函数的最前面C. 每个后缀为.c的C语言源程序都可以单独进行编译D. 在C语言程序中,只有main函数才可单独进行编译12. 有以下程序#include main(){ int s,t,A=10;double B=6:s=sizeof(A);t=sizeof(B);printf("%d,%d\n",s,t);} 在VC6平台上编译运行,程序运行后的输出结果是A. 4,4B. 2,4C. 4,8D. 10,613. 对于一个正常运行的C程序,以下叙述中正确的是A. 程序的执行总是从程序的第一个函数开始,在main函数结束.B. 程序的执行总是从main函数开始,在程序的最后一个函数中结束C. 程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束D. 程序的执行总是从main函数开始14. 计算机能直接执行的程序是A. 目标程序B. 可执行程序C. 汇编程序D. 源程序15. 以下叙述中正确的是A. 可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行B. C语言程序将从源程序中第一个函数开始执行C. main的各种大小写拼写形式都可以作为主函数名,如:MAIN,Main等D. C语言规定必须用main作为主函数名,程序将从此开始执行16. 以下叙述中错误的是A. C程序在运行过程中所有计算都以二进制方式进行B. 所有C程序都需要编译链接无误后才能运行C. C程序在运行过程中所有计算都以十进制方式进行D. C程序中字符变量存放的是字符的ASCII值17. 下列叙述中正确的是A. 在C程序中main函数的位置是固定的B. C程序中所有函数之间都可以相互调用C. 每个C程序文件中都必须要有一个main函数D. 在C程序的函数中不能定义另一个函数18. 以下叙述正确的是A. C语言程序是由过程和函数组成的B. C语言函数可以嵌套调用,例如:fun(fun(x))C. C语言函数不可以单独编译D. C语言中除了main函数,其他函数不可作为单独文件形式存在19. C语言程序的模块化通过以下哪个选项来实现A. 变量B. 程序行C. 函数D. 语句20. 以下叙述中正确的是A. 程序的主函数名除main外,也可以使用Main或mainB. 在C程序中,模块化主要是通过函数来实现的C. 程序可以包含多个主函数,但总是从第一个主函数处开始执行D. 书写源程序时,必须注意缩进格式,否则程序会有编译错误21. 以下叙述中正确的是A. C语言程序总是从最前面的函数开始执行B. C语言程序总是从main函数开始执行C. C语言程序中main函数必须放在程序的开始位置D. C语言程序所调用的函数必须放在main函数的前面22. C语言主要是借助以下哪种手段来实现程序模块化A. 定义常量和外部变量B. 使用丰富的数据类型C. 使用三种基本结构语句D. 定义函数23. 以下四个程序中,完全正确的是A. #include<stdio.h>main();main() {/*/Programming /*/printf("programming!\n");}B. #include<stdio.h>{/*programming*/printf("programming!\n");}C. #include<stdio.h>main() main() {/*/*programming*/*/printf("programming!\n");}D. include<stdio.h>{/*programming*/print("programming!\n");}24. 以下关于结构化程序设计的叙述中正确的是A. 结构化程序使用goto语句会很便捷B. 一个结构化程序必须同时由顺序、分支、循环三种结构组成C. 由三种基本结构构成的程序只能解决小规模的问题D. 在C语言中,程序的模块化是利用函数实现的25. 以下叙述中正确的是A. C程序中的每一行只能写一条语句B. 简单C语句必须以分号结束C. C语言程序中的注释必须与语句写在同一行D. C语句必须在一行内写完。
二级C语言-3-1_真题(含答案与解析)-交互
二级C语言-3-1(总分82, 做题时间90分钟)一、选择题1.设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是______。
• A. k++• B. k+=1• C. ++k• D. k+1SSS_SIMPLE_SINA B C D分值: 2答案:A[解析] 凡是表达式都有一个值,即运算结果。
k++的表达式值为0,k再进行增1运算;k+=1是赋值表达式,其作用是取k中的值加1后再放到k变量中,即表达式的值为1;++k是先进行k增1运算,表达式的值为1;k+1=0+1,其运算的结果为1。
所以选项A中表达式的值与其他三个表达式不同。
2.以下程序的输出结果是void fun(float *p1,float *p2,float *s){ s=(float *)calloc(1,sizeof(float));*s=*p1+*p2++;}main(){ float s[2]={1.1,2.2},b[2]=<10.0,20.0},*s==a;fun(a,b,s);printf("%5.2f\n",* s);}• A. 11.10• B. 12.00• C. 21.10• D. 1.10SSS_SIMPLE_SINA B C D分值: 1答案:D3.以下函数返回a所指数组中最小的值所在的下标值fun(int *a,int n){ int i,j=0,p;p=j;for(i=j;i<n;i++)if(a[i]<a[p]) ______;return(p);}在横线处应填入的是A)i=p B)a[p]=a[i] C)p=j D)p=iSSS_SIMPLE_SINA B C D分值: 2答案:D[解析] 该程序先判断a[i]<a[p],如果条件为真,则a[i]比当前设定的最小值小(p保留的当前最小元素的下标),那么将i赋给p,即将比较过的最小元素下标保留在p中,作为下面判断的标准。
全国计算机二级c考试真题及答案
全国计算机二级c考试真题及答案一、选择题(每题2分,共20分)1. 下列关于C语言的描述中,错误的是:A. C语言是一种高级编程语言B. C语言具有丰富的数据类型C. C语言可以直接操作硬件D. C语言不支持面向对象编程答案:D2. 在C语言中,用于定义一个整型变量的关键字是:A. intB. floatC. doubleD. char答案:A3. 若有以下代码片段:```cint a = 10;int b = 20;int c;c = a + b;```则变量c的值是:A. 10B. 20C. 30D. 40答案:C4. 在C语言中,以下哪个运算符用于计算两个数的乘积:A. +B. -C. *D. /答案:C5. 在C语言中,以下哪个函数用于计算一个数的平方根:A. sqrt()B. pow()C. log()D. abs()答案:A6. 在C语言中,以下哪个关键字用于声明一个函数:A. intB. voidC. returnD. function答案:B7. 在C语言中,以下哪个关键字用于定义一个循环结构:A. ifB. whileC. forD. switch答案:C8. 在C语言中,以下哪个关键字用于定义一个条件判断结构:A. ifB. elseC. switchD. case答案:A9. 在C语言中,以下哪个函数用于将字符串转换为整数:A. atoi()B. atof()C. strcpy()D. strcat()答案:A10. 在C语言中,以下哪个函数用于输出格式化的字符串:A. printf()B. scanf()C. gets()D. puts()答案:A二、填空题(每题2分,共20分)1. C语言中,用于声明一个字符型变量的关键字是________。
答案:char2. C语言中,用于声明一个浮点型变量的关键字是________。
答案:float3. 在C语言中,________运算符用于比较两个数是否相等。
湖南省计算机二级3[1].(6分)程序阅读填空
湖南省计算机二级3[1].(6分)程序阅读填空程序填空题一1. 下面C语言程序将两个递增有序的数值a和b 合并一个数组c,并保持递增次序,最后输出数组c. #include < stodio.h>#define M6#define N5main( ){int a[M]={1,3,5,7,9,11} b[N]={2,4,6,8,10}int c[M+N]int i ,j, k;i=j=k=0while( 1 )if a[i]<b[j]< bdsfid="73" p=""></b[j]<>c[k++]=a[i++];else c[k++]=b[j++];while( 2 )c[k++]=a[i++];while(j<n)< bdsfid="79" p=""></n)<>c[k++]=( 3 )for(k=0;k<( 4 );k[++])printf(%dxt,c[k]; )其中(1)(2)(3)(4)处分别填一数据,使程序达到其功能。
答案:1:i<m&&j<n< bdsfid="86" p=""></m&&j<n<>2:i<m;< bdsfid="88" p=""></m;<>3:b[j++];4:M+N2.下面h函数的功能是计算如下数学函数H的值。
请填空。
double fgh(double(*f)(double a),double (* g)(double b),double x,double y){return(【1】);}double h(double a,double b)return(fgh(sin,cos,a,b)* fgh(【2】));}解:(1)(*f)(x+y)/(*g)(y-x)(2)cos,sin,a,b[解析]本题考察的是函数的声明。
全国计算机等级考试二级C语言笔试试题及答案解析
全国计算机等级考试二级C语言笔试试题及答案解析一、选择题1. 以下哪个选项不是C语言的关键字?A. autoB. includeC. ifD. static答案:B解析:C语言中,auto、if和static都是关键字,而include不是关键字,它是预处理命令的一部分。
2. 在C语言中,下列哪个选项是非法的整型常量?A. 012B. 0x123C. 0X123D. 0123答案:D解析:C语言中,以0开头的数字表示八进制常量,以0x 或0X开头的数字表示十六进制常量。
选项A表示八进制常量,选项B和C表示十六进制常量,而选项D表示非法的常量。
3. 有以下程序段:```cint a = 5, b = 4;printf("%d\n", a/b);```输出结果是:A. 1B. 1.25C. 5D. 4答案:A解析:在C语言中,整数除法的结果仍然是整数。
因此,5除以4的结果为1。
4. 以下哪个函数用于动态分配内存?A. malloc()B. alloc()C. new()D. calloc()答案:A解析:在C语言中,malloc()函数用于动态分配内存。
calloc()函数也用于动态分配内存,但会初始化分配的内存空间。
alloc()和new()不是C语言中的标准函数。
二、填空题1. 在C语言中,若要定义一个指向整型的指针变量,应使用______。
答案:int解析:在C语言中,使用int 来定义一个指向整型的指针变量。
2. 有以下程序段:```cint a = 5, b = 3;printf("%d\n", a % b);```输出结果是______。
答案:2解析:在C语言中,%运算符表示求余运算。
因此,5除以3的余数为2。
3. 有以下程序段:```cint a = 5;printf("%d\n", sizeof(a));```输出结果是______。
近三年计算机二级c语言考试试题和答案
近三年计算机二级c语言考试试题和答案1. 题目:写出C语言中数组的声明方式。
答案:在C语言中,数组的声明方式如下:```cint array_name[array_size];```其中`array_name`是数组的名称,`array_size`是数组中元素的数量。
2. 题目:请写出C语言中结构体的定义方式。
答案:在C语言中,结构体的定义方式如下:```cstruct struct_name {type1 member1;type2 member2;...typeN memberN;};```其中`struct_name`是结构体的名称,`type1`、`type2`、...、`typeN`是成员变量的类型,`member1`、`member2`、...、`memberN`是成员变量的名称。
3. 题目:说明C语言中指针和数组的关系。
答案:在C语言中,指针和数组有密切的关系。
数组名可以被看作指向数组第一个元素的指针。
例如,如果有一个数组`int arr[10];`,那么`arr`实际上指向数组的第一个元素,即`arr`等价于`&arr[0]`。
通过指针运算,可以访问数组的任意元素,如`arr[i]`可以通过`*(arr + i)`来访问。
4. 题目:解释C语言中的函数原型是什么,并给出一个例子。
答案:函数原型是C语言中声明函数的一种方式,它指定了函数的返回类型、函数名以及参数列表的形式。
函数原型不包含函数体,只用于声明函数的存在和接口。
例如:```cint add(int a, int b);```这个函数原型声明了一个名为`add`的函数,它接受两个`int`类型的参数,并返回一个`int`类型的值。
5. 题目:请写出C语言中如何使用`switch`语句。
答案:在C语言中,`switch`语句用于基于不同的情况执行不同的代码块。
其基本语法如下:```cswitch(expression) {case value1:// code blockbreak;case value2:// code blockbreak;...default:// code block}```其中`expression`是要评估的表达式,`value1`、`value2`、...是与表达式值比较的值。
2023年3月计算机二级C语言笔试真题及答案版
3月二级c语言笔试真题及答案试题:一、选择题(11) 如下论述对旳旳是A)C语言程序是由过程和函数构成旳B)C语言函数可以嵌套调用,例如:fun(fun(x))C)C语言函数不可以单独编译D)C语言中除了main函数,其他函数不可以作为单独文献形式存在(12) 如下有关C语言旳论述中对旳旳是A)C语言中旳注释不可以夹在变量名或关键字旳中间B)C语言中旳变量可以再使用之前旳任何位置进行定义C)在C语言算术旳书写中,运算符两侧旳运算数类型必须一致D)C旳数值常量中夹带空格不影响常量值旳对旳表达(15)#include <stdio.h>void main(){char a,b,c,d;scanf(”%c%c”,&a,&b);c=getchar(); d=getchar();printf(”%c%c%c%c\n”,a,b,c,d);}当执行程序时,按下列方式输入数据(从第一列开始,<CR>代表回车,注意:回车是一种字符)12<CR>34<CR>则输出成果是:A、1234B、12C、12D、123 34 16、如下有关C语言数据类型使用旳论述中错误旳是:A、若要精确无误旳表达自然数,应使用整数类型。
B、若要保留带有多位小数旳数据,应使用双精度类型。
C、若要处理如”人员信息”等具有不一样类型旳有关数据,应自定义构造体类型。
D、若只处理”真”和”假”两种逻辑值,应使用逻辑类型。
(24)如下有关return语句旳论述中对旳旳是A)一种自定义函数中必须有一条return语句B) 一种自定义函数中可以根据不一样状况设置多条return语句C)定义成viod类型旳函数中可以有带返回值旳return语句D)没有return语句旳自定义函数在执行结束时不能返回到调用处(25)下列选项中,可以对旳定义数组旳语句是A)int num[0..]; B) int num[];C) int N=; D) #define Nint num[N]; int num[N](26)有如下程序#include<stdio.h>void fun (char*c,int d){*c=*c+1;d=d+1;printf(”%c,%c,”,*c,d);}main(){char b=’a’,a=’A’;fun(&b,a); printf(”%c,%c\n”,b,a);}程序运行后旳输出成果是A)b,B,b,A B)b,B,B,A C)a,B,B,a D)a,B,a,B(27)若有定义int(*pt)[3];,则下列说法对旳旳是A)定义了基类型为int旳三个指针变量B)定义了基类型为int旳具有三个元素旳指针数组pt。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机二级 c 语言真题三一、选择题((1) ~(10) 每小题2 分,(11)-(50) 每小题1 分,共60 分)下列各题A)、B)、c) 、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
(1) 算法的时间复杂度是指_______。
A)执行算法程序所需要的时间B)算法程序的长度C)算法执行过程中所需要的基本运算次数D)算法程序中的指令条数答案:C评析:所谓算法的时间复杂度,是指执行算法所需要的计算工作量。
(2) 下列叙述中正确的是________。
A)线性表是线性结构B) 栈与队列是非线性结构C)线性链表是非线性结构D) 二叉树是线性结构答案:A评析:一般将数据结构分为两大类型:线性结构与非线性结构。
线性表、栈与队列、线性链表都是线性结构,而二叉树是非线性结构。
(3) 下面关于完全二叉树的叙述中,错误的是_________。
A)除了最后一层外,每一层上的结点数均达到最大值B)可能缺少若干个左右叶子结点C)完全二叉树一般不是满二叉树D)具有结点的完全二叉树的深度为[log2n]+1答案:B评析:满二叉树指除最后一层外每一层上所有结点都有两个子结点的二叉树。
完全二叉树指除最后一层外,每一层上的结点数均达到最大值,在最后一层上只缺少右边的若干子结点( 叶子结点) 的二叉树。
(4) 结构化程序设计主要强调的是_________。
A)程序的规模B) 程序的易读性c) 程序的执行效率D) 程序的可移植性答案:B评析:结构化程序设计主要强调的是结构化程序清晰易读,可理解性好,程序员能够进行逐步求精、程序证明和测试,以保证程序的正确性。
(5) 在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是________。
A)概要设计B)详细设计C)可行性分析D)需求分析答案:D评析:需求分析是对待开发软件提出的需求进行分析并给出详细定义,即准确地确定软件系统的功能。
编写软件规格说明书及初步的用户手册,提交评审。
(6) 数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。
下列图符名标识的图符不属于数据流图合法图符的是_________。
A)控制流B)加工C)数据存储D)源和潭答案:A评析:数据流图从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过程。
数据流图中的主要图形元素有:加工( 转换) 、数据流、存储文件( 数据源) 、源和潭。
(7) 软件需求分析一般应确定的是用户对软件的_________。
A)功能需求B)非功能需求C)性能需求D)功能需求和非功能需求答案:D评析:软件需求分析中需要构造一个完全的系统逻辑模型,理解用户提出的每一功能与性能要求,是用户明确自己的任务。
因此,需求分析应确定用户对软件的功能需求和非功能需求。
(8) 下述关于数据库系统的叙述中正确的是________。
A)数据库系统减少了数据冗余B)数据库系统避免了一切冗余C)数据库系统中数据的一致性是指数据类型的一致D)数据库系统比文件系统能管理更多的数据答案:A评析:由数据的共享自身又可极大地减少数据冗余性,不仅减少了不必要的存储空间,更为重要的是可以避免数据的不一致性。
所谓数据的一致性是指在系统中同一数据的不同出现应保持相同的值。
(9) 关系表中的每一横行称为一个________。
A)元组B)字段C)属性D)码答案:A评析:在关系数据库中,关系模型采用二维表来表示,简称" 表" 。
二维表是由表框架及表元组组成。
在表框架中,按行可以存放数据,每行数据称为元组。
(10) 数据库设计包括两个方面的设计内容,它们是________。
A)概念设计和逻辑设计B)模式设计和内模式设计C)内模式设计和物理设计D)结构特性设计和行为特性设计答案:A评析:数据库设计可分为概念设计与逻辑设计。
概念设计的目的是分析数据间内在语义关联,在此基础上建立一个数据的抽象模型。
逻辑设计的主要工作是将ER图转换为指定的RDBMS中的关系模型。
(11) 请读程序:#include<stdio .h>main(){int a ;float b ,c;scanf(" %2d%3P%4f',&a,&b,&c) ;printf(" \na=%d,b=%ec。
%f \n" ,a,b,c) ;}若运行时从键盘上输入9876543210l,则上面程序的输出结果是________。
A)a=98,b=765,c=432 1B)a=1 0,b=432,c=8765C)a=98,b=765 .000000,c=432 1 .000000D)a=98,b=765 .0,c=432 1 .0答案:C评析:scanf() 把用户从键盘录入的数字的第1、2 位存入整型变量a;把第3、4、5 位存入单精度实型变量b,把第6、7、8、9 位存入单精度实型变量c,用户录入的第10 位被scanf() 遗弃。
这时变量a、b、c 的值分别为:98、765.000000、4321.000000。
(12) 一个良好的算法由下面的基本结构组成,但不包括__________。
A)顺序结构B)选择结构c) 循环结构) 跳转结构答案:D评析:1966 年,Bohra 和Jacopini 提出了以下三种基本结构,用这三种基本结构作为表示一个良好算法的基本单元:1、顺序结构;2、选择结构;3、循环结构。
(13) 请选出以下程序的输出结果________。
#include<stdio .h>sub(x,y,z)int x,y,*z :{*z=y-x ;}main(){int a,b,c ;sub(10 ,5,&a) ;sub(7 ,a,&b);sub(a ,b,&c) ;printf(" %d,%d,%d\n" ,a,b,c) ;}A)5,2,3 B)-5 ,-12,-7 C)-5 ,-12,-17 D)5,-2,-7答案:B评析:sub() 函数的作用是将形参y 和x 的差赋给了z 指向的那个内存地址,所以在sub(10,5,&a /I ,10 和5 属于值传递, a 是属于地址传递,也就是 a 与z 指向了同一个存储单元,在执行函数后,a 的值随*z 变化,所以此次函数被调用后, a 的值为y-x=-5 ,同理可知,在sub(7,a,&b) 后,b 的值发生变化,其值为-5-7=-12 ,在sub(a,b,&c) 后,c 的值发生变化,其值为-12-(-5)=-7 。
(14) 下面程序在屏幕上的输出是________。
main(){printf("ab \b\b c") ;}A)ab\b\b c B)a c C)abc D)ab c答案:B评析:c 语言中允许使用一种特殊形式的字符常量,、就是以一个" \" 开头的字符序列,这样的字符称为" 转义字符" 。
常用的转义字符有:\n,换行;\t ,水平制表;\b,退格;\r ,回车。
(15) 若x 是整型变量,pb 是基类型为整型的指针变量,则正确的赋值表达式是_______。
A)pb=&x;B)pb=x ;C)*pb=&x ;D)*pb=*x答案:A评析:选项A将变量x 的地址赋给指针变量pb,使pb 指向x' 选项B是将x 的值当作地址赋给指针pb,Db指向一个地址等于x 值的内存单元;选项 c 将x 的地址赋给指针pb 指向的地址等于x 的内存单元。
(16) 设整型数i=5 ,则printf(" %d" ,i+++++i) ;的输出为________。
A)10 B)1l C)12 D)语法错误答案:D评析:c 语言中有基本的算术运算符(+ 、- 、* 、/) 还包括自增自减运算符(++ 、--) ,在c 语言解析表达式时,它总是进行贪婪咀嚼,这样,该表达式就被解析为i++ ++ +i ,显然该表达式不合 c 语言语法。
(17) 若要用下面的程序片段使指针变量p 指向一个存储整型变量的动态存储单元int *p;p=___________malloc(sizeof(im)) ;则应填入__________。
A)int B)int C)(*int) D)(int*)答案:D评析:不论p 是指向什么类型的指针变量,都可以通过强制类型转换的方法使之类型一致,强制类型转换的格式为( 数据类型+) 。
(18) 下面程序输出的结果是__________。
main(){int i=5,J=9 ,x;x=(I==j?i :(j=7)) ;printf(" \n%d,%d" ,I,J) ;}A)5,7 B)5,5 C)语法错误D)7,5答案:A评析:条件表达式的一般形式为:表达式I? 表达式2:表达式3;先求解表达式1,若为真则求解表达式2;若表达式l 的值为假,则求解表达式3。
本题中先判断i==j ,不等,执行j=7 ;然后执行x=7。
故本题为A。
(19) 若执行下面程序时从键盘上输入5,main(){int x :scanf(" %d" ,&x) ;if(x++>5)printf(" %d\n" ,x) ;else printf(" %d\n",x--) ;}则输出是________。
A)7 B)6 C)5 D)4答案:B评析:根据c 语言的语法,x++是在使用x 之后,再将x 的值加1,在if 语句中,x 的值为5,条件不成立,执行else 后面的语句,因为x 的值已经加1,为6,所以打印结果为6。
( 20)若有以下定义和语句:int a[]={l ,2,3,4,5,6,7,8,9,10} ,*p=a;则值为3 的表达式是_________。
A)p+=2,*(p++) B)p+=2,*++pC)p+=3,*p++ D)p+=2,++*p答案:A评析:引用一个数组元素,可以用:(1) 下标法,如a[i] 形式;(2) 指针法,如*(a+i) 或*(p+i) 。
数组的下标从0 开始,值为 3 的数组元素是a[2] 。
B、c 的内容为a[3] ,D将a[2] 前自加,结果为4。
(21) 设a、b 和c 都是int 型变量,且a=3、b=4、c=5,则下面的表达式中,值为0 的表达式是___________。
A)'a'&&'b' B)a<=b c)a ‖+c&&b-cD)!((a<b)&&!c ‖1)答案:D评析z 选项A:'a'&&'b' 是字符 a 与b 的相与,不为0;选项B:a<=b,由题中变量赋值可知,结果为1。