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

下载本文档

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

文档简介

试卷科目:C语言开发基础C语言开发基础(习题卷38)PAGE"pagenumber"pagenumber/SECTIONPAGES"numberofpages"numberofpagesC语言开发基础第1部分:单项选择题,共70题,每题只有一个正确答案,多选或少选均不得分。[单选题]1.有如下程序段Charp1[80]="NanJing",p2[20]="China",P3[20]=?OympIc?;Strcpy(p1,stracat(p2,p3);Printf("%s\n",p1);执行该程序段后的输出是A)NanJingChinaOlympB)ChinadlympicC)OlympicD)Nanling答案:B解析:[单选题]2.如果假设a=2,b=3,x=3.5,y=2.5那么下面的算术表达式的值是()。(float)(a+b)/2+(int)x%(int)yA)2B)3C)3.5D)2.5答案:C解析:[单选题]3.已知大写字母A的ASCII是65,小写字母a的ASCII是97,以下不能将字符型变量c中的大写字母转换成对应的小写字母的语句是()。A)c=(c-'A')%26+'a';B)c2=tolower;C)c=c-'A'+'a';D)c=('A'+c)%26-'a';答案:D解析:[单选题]4.若输入B,以下程序的运行结果为()。Main(){chargrade;scanf("%c",&grade);Switch(grade){case'A':printf(">=85.");Case'B':Case'C':printf(">=60.");Case'D':printf("<60.");Default:printf("error.");}}A)>=85.B)>=60.C)>=60.<60.error.D)error.答案:C解析:[单选题]5.若有说明:inta[3][4]={0};则下面正确的叙述是()。A)只有元素a[0][0]可得到初值0B)此说明语句不正确C)数组a中各元素都可得到初值,但其值不一定为0D)数组a中每个元素均可得到初值0答案:D解析:[单选题]6.以下是if语句的基本形式:If(表达式)语句其中?表达式?______。A)必须是逻辑表达式B)必须是关系表达式C)必须是逻辑表达式或关系表达式D)可以是任意合法的表达式答案:D解析:[单选题]7.C语言规定:在一个源程序中main函数的位置()。A)必须在最开始B)必须在系统调用的库函数的后面C)可以任意D)必须在最后答案:C解析:[单选题]8.函数ftell(fp)的作用是()。A)得到流式文件中的当前位置B)移到流式文件的位置指针C)初始化流式文件的位置指针D)以上答案均正确答案:A解析:[单选题]9.下列()为合法的字符常量。A)''\nm''B)\mnC)BD)'B'答案:D解析:[单选题]10.C语言中,运算对象必须是整型数的运算符是()。A)%B)/C)%和/D)*答案:A解析:[单选题]11.若i、j已定义为int类型,则以下程序段中内循环体的总的执行次数是()。A)20B)25C)24D)30答案:A解析:[单选题]12.若有以下程序则程序的输出结果是()A)2,2,2,4B)2,1,2,-1C)5,1,2,-1D)1,2,3,4答案:C解析:第一个if语句的判断条件中是逻辑与表达式,只有运算对象均非零结果才为真,执行第一个if判断条件,均为赋值表达式,第一个运算对象a=2非零,判断第二个表达式b=1也非零,所以条件成立执行c=2的赋值操作。执行第二个if判断条件中的逻辑或表达式,只要有一个对象非零结果就是真,本条件中c==3运算对象为假,所以需要判断第二个运算对象d=-1,结果为-1非零,所以条件成立,执行a=5的操作,所以a值为5,b值为1,c值为2,d值为-1。[单选题]13.有如下语句inta=10,b=20;*p1=&a,*p2=&b;如果让两个指针变量均指向b,正确的赋值方式是。A)*p1=*p2;B)p1=p2;C)p1=*p2;D)*p1=*p2;答案:B解析:[单选题]14.char*match(charc)是()。A)函数定义的头部B)函数预说明C)函数调用D)指针变量说明答案:A解析:[单选题]15.分析下面的C#代码,该程序的运行结果是()intindex=1;int[]foo=newint[3];intbar=foo[index];intbaz=bar+index;Console.WriteLine(baz);A)0B)1C)2D)编译错误答案:B解析:[单选题]16.58、下列四组字符串中都可以用作C语言程序中的标识符的是()。A)print_3ddb8aBcB)I\amone_halfstart$it3paiC)str_1CpppowwhileD)PxqMy->bookline#His.age答案:A解析:[单选题]17.设有如下的程序段:charstr[]=abo",*p;p=str;则p[3]的值为____。A)'o'B)不确定的值C)'\0'D)'o'的地址答案:C解析:[单选题]18.下列叙述中,不属于软件需求规格说明书的作用的是()。A)便于用户,开发人员进行理解和交流B)反映出用户问题的结构,可以作为软件开发工作的基础和依据C)作为确认测试和验收的依据D)便于开发人员进行需求分析答案:D解析:软件需求说明书(SRS)的编制是为了:①便于用户、开发人员进行理解和交流;②反映出用户问题的结构,可以作为软件开发工作的基础和依据;③作为确认测试和验收的依据;④为成本估算和编制计划进度提供基础;⑤软件不断改进的基础。答案选择D选项。[单选题]19.以下不正确的说法是,C语言规定。A)实参可以是常量、变量或表达式B)形参可以是常量、变量或表达式C)实参可以是任意类型D)实参应与其对应的形参类型一致答案:B解析:[单选题]20.若已定义:inta=1,b=2,c=3;则正确的表达式是A)c=(a,b)B)a+b=cC)b+3=cD)a=b\c答案:A解析:[单选题]21.C语言中,形参缺省的存储类型说明是A)autoB)staticC)registerD)extern答案:A解析:[单选题]22.设有以下宏定义:#defineN3#defineY(n)((N+1)*n)则执行语句:z=2*(N+Y(5+1));后,z的值为()。A)出错B)42C)48D)54答案:C解析:[单选题]23.C语言结构体类型变量在程序执行期间().A)所有成员一直驻留在内存中B)只有一个成员驻留在内存中C)部分成员驻留在内存中D)没有成员驻留在内存中答案:A解析:[单选题]24.C语言中,形参缺省的存储类型说明是A)autoB)staticC)registerD)extern答案:A解析:[单选题]25.有以下程序#includemain(){inta=0,b=0,c=0,d=0;if(a=1)b=1;c=2;elsed=3;printf("%d,%d,%d,%d\n",a,b,c,d);}程序输出()。A)0,0,0,3B)编译有错C)1,1,2,0D)0,1,2,0答案:B解析:如果if的执行语句含有多个语句(两个以上),则必须使用复合语句,即用花括号把一组语句括起来;否则,紧跟if的下一条语句是它的执行语句,因此c=2不是if执行语句,它是在if和else之间的语句。在程序中else必须与if配对,共同组成一条if-else语句,中间不能出现其他语句,因此该程序编译错误。答案选择B选项。[单选题]26.if语句的基本形式是:if(表达式)语句,以下关于?表达式?值的叙述中正确的是()。A)必须是逻辑值()。B)必须是整数值C)必须是正数D)可以是任意合法的数值答案:D解析:[单选题]27.设有如下定义:intx=10,y=3,z;则语句printf("%d\n",z=(x%y,x/y));的输出结果是__________.A)1B)0C)4D)3答案:D解析:[单选题]28.Inta[10];合法的数组元素的最小下标值为()。A)1B)0C)10D)9答案:B解析:[单选题]29.已知inta=4,b=5,c;则执行表达式c=a=a>b后变量a的值为()。A)0B)1C)4D)5答案:A解析:[单选题]30.下列数组初始化语句错误的是()A)chars1[4]="test";B)chars2[]={'t','e','s','t'};C)chars1[10]="test";D)chars4[4]={'t','e','s','t'};答案:A解析:[单选题]31.以下程序段输出结果是()。_x000D_main()_x000D_{intk,j,s;_x000D_for(k=2;kA)9B)1C)11D)10答案:D解析:[单选题]32.下面的程序中______错误(每行程序前面的数字是行号)。1#include<stdio.h>2main()3{4floata[3]={0.0};5inti;6for(i=0;i<3;i++)scanf("%d",a[i]);7for(i=1;i<3;i++)a[0]=a[0]+a[i];8printf("%f\n",a[0]);9}A)没B)第4行C)第6行D)第8行答案:C解析:[单选题]33.分析以下程序运行结果:Main(){Inti=1,s=0;While(i<100)s=s+i;i++;Printf("%d",&s);}()A)5050B)4950C)99D)死循环答案:D解析:[单选题]34.函数strlen("1234\0ab\0c")的返回值是______。A)4B)5C)8D)9答案:A解析:[单选题]35.下面说法中错误的是().A)共用体变量的地址和它各成员的地址都是同一地址B)共用体内的成员可以是结构变量,反之亦然C)在任一时刻,共用体变量的各成员只有一个有效D)函数可以返回一个共用体变量答案:D解析:[单选题]36.系统的标准输入文件是指().A)键盘B)显示器C)软盘D)硬盘答案:A解析:[单选题]37.若各选项中所有变量已正确定义,函数fun中通过return语句返回一个函数值,以下选项中错误的程序是______。A)main(){……x=fun(2,10);……}Floatfun(intA,intb){……}B)floatfun(intA,intb){……}Main(){……x=fun(i,j);……}C)floatfun(intint);Main(){……x=fun(2,10);……}Floatfun(intA,intb){……}D)main(){floatfun(inti,intj);……x=fun(i,j);……}Floatfun(intA,intb){……}答案:A解析:[单选题]38.不合法的十六进制数是().A)0xffB)0X11C)0x1gD)0Xabc答案:C解析:[单选题]39.设x为int型变量,则执行以下语句后,x的值为()。X=10;x+=x-=x-x;A)10B)20C)40D)30答案:B解析:在求解过程中,先求解x-=x-x,即x=x-(x-x)=10,再求解x+=10,即x=10+10=20,故答案B项正确。[单选题]40.已有定义?intm=3,n=4;?下列表达式中合法的是A)m+n=7B)m=|n|C)m=n=0D)(m++)++答案:C解析:[单选题]41.以下程序运行后,输出结果是()main(){inty=18,i=0,j,a[8];do{a[i]=y%2;i++;y=y/2;}while(y>=1);for(j=i-1;j>=0;j--)printf("%d",a[j]);printf("\n");}A)10000B)10010C)00110D)10100答案:B解析:[单选题]42.设有intx=11;,则表达式(x++*1/3)的值是()。A)3B)4C)11D)12答案:A解析:A)short_a=1-.1e-1;[单选题]43.数据结构主要研究的是数据的逻辑结构、数据的运算和()。A)数据的方法B)数据的存储结构C)数据的对象D)数据的逻辑存储答案:B解析:数据结构是相互之间存在一种或多种特定关系的数据元素的集合,主要研究数据元素及其之间的相互关系和数据运算,包括:①数据的逻辑结构;②数据的存储结构;③数据的运算。其中逻辑结构反映的是数据元素之间的逻辑关系,与使用的计算机无关。答案选择B选项。[单选题]44.若二维数组a有m列,则计算任一元素a[i]j]在数组中位置的公式为(假设a[0][0]位于数组的第一个位置上)()。A)i*m+jB)j*p+iC)i*m+j-1D)i*m+j+1答案:D解析:[单选题]45.下述对C语言字符数组的描述中正确的是()。A)字符数组不可以存放字符串B)可以在赋值语句中通过赋值运算符对字符数组整体赋值C)字符数组中的字符串可以整体输入、输出D)可用关系运算符对字符数组中的字符串进行比较答案:C解析:[单选题]46.()。判断char型变量ch是否为大写字母的正确表达式是。A)?A?<=ch<=?z?B)(ch>=?A?)&(ch<=?Z?)C)(ch>=?A?)&&(ch<=?Z?)D)(?A?<=ch)AND(?Z?>=ch)答案:C解析:[单选题]47.若定义:inti=3,j=4,x,y;,则执行语句:x=i++;y=j--;后,i,j,x,y的值分别是__。A)4,3,4,3B)4,3,3,4C)3,4,3,4D)3,4,4,3答案:B解析:[单选题]48.以下对结构体类型变量td的定义中,错误的是()。A)structaa{intn;floatm;};aatd;B)structaa{intn;floatm;};structaatd;C)struct{intn;floatm;}aa;structaatd;D)struct{intn;floatm;}td;答案:C解析:[单选题]49.以下叙述中正确的是().A)在程序的一行上可以出现多个有效的预处理命令行B)使用带参的宏时,参数的类型应与宏定义时的一致C)宏替换不占用运行时间,只占编译时间D)在以下定义中CR是称为"宏名"的标识符#defineCR045答案:C解析:[单选题]50.34、判断char型变量ch是否为大写字母的正确表达式是()。A)'A?B)(ch>='A?)&(chC)(ch>='A?)&&(chD)('A?答案:C解析:[单选题]51.对于建立函数的目的,正确的说法是()A)提高程序的执行效率B)减少程序的篇幅C)减少程序文件所占的内存D)提高程序的可读性答案:D解析:题号:55869[单选题]52.对二维数组a正确定义的是___。A)doublea[1][4];B)floata(3,4);C)inta[3][];D)floata(3)(4);答案:A解析:[单选题]53.数据库设计中反映用户对数据要求的模式是()。A)内模式B)概念模式C)外模式D)设计模式答案:C解析:数据库管理系统的三级模式包括:①外模式,也称子模式、用户模式,是指数据库用户所看到的数据结构,是用户看到的数据视图;②模式,也称逻辑模式,是数据库中对全体数据的逻辑结构和特性的描述,是所有用户所见到的数据视图的总和;③内模式,也称存储模式、物理模式,是指数据在数据库系统内的存储介质上的表示,是对数据的物理结构和存取方式的描述。答案选择C选项。[单选题]54.C语言所提供的合法的关键字中不正确的是()。A)switchB)cherC)caseD)default答案:B解析:略。[单选题]55.设有定义语句:chars[12]={?string?};则printf(?%d\n?,strlen(s));的输出是()A)6B)7C)11D)12答案:A解析:[单选题]56.正确定义字符型变量ch1和ch2,并分别给其赋值为小写字母a和b的语句是()A)charch1=?a?,ch2=?b?B)charch1=a,ch2=bC)charch1=a;ch2=bD)charch1=?a?;ch2=?b?答案:A解析:[单选题]57.设有定义:charp[]={'1','2','3'},*q=p;,以下不能计算出一个char型数据所占字节数的表达式是()。A)sizeof(p)B)sizeof(char)C)sizeof(*q)D)sizeof(p[0])答案:A解析:根据题目中的定义可以知道sizeof(p),计算的是数组p中所有元素所占用的字节数,而不是char型数据所占字节数。[单选题]58.在C语言中,只有在使用时才占用内存单元的变量,其存储类型是()。A)auto和staticB)extern和registerC)auto和registerD)static和register答案:C解析:auto:函数中的局部变量,动态地分配存储空间,数据存储在动态存储区中,在调用该函数时系统会给它们分配存储空间,在函数调用结束时就自动释放这些存储空间。register:为了提高效率,C语言允许将局部变量的值放在CPU中的寄存器中,这种变量叫"寄存器变量",只有局部自动变量和形式参数可以作为寄存器变量。extern:外部变量(即全局变量)是在函数的外部定义的,它的作用域为从变量定义处开始,到本程序文件的末尾。如果外部变量不在文件的开头定义,其有效的作用范围只限于定义处到文件终了。static:静态局部变量属于静态存储类别,在静态存储区内分配存储单元。在程序整个运行期间都不释放。[单选题]59.有以下程序程序运行后输出的结果是()A)1B3D5FB)ABCDFEC)A2C4E6D)123456答案:C解析:[单选题]60.若希望当a的值为奇数时,表达式的值为"真",a的值为偶数时,表达式的值为"假"。则不能满足要求的表达式是A)a%2==1B)!(a%2==0)C)!(a%2)D)a%2答案:C解析:[单选题]61.下列一维数组的定义中哪个是正确的?A)Inta[];B)Intn=6,a[n];C)Inta[6+1]={0};D)Inta[3]={1,2,3,4};答案:C解析:[单选题]62.有以下程序段:intk=0;while(k=1)k++;While循环执行的次数是().A)无限次B)有语法错误,不能执行C)一次也不执行D)执行一次答案:A解析:[单选题]63.charc[]={chinese};则数组c的长度为____。A)0B)6C)7D)8答案:D解析:[单选题]64.关于局部变量的最小有效范围是____。A)程序B)复合语句C)项目D)函数答案:B解析:[单选题]65.在C语言的函数中,下列正确的说法是()。A)形参必须是变量名B)数组名不能作形参C)可以有也可以没有形参D)必须有形参答案:C解析:题号:55864[单选题]66.以下符合C语言语法的赋值表达式是().A)d=9+e+f=d+9B)d=9+e,f=d+9C)d=9+e,e++,d+9D)d=9+e++=d+7答案:B解析:[单选题]67.下列数组说明中,正确的是().A)intarray[][4];B)intarray[][];C)intarray[][][5];D)intarray[3][];答案:A解析:[单选题]68.有如下程序#includevoidmain(){intx=23;do{printf("%d",x--);}while(!x);}该程序的执行结果是_______A)321B)23C)不输出任何内容D)陷入死循环答案:B解析:[单选题]69.有以下程序#includevoidfun(int*p){printf(?%d\n?,p[5]);}main(){inta[10]={1,2,3,4,5,6,7,8,9,10};fun(&a[3]);程序运行后的输出结果是()。A)5B)6C)8D)9答案:D解析:[单选题]70.下列()不能构成一条if语句。A)if(x>0)a=1;elsea=2;B)if(x>0);C)if(x==0)a=1;b=2;D)if(x==0);elsea=2;答案:C解析:第2部分:多项选择题,共7题,每题至少两个正确答案,多选或少选均不得分。[多选题]71.在下列选项中,构成死循环的程序段是A)inti=100;while(i>0){i=i%100+1;Console.WriteLine(i);if(i>100)break;}B)for(;;)C)intk=1000;do{++k;Console.WriteLine(k);}while(k>=1000);D)ints=36;while(s>=0){--s;Console.WriteLine(s);}答案:ABC解析:[多选题]72.120、已知inti=65;,则putchar(i);printf("%d",i);printf("%c",i);的输出结果错误的是()。A)A,65,AB)65,65,AC)A,A,65D)A,A,A答案:BCD解析:[多选题]73.若有说明:inta[10];则对a数组元素的正确引用的是().A)a[10]B)a[2*3]C)a(5)D)a[10-10]答案:BD解析:[多选题]74.116、设x、y为int型变量,则执行下列语句后,x=5;y=x++*x++;y=--y*--y;y的值错误的是()。A)529B)2401C)1209D)625答案:BCD解析:第3部分:填空题,共2题,请在空白处填写正确答案。[填空题]75.以下程序的功能是根据公式e=1+1/1!+1/2!+...1/n!求e的近似值,精度要求为10-6。请分析程序填空。#include<stdio.h>main(){inti;doublee,new;【1】;new=1.0;for(i=1;【2】;i++){new/=(double)i;e+=new;}printf("e=%lf\n",e);}答案:【1】e=1【2】new>1e-6解析:[填空题]76.下面程序段的运行结果是。x=2;do{printf("*");x--;}while(!x==0);答案:**解析:第4部分:判断题,共8题,请判断题目是否正确。[判断题]77.C程序可以由一个或多个函数组成A)正确B)错误答案:对解析:无[判断题]78.全局变量的作用域是整个源程序文件。答案:错解析:[判断题]79.符号常量在C程序中必须用define进行说明。A)正确B)错误答案:对解析://C2基本数据类型及表达式/C23常量T[判断题]80.宏定义和文件包含都是C语言中的编译预处理命令,对它们的处理是在编译前完成的答案:对解析:[判断题]81.?A?是一个字符常量。答案:错解析:[判断题]82.用strcat(字符串1,字符串2)连接两个字符串函数时,字符串1的存储空间没有限制。A)正确B)错误答案:错解析://C7数组/C73字符函数T[判断题]83.有符号整型变量的取值范围是:0-65536答案:错解析:[判断题]84.运算符?&&?表示与操作,如果左边为假,那么右边表达式将进行运算。A)正确B)错误答案:错解析:第5部分:问答题,共13题,请在空白处填写正确答案。[问答题]85.C语言中用____表示逻辑真,用_____表示逻辑假。答案:非00解析:[问答题]86.表达式(int)a+(float)a/b的值____。(设a=3,b=6);答案:3.5解析:[问答题]87.若输入4,程序运行结果为【1】(),若输入-4,运行结果为【2】(),若输入10,运行结果为【3】().main(){intx,y;scanf("%d",&x);if(x<1){y=x;printf("x=%d,y=x=%d\n",x,y);}elseif(x<10){y=2*x-1;printf("x=%d,y=2*x-1=%d\n",x,y);}else{y=3*x-11;printf("x=%d,y=3*x-11=%d\n",x,y);}}答案:【1】x=4,y=2*x-1=7|【2】x=4,y=x=-4|【3】x=10,y=3*x-11=19解析:[问答题]88.Heap和Stack的区别?答案:解析:Heap是堆,Stack是栈。栈的空间由操作系统自动分配和回收,而堆上的空间由程序员申请和释放。栈的空间大小较小,而堆的空间较大。栈的地址空间往低地址方向生长,而堆向高地址方向生长。栈的存取效率更高。程

温馨提示

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

评论

0/150

提交评论