C语言开发基础(习题卷76)_第1页
C语言开发基础(习题卷76)_第2页
C语言开发基础(习题卷76)_第3页
C语言开发基础(习题卷76)_第4页
C语言开发基础(习题卷76)_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

试卷科目:C语言开发基础C语言开发基础(习题卷76)PAGE"pagenumber"pagenumber/SECTIONPAGES"numberofpages"numberofpagesC语言开发基础第1部分:单项选择题,共70题,每题只有一个正确答案,多选或少选均不得分。[单选题]1.设二叉树如下:则前序遍历为()。A)ABDEGCFHB)DBGEAFHCC)DGEBHFCAD)ABCDEFGH答案:A解析:前序遍历,即访问根结点在访问左子树和访问右子树之前。根结点A最先访问,在BDEG四个节点根结点前面访问,CHF三个节点在根结点后面访问,很容易排除BCD选项,答案选择A选项。另外,可以复习一下三种遍历方式的规则,本题中前序遍历为ABDEGCFH,中序遍历为DBGEAFHC,后序遍历为DGEBHFCA。[单选题]2.若有:chara[]="ABCD";charb[]={'A','B','C','D'};则____。A)a和b的字符串长度以及数组长度均相同B)a和b只是字符串长度相同C)a和b只是数组长度相同D)a比b的数组长度长答案:D解析:[单选题]3.下列选项中不属于结构化程序设计原则的是()。A)可封装B)自顶向下C)模块化D)逐步求精答案:A解析:结构化程序设计的基本原则包括:①模块化;②自顶向下;③逐步求精;④限制使用goto语句。可封装是面向对象的设计思想。答案选择A选项。[单选题]4.设有:inta=2,b=3,c=7,d=8,m=3,n=3;执行(m=a>b)&&(n=c>d)后的n值为A)0B)1C)2D)3答案:D解析:[单选题]5.在软件设计中,不属于过程设计工具的是()。A)PDL(过程设计语言)B)PAD图C)N-S图D)DFD图答案:D解析:数据流图(DFD图)软件定义阶段结构化分析方法常用的工具。软件设计包括概要设计和详细设计。其中,概要设计中常用的软件结构设计工具是结构图,又称程序结构图;详细设计中常见的过程设计工具有:程序流程图、N-S、PAD、HIPO、判定表和PDL(伪码)。答案选择D选项。[单选题]6.对下二叉树进行中序遍历的结果是()。A)ABCDEFGHB)ABDGEHCFC)GDBEHACFD)GDHEBFCA答案:C解析:二叉树的中序遍历过程:先中序遍历左子树,再访问根结点,最后中序遍历右子树。答案选择C选项。[单选题]7.设j为int型变量,则下面for循环语句执行结果是()For(j=7;j>3;j--){If(j%5==0)continue;Printf("%d",j);}A)764B)765C)76D)7654答案:A解析:[单选题]8.若x、i、j和k都是int型变量,则计算表达式?x=(i=4,j=16,k=32)?后,x的值为()。A)4B)16C)32D)52答案:C解析:[单选题]9.下列程序段执行后,s的值是()staticcharch[]="600";inta,s=0;for(a=0;ch[a]>='0'&&ch[a]<='9';a++)s=10*s+ch[a]-'0';A)600B)6C)0D)出错答案:A解析:[单选题]10.设循环队列为Q(1:m),其初始状态为front=rear=m。经过一系列入队与退队运算后,front=15,rear=20。现要在该循环队列中寻找最大值的元素,最坏情况下需要比较的次数为()。A)4B)6C)m-5D)m-6答案:A解析:循环队列顺序存储结构队列。循环队列中,rear指向队列中的队尾元素,front指向队头元素的前一个位置,本题中,在front指向的后一个位置和rear指向的位置之间,所有的元素均为队列中的元素。队列初始状态为front=rear=m,当front=15,rear=20时,队列中共有20-15(尾指针-头指针)=5个元素,寻找其中最大值的最坏情况是逐项比较,所以需比较4次。答案选择A选项。[单选题]11.C语言程序中可以对程序进行注释,注释部分必须用符号________括起来。A)?{?和?}?B)?[?和?]?C)??和?*/?D)?*/?和??答案:C解析:[单选题]12.将C源程序进行()可得到目标文件A)编辑B)编译C)连接D)拼接答案:B解析:[单选题]13.s1和s2已正确定义并分别指向两个字符串。若要求:当s1所指串大于s2所指串时,执行语句S;,则以下选项中正确的是______。A)if(s1>s2)S;B)if(strcmp(s1,s2))S;C)if(strcmp(s2,s1)>0)S;D)if(strcmp(s1,s2)>0)S;答案:D解析:[单选题]14.表示关系x<=y<=z的c语言表达式为()。A)(X<=Y)&&(Y<=Z)B)(X<=Y)AND(Y<=Z)C)(X<=Y<=Z)D)(X<=Y)&(Y<=Z)答案:A解析:[单选题]15.逻辑?异或?运算可描述为当且仅当a、b两个操作数中只有一个为真时才为真,其他情况下均为假。下面能够正确表示逻辑?异或?运算的表达式是A)al|bB)a&.&.bC)(a&.&.b)&.&.!(a||b)D)(al|b)&.&!(a&.&.b)答案:D解析:[单选题]16.已有声明和定义?typedefint*INTEGER;INTEGERp,*q;?,下面叙述正确的是_________。A)P是int型变量B)P是类型为int的指针变量C)Q是类型为int的指针变量D)程序中可用INTEGER代替int类型名答案:B解析:[单选题]17.以下二维数组c的定义形式是()。A)intc[3][]B)floatcC)doublec[3][4]D)floatc(3)(4)答案:C解析:[单选题]18.已知有声明?longx,y;",且x中整数的十进制表示有n位数字(4<n<10),若要求去掉整数x十进制表示中的最高位,用剩下的数字组成一个新的整数并保存到y中,则以下表达式中能正确实现这一功能的是()A)y=x/(10(n-1))B)y=x%(10*(n-1)C)y=x%(long)pow(10,n-1)D)y=x%(10(n-1)答案:C解析:[单选题]19.下列4个选项中,均是合法整型常量的是()。A)160-0xffff011B)-0xcdf010XeC)-01986,0120668D)-0x48a2e50x答案:A解析:[单选题]20.以下存储类型中,只有在使用时才为该类型的变量分配内存的是______。A)auto和staticB)auto和registerC)register和staticD)extern和register答案:B解析:[单选题]21.C语言程序的注释是()。A)由""开头,"*/"结尾B)由""开头,""结尾C)由"//"开头D)由""或"//"开头答案:A解析:[单选题]22.设n为整型变量,执行语句for(n=1;n++<4;);后,变量n的值是______。A)3B)4C)5D)6答案:C解析:[单选题]23.设inti=10;表达式30-i<=i<=9的值是()。A)9B)1C)20D)0答案:B解析:[单选题]24.8、C语言中的实型数据包括()。A)float和doubleB)int和floatC)float和charD)Dint和double答案:A解析:[单选题]25.若有chars1[]="abc",s2[20],*t=s2;gets(t);则下列语句中能够实现当字符串s1大于字符串s2时,输出s2的语句是()。A)if(strcmp(s2,s1)>0)puts(s2);B)if(strcmp(s1,t)>0)puts(s2);C)if(strcmp(s1,s1)>0)puts(s2);D)if(strcmp(s2,t)>0)puts(s2);答案:B解析:[单选题]26.设char*s="\ta\017bc";则指针变量s指向的字符串所占的字节数是。A)9B)5C)6D)7答案:C解析:[单选题]27.以下不正确的定义语句是()。A)charc1[]={'1','2','3','4','5'};B)doublex[5]={2.0,4.0,6.0,8.0,10.0};C)inty[5]={0,1,3,5,7,9};D)charc2[]={'\x10','\xa','\x8'};答案:C解析:题号:55779[单选题]28.以下程序段中,与其他三个功能不同的程序段是()。A)s=0;i=1;for(;;){s+=i;i++;if(i<=10)break;}B)s=0,i=1;for(;i<=10;){s+=i;i++;}C)s=0;for(i=1;i<=10;i++){s+=i;}D)for(s=0,i=1;i<=10;s+=i,i++);答案:A解析:BCD项都表示对1到10进行累加后赋给s,而A项中含break语句,循环体只执行一次,结束整个循环过程。答案选择A选项。[单选题]29.在定义intm[][3]={1,2,3,4,5,6};后,m[1][0]的值是()。A)4B)1C)2D)A5答案:A解析:[单选题]30.下面程序段执行后的输出结果是()。Intm=0256,n=256;Printf("%o%o",m,n);A)02560400B)0256256C)256400D)400400答案:C解析:[单选题]31.设a=1,b=2,c=3,则表达式a<b?a:c的结果为()A)0B)1C)2D)3答案:B解析:[单选题]32.阅读下列程序:main(){intn[3],i,j,k;for(i=0;i<3;i++)n[i]=0;k=2;for(i=0;i<k;i++)for(j=0;j<k;j++)n[j]=n[i]+1;for(i=0;i<3;i++)printf(''%d'',n[i]);printf(''\n'');}运行该程序,其输出结果是()。A)230B)330C)123D)321答案:B解析:[单选题]33.下列语句中,符合语法的赋值语句是A)a=10B)x=y==20C)i++D)m=2,n=5答案:B解析:[单选题]34.以下错误的描述是()A)break语句的功能是跳出正在执行的条件语句或循环语句B)break语句的作用是使程序的执行流程从一个语句块内部转移出去C)如果是嵌套循环,break能跳出所在的所有内外层循环D)在循环语句中使用break语句是为了使流程跳出循环体,提前结束循环答案:C解析:[单选题]35.阅读以下程序,程序运行后的输出结果是_()___.#include<stdio.h>voidmain(){intx;for(x=5;x>0;x--)if(x--<5)printf("%d,",x);elseprintf("%d,",x++);}A)4,3,2B)4,3,1,C)5,4,2D)5,3,1,答案:B解析:[单选题]36.对两个数组a和b进行如下初始化chara[]="ABCDEF";charb[]={'A','B','C','D','E','F'};则以下叙述正确的是。A)a与b数组完全相同B)a与b数组长度相同C)a和b中都存放字符串D)a数组比b数组长度长答案:D解析:[单选题]37.当说明一个结构体变量时系统分配给它的内存是().A)各成员所需内存量的总和B)结构中一个成员所需内存量C)成员中占内存量最大者所需的容量D)结构中最后一个成员所需内存量答案:A解析:[单选题]38.对于以下递归函数f,调用f(4),其返回值为()A)10B)11C)0D)以上均不是答案:D解析:[单选题]39.下列关于软件测试的目的和准则的叙述中,正确的是()。A)软件测试是证明软件没有错误B)主要目的是发现程序中的错误C)主要目的是确定程序中错误的位置D)测试最好由程序员自己来检查自己的程序答案:B解析:软件测试是程序的执行过程,目的是尽可能多的发现错误。程序调试基于软件测试时发现的错误,其任务是诊断和改正程序中的错误。答案选择B选项。[单选题]40.能正确表示逻辑关系:"a≥10或a≤0"的C语言表达式是().A)a>=10ora<=0B)a>=0|a<=10C)a>=10&&a<=0D)a>=10||a<=0答案:D解析:[单选题]41.现有程序:_x000D_main()_x000D_{_x000D_int*ptr,*p[5],i;_x000D_if((ptr=malloc(100*sizeof(int)))!=NULL)_x000D_{_x000D_p[0]=ptr;_x000D_for(i=1;iA)17142728B)07142228C)07132228D)07142128答案:D解析:[单选题]42.有如下程序#defineN2#defineMN+1#defineNUM2*M+1Main(){inti;For(i=1;i<=NUM;i++)printf("%d\n",i);}该程序中的for循环执行的次数是______。A)5B)6C)7D)8答案:B解析:[单选题]43.下列不是合法的字符常量是()。A)"a"B)'\n'C)'\\'D)'e'答案:A解析:P11字符型常量是用一对单引号括起来的任意字符。[单选题]44.若有说明语句?charc=?\72?;?,则变量c()。A)包含1个字符B)包含2个字符C)包含3个字符D)说明不合法,c的值不确定答案:A解析:[单选题]45.C语言的编译系统对宏命令的处理是_____A)在对源程序中其它成分正式编译之前进行的B)和C程序中的其它语句同时进行的C)在程序连接时进行的D)在程序运行时进行的答案:A解析:[单选题]46.程序调试的任务是()。A)设计测试用例B)验证程序的正确性C)发现程序中的错误D)诊断和改正程序中的错误答案:D解析:程序调试的任务是诊断和改正程序中的错误。[单选题]47.有以下程序(注:字符a的ASCII码值为97):#include<stdio.h>Main(){char*s={"abc"};do{printf("%d",*s%10);++s;}while(*s);}程序运行后的输出结果是()。A)789B)abcC)7890D)979899答案:A解析:因为小写字符a,b,c的ASCII的值分别为97,98,99,而在dowhile循环语句中,每次对字符的ASCII的值取余数并输出,所以分别输出7,8,9。[单选题]48.有以下程序:#includemain(){inti,j,k,a=5,b=6;i=(a==b)?++a:--b;j=a++;k=b;printf("%d,%d,%d\n",i,j,k);}程序的运行结果是()。A)7,6,5B)5,5,5C)7,5,5D)5,6,5答案:B解析:条件表达式i=(a==b)?++a:--b;中先执行a==b,值为假,根据三元运算符语法规则,执行--b,此时b为5,赋给i,i=5。j=a++,将a=5先赋给j,再进行a++,j=5,a=6,k=b=5,故最后输出的是5,5,5。答案选择B选项。[单选题]49.以下程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是A)anothernumberanotherB)anothernumberC)numbernumberD)anothernumbernumber答案:D解析:[单选题]50.已知:intx=0;,则表达式!x的值等于______。A)0B)1C)0.0D)1.0答案:B解析:[单选题]51.若有定义double*p;,且成功执行了语句:p=(double*)malloc(120);,则下面说法正确的是______。A)可以将p用作含有15个double型元素的数组B)可以将p用作含有30个float型元素的数组C)可以将一个长度小于120的字符串拷贝到p所指空间D)p所指空间为默认的int型数组,且有30个int型元素答案:A解析:[单选题]52.如有语句?intx,y=0,z,*p[3];p[0]=&x;p[1]=&y;p[2]=&z;?,以下表达式中有语法错误的是_________。A)Y++B)(*p[0])++C)(**(p+1))++D)P++答案:D解析:[单选题]53.合法的c语言标示符是A)_1B)1_C)1D)#1答案:A解析:[单选题]54.下列运算符中优先级最高的是()。A)!B)%C)-=D)&&答案:A解析:[单选题]55.输入一个字符串,将该字符串中的大写英文字母转换成对应的小写英文字母,而将小写英文字母转换成对应的大写英文字母,其余字符不变,然后输出转换后的字符串。#include<stdio.h>#include<string.h>#defineMAXN100Voidmain(){chars[MAXN];inti=0;printf(?Enterastring:\n?);scanf(?%s?,s);while(s[i]!=?\0?){if(s[i]>=?A?&&s[i]<=?Z?)1elseif(s[i]>=?a?&&s[i]<=?z?)s[i]+=?A?-?a?;i++;}printf(?newsrring:\n%s\n?,s);}1处应填入的程序代码为()A)s[i]+=?A?-?a?;B)s[i]+=?a?-?A?;C)s[i]+=?A?+?a?;D)s[i]+=?a?+?A?;答案:B解析:[单选题]56.在C语言中,要求运算数必须是整型的运算符是_______。A)/B)++C)*=D)%答案:D解析:[单选题]57.下面函数定义的头部正确的是A)intfun(inta[],b)B)intfun(inta[],inta)C)intfun(intA,intb)D)intfun(chara[][],intb)答案:C解析:[单选题]58.有函数调用语句fuc(rec1,rec2+rec3,(rec4,rec5));,该函数调用语句中,含有的实参个数是()。A)3B)4C)5D)有语法错答案:A解析:[单选题]59.设有以下语句TypedefstructS{intg;charh;}T;则下面叙述中正确的是______。A)可用S定义结构体变量B)可以用T定义结构体变量C)S是struct类型的变量D)T是structS类型的变量答案:B解析:[单选题]60.设a=8、b=10、c=7、d=8、m=2、n=6,执行(m=a<b)||(n=c>d)后n的值为______。A)1B)6C)3D)4答案:B解析:[单选题]61.Staticcharstr[10]="China";数组元素个数为()。A)5B)10C)6D)9答案:B解析:[单选题]62.在下列模式中,能够给出数据库物理存储结构与物理存取方法的是()。A)外模式B)内模式C)概念模式D)逻辑模式答案:B解析:数据库管理系统的三级模式包括:①外模式,也称子模式、用户模式,是指数据库用户所看到的数据结构,是用户看到的数据视图;②模式,也称逻辑模式,是数据库中对全体数据的逻辑结构和特性的描述,是所有用户所见到的数据视图的总和;③内模式,也称存储模式、物理模式,是指数据在数据库系统内的存储介质上的表示,是对数据的物理结构和存取方式的描述。答案选择B选项。[单选题]63.有以下程序main(){chara='a',b;printf("%c,",++a);printf("%c\n",b=a++);}程序运行后的输出结果是()A)b,bB)b,cC)a,bD)a,c答案:A解析:[单选题]64.若有说明:inta[10];则对数组元素的正确引用是。A)a[10]B)a[3,5]C)a(5)D)a[10-10]答案:D解析:[单选题]65.下面对C语言字符数组的描述中错误的是。A)字符数组可以存放字符串B)字符数组的字符串可以整体输入、输出C)可以在赋值语句中通过赋值运算符对字符数组整体赋值D)不可以用关系运算符对字符数组中的字符串进行比较答案:C解析:[单选题]66.在C#中,表达式(int)10/5*2.0的运行结果是()类型的数据A)intB)doubleC)floatD)编译错误答案:B解析:[单选题]67.已知:floatx=2,y;,则表达式y=x+3/2的值是___。A)3.5B)3.0C)2.0D)1.0答案:B解析:[单选题]68.下列关于栈叙述正确的是()。A)栈顶元素最先能被删除B)栈顶元素最后才能被删除C)栈底元素永远不能被删除D)栈底元素最先能被删除答案:A解析:栈是先进后出的数据结构,因此栈顶元素最后入栈却最先被删除,栈底元素最先入栈却最后被删除。答案选择A选项。[单选题]69.已有定义?charch[10]={0},ch2[10]=?books?;?,则能将字符串"books?赋给数组ch1保存的表达式是______A)ch1=?books?;B)strcpy(ch2,ch1);C)chI=ch2;D)strcat(ch1,ch2);答案:D解析:[单选题]70.有如下程序:Longfib(intn){if(n>2)returnfib(n-1)+fib(n-2);elsereturn2;}Voidmain(){printf("%d\n",fib(3));}该程序的输出结果是()。A)2B)4C)6D)8答案:B解析:第2部分:多项选择题,共4题,每题至少两个正确答案,多选或少选均不得分。[多选题]71.自定义方法由方法签名和方法体组成中,方法签名包括访问修饰符,方法名()A)返回值类型B)数值类型C)参数类型D)参数列表答案:AD解析:[多选题]72.以下能用来表示整形常数的进制是。A)二进制B)八进制C)十进制D)十六进制答案:BCD解析:[多选题]73.136、若k是int型变量,下面的程序段的输出结果错误的是()。k=-3;if(kA)####B)&&&&C)####&&&&D)有语法错误,无输出答案:ABC解析:[多选题]74.下面正确的转义字符是()。A)'\101'B)'\'C)'\xaf'D)'\018'答案:AC解析:第3部分:填空题,共2题,请在空白处填写正确答案。[填空题]75.下面程序可求出矩阵两条对角线上的元素之和。请分析程序填空。main(){inta[3][3]={1,3,6,7,9,11,14,15,17},sum1=0,sum2=0,i,j;for(i=0;i<3;i++)for(j=0;j<3;j++)if(i==j)sum1+=a[i][j];for(i=0;i<3;i++)for(【1】;【2】;j--)if(i+j==2)sum2+=a[i][j];printf("sum1=%d,sum2=%d\n",sum1,sum2);}答案:【1】j=2【2】j>=0解析:[填空题]76.以下程序的运行结果是。main(){inti;for(i=0;i<3;i++)fun();}fun(){staticintx=0;x+=1;printf("%3d",x);}答案:123解析:第4部分:判断题,共11题,请判断题目是否正确。[判断题]77.假定int类型变量占用两个字节,其有定义:intx[10]={0,2,4};,则数组x在内存中所占字节数是6A)正确B)错误答案:错解析:[判断题]78.break语句不能跳出多层循环。A)正确B)错误答案:对解析://C5循环结构程序设计/C53break语句T[判断题]79.在C语言中,变量必需先定义后使用A)正确B)错误答案:对解析:[判断题]80.函数的定义可以嵌套,但函数的调用不可以嵌套A)正确B)错误答案:错解析:[判断题]81.main函数必须写在一个C程序的最前面答案:错解析:[判断题]82.C语言中字符型变量的存储单元中存放的是该字符的ASCII码值。A)正确B)错误答案:对解析://C2基本数据类型及表达式/C23运算符T[判断题]83.break语句只能用于switch语句体中A)正确B)错误答案:对解析:[判断题]84.一个c程序的执行是从本程序文件的第一个函数开始,到本程序文件的最后一个函数结束A)正确B)错误答案:错解析:第5部分:问答题,共13题,请在空白处填写正确答案。[问答题]85.如有下列程序段,则while语句的循环体会执行____次,循环结束时,变量t的值为____,m值为____。Intt=1,m=0;While(t<4){m=m+t;T=t+2;}答案:2;5;4;解析:[问答题]86.以下do-while语句中循环体的执行次数是_____.a=10;b=0;do{b+=2;a-=2+b;}while(a>=0);答案:空1:3题号:55725解析:[问答题]87.设i,j,k为int变量,则执行下面for循环后,k的值为()。for()k=i+j;答案:|i=0,j=10;i<=j;i++,j--解析:正确答案|i=1;i<6;i++[问答题]88.用fputc函数将字符'm'输入到fp指向的文件中去,正确的C语句写法是_fputc('m',fp);___。答案:fputc('m',fp);解析:[问答题]89.shorti=0;i=i+1L;这两句有错吗答案:解析:代码一是错的,代码二是正确的。在数据安全的情况下大类型的数据向小类型的数据转换一定要显示的强制类型转换。解析:[问答题]90.已知a=13,b=6,a/b的十进制数值为【1】.答案:2解析:[问答题]91.sizeof和strlen的区别:答案:解析:1.sizeof的结

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论