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

下载本文档

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

文档简介

试卷科目:C语言开发基础C语言开发基础(习题卷17)PAGE"pagenumber"pagenumber/SECTIONPAGES"numberofpages"numberofpagesC语言开发基础第1部分:单项选择题,共73题,每题只有一个正确答案,多选或少选均不得分。[单选题]1.若要使用C数学库中的sin函数,需要在源程序的头部加上#include<math.h>关于引用数学库,以下叙述正确的是______。A)通过引用math.h文件,说明sin函数的参数个数和类型,以及函数返回值类型B)将数学库中sin函数链接到编译生成的可执行文件中,以便能正确运行C)将数学库中sin函数的源程序插入到引用处,以便进行编译链接D)实际上,不引用math.h文件也能正确调用sin函数答案:A解析:[单选题]2.标准库函数fgets(str,n,fp)的功能是()A)从fp所指的文件中读取长度不超过n-1字符串存入指针str所指的内存B)从fp所指的文件中读取长度为n的字符串存入指针str所指的内存C)从fp所指的文件中读取n个字符串存入指针str所指的内存D)从fp所指的文件中读取长度为n-1的字符串存入指针str所指的内存答案:A解析:fgets函数的功能是从fp所指文件中读入n1个字符放入以str为起始地址的空间内,读取长度不超过n-1,读入结束后,自动在最后添加O,选项A正确,本题答案A。[单选题]3.逻辑运算符中,运算优先级按从高到低依次为()。A)&&,!,||B)||,&&,!C)&&,||,!D)!,&&,||答案:D解析:[单选题]4.已定义以下函数intfun(int*p){return*p;}fun函数返回值是()A)不确定的值B)一个整数C)形参p中存放的值D)形参p的地址值答案:B解析:[单选题]5.循环结构的特点是()。A)从上至下,逐个执行B)根据判断条件,执行其中一个分支C)满足条件时反复执行循环体D)以上都对答案:C解析:[单选题]6.C语言规定:在一个源程序中,main函数的位置()A)必须在程序的开头。B)必须在系统调用的库函数的后面。C)可以在程序的任意位置。D)必须在程序的最后。答案:C解析:[单选题]7.以下在任何情况下计算两数积时都不会引起二义性的宏定义是_____A)#defineMUL(x,y)x*yB)#defineMUL(x,y)(x)*(y)C)#defineMUL(x,y)(x*y)D)#defineMUL(x,y)((x)*(y))答案:D解析:[单选题]8.设有定义:intx=6,y;,则执行语句y=x++;++y;后,y的值是____。A)9B)8C)7D)6答案:C解析:[单选题]9.以下定义语句中,错误的是______。A)inta[]={1,2};B)chara[3];C)chars[10]="test";D)intn=5,a[n];答案:D解析:[单选题]10.下面选项中,不能表示函数sign(x)=(1x>0;0x=0;-1x<0)功能的表达式是A)s=(x>0)?1:(x<0)?-1:0B)s=x<0?-1:(x>0)?1:0C)s=x<=0?-1:(x==0)?0:1D)s=x>0?1:x==0?0:-1答案:C解析:[单选题]11.输入字符正确的语句是()。A)scanf(?%c?,ch)B)scanf(?%c?,&ch);C)&ch=getchar()D)getchar(ch)答案:B解析:[单选题]12.以下选项中,能定义m为合法的结构体变量的是______。A)typedefstructabc{doublea;Charb;}m;B)struct{doublea;Charb;}m;C)structABC{doublea;Charb;}ABCm;D)typedefABC{doublea;Charb;}ABCm;答案:B解析:[单选题]13.设有表示公司和员工及雇佣的三张表,员工可在多家公司兼职,其中公司表C(公司号,公司名,地址,注册资本,法人代表,员工数),员工表S(员工号,姓名,性别,年龄,学历),雇佣表E(公司号,员工号,工资,工作起始时间)。其中表C的键为公司号,表S的键为员工号,则表E的键(码)为()。A)公司号,员工号B)员工号,工资C)员工号D)公司号,员工号,工资答案:A解析:关系是一张表,表中的每行(即数据库中的每条记录)是一个元组,每列是一个属性,元组是关系数据库中的基本概念。在二维表里,元组也称为记录。候选键(码)是二维表中能唯一标识元组的最小属性集,候选键(码)可以有多个,当一个二维表有多个候选键(码)时,则选定其中一个作为主键(码)供用户使用。在本题中,公司号唯一标识公司,员工号唯一标识员工,而雇佣需要公司号与员工号同时唯一标识,故表E的键(码)为(公司号,员工号)。答案选择A选项。[单选题]14.以下()是正确的变量名。A)beeB)-p11C)intD)p_ll答案:D解析:[单选题]15.在do-while循环中,循环由do开始,用while结束;在while表达式后面的()不能丢,它表示do-while语句的结束。A)0B)1C);D),答案:C解析:[单选题]16.从键盘上输入某字符串是,不可使用的函数是()。A)gets()B)fread()C)scanf()D)getchar()答案:B解析:[单选题]17.以下选项中不合法的标识符是()。A)&aB)FORC)printD)00答案:A解析:[单选题]18.某系统结构图如下图所示该系统结构图的宽度是()。A)2B)3C)4D)n答案:D解析:系统结构图的宽度是指最大模块数的层的控制跨度。图中系统第一层只有1个模块,第二层有n(n>3)个模块,第三层有4个模块,最大的跨度为n。答案选择D选项。[单选题]19.若有inta[10],*p=a;定义,则p+5表示().A)元素a[5]的地址B)元素a[5]的值C)元素a[6]的地址D)元素a[6]的值答案:A解析:[单选题]20.8、有以下程序structSTU{charname[10];intnum;};voidf1(structSTUc){structSTUb={"LiSiGuo",2042};c=b;}voidf2(structSTU*c){structSTUb={"SunDan",2044};*c=b;}main(){structSTUa={"YangSan",2041},b={"WangYin",2043};f1(a);f2(&b);printf("%d%d\n",a.num,b.num);}执行后的输出结果是()。A)20412044B)20412043C)20422044D)20422043答案:A解析:[单选题]21.有以下程序:Voidsum(int*a){a[0]=a[1];}Main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;For(i=2;i>=0;i--)sum(&aa[i]);Printf("%d\n",aa[0]);}执行后的输出结果是______。A)4B)3C)2D)1答案:A解析:[单选题]22.52、C语言程序从()开始执行。A)程序中第一条可执行语句B)程序中第一个函数C)程序中的main函数D)包含文件中的第一个函数答案:C解析:[单选题]23.下列符号中,不属于转义字符的是()。A)\\B)\0xAAC)\tD)\0答案:B解析:[单选题]24.设有定义语句Intx[6]={2,4,6,8,5,7},*p=x,i;要求依次输出x数组6个元素中的值,不能完成此操作的语句是______。A)for(i=0;i<6;i++)printf("%2d",*(p++));B)for(i=0;i<6;i++)printf("%2d",*(p+i));C)for(i=0;i<6;i++)printf("%2d",*p++);D)for(i=0;i<6;i++)printf("%2d",(*p)++);答案:D解析:[单选题]25.一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是()。A)一对一B)一对多C)多对多D)多对一答案:C解析:两个实体间的联系可分为3种类型:①一对一联系,表现为主表中的一条记录与相关表中的一条记录相关联;②一对多联系,表现为主表中的一条记录与相关表中的多条记录相关联;③多对多联系,表现为主表中的多条记录与相关表中的多条记录相关联。本题中,一个工作人员可以使用多台计算机,一台计算机可被多个人使用,因此为多对多的关系。答案选择C选项。[单选题]26.以下数组定义中不正确的是()。A)inta[2][3];B)intb[][3]={0,1,2,3};C)intd[3][]={{1,2},{1,2,3},{1,2,3,4}};D)intc[100][100]={0};答案:C解析:题号:55816[单选题]27.()。一个C程序的执行是从_____。A)本程序的main函数开始,到main函数结束B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C)本程序的main函数开始,到本程序文件的最后一个函数结束D)本程序文件的第一个函数开始,到本程序main函数结束答案:A解析:[单选题]28.耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是()。A)提高耦合性,降低内聚性,有利于提高模块的独立性B)降低耦合性,提高内聚性,有利于提高模块的独立性C)耦合性是指一个模块内部各个元素间彼此结合的紧密程度D)内聚性是指模块间互相连接的紧密程度答案:B解析:耦合性是指模块间互相连接的紧密程度,内聚性是指一个模块内部各个元素间彼此结合的紧密程度。提高内聚性、降低耦合性是提高模块独立性的方法。答案选择B选项。[单选题]29.C语言中最简单的数据类型包括____。A)整型、实型、字符型B)整型、实型、逻辑型C)整型、字符型、逻辑型D)整型、实型、逻辑型、字符型答案:A解析:[单选题]30.执行以下程序后,输出的结果是______。#include<stdio.h>Intf(intb){Staticinta=1;A=a+b;Returna;}Voidmain(){Intb=2,c;B=f(b);C=f(b);Printf("%d,%d\n",b,c);}A)3,6B)3,4C)2,6D)2,4答案:A解析:[单选题]31.若fp已定义为指向某文件的指针,且没有读到该文件的末尾,则C语言函数feof(fp)的函数返回值是A)EOFB)非0C)-1D)0答案:D解析:[单选题]32.下面关于return语句的叙述正确的是A)一个自定义函数中必须有一条return语句B)一个自定义函数中可以根据不同情况设置多条return语句C)定义成void类型的函数中可以有带返回值的return语句D)没有return语句的自定义函数在执行结束时不能返回到调用处答案:B解析:[单选题]33.在位运算中,操作数每左移一位,其结果相当于()。A)操作数乘以2B)操作数除以2C)操作数除以4D)操作数乘以4答案:A解析:[单选题]34.在while(e)语句中的e与下面条件表达式等价的是。A)e==0B)e==1C)e!=1D)e!=0答案:D解析:[单选题]35.在C#中,关于while和do…while,以下说法正确的是A)while先执行然后判断条件是否成立B)while最少的循环次数是1次C)do…while先执行然后判断条件是否成立D)do…while最少的循环次数是0次答案:C解析:[单选题]36.下列字符序列中,不可用作C语言标识符的是()。A)abc123B)no_1C)123_D)_ok答案:C解析:[单选题]37.C语言中,'\x3d'在内存中占用的字节数是A)0B)1C)2D)3答案:B解析:[单选题]38.72、若有说明:inta[][3]={{1,2,3},{4,5},{6,7}};则数组a的第一维的大小为:()。A)2B)3C)4D)无确定值答案:B解析:[单选题]39.有以下程序#defineP3voidF(intx){return(P*x*x);}main(){printf(?%d\n?,F(3+5));}程序运行后的输出结果是________。A)192B)29C)25D)编译出错答案:D解析:return语句用于从被调函数带回一个函数值。void关键字表示?无类型?,即不需要从被调函数中带回函数值,所以不需要return语句,故编译时出错。[单选题]40.假定int类型变量占用两个字节,其有定义:intx[10]={0,2,4};,则数组x在内存中所占字节数是()。A)10B)3C)20D)6答案:C解析:题号:55752[单选题]41.以下选项中属于C语言的数据类型是______。A)复数型B)逻辑型C)双精度型D)集合型答案:C解析:[单选题]42.已知x=43,ch='A',y=0;则表达式(x>=y&&ch<'B'&&!y)的值是。A)0B)语法错误C)1D)"假"答案:C解析:[单选题]43.以下不是C语言的特点的是()。A)语言简洁紧凑B)能够编制出功能复杂的程序C)C语言可以直接对硬件操作D)C语言移植性好答案:B解析:[单选题]44.长整型数据在内存中的存储形式是()。A)ASCII码B)原码C)反码D)补码答案:D解析:[单选题]45.如果想在现有文件的末尾追加一些数据,则不可以用下列方式打开文件____。A)r+B)aC)a+D)w+答案:D解析:[单选题]46.下列不属于C语言关键字的是A)continueB)integerC)staticD)signed答案:B解析:[单选题]47.设a=5,b=6,c=7,d=8,m=2,n=2,则执行(m=a>b)&&(n=c>d)后n的值为()。A)1B)2C)3D)4答案:B解析:当条件1:m=a>b的值为假时,便已经确定整个表达式的值为假,所以不必再继续判断第二个表达式的逻辑值。由于没有执行第二个表达式n=c>d,所以n的值仍为2。[单选题]48.在C语言中,下列说法正确的是()A)函数不可以嵌套定义B)函数不可以嵌套调用C)函数不可以递归调用D)以上说法都不正确答案:A解析:[单选题]49.C语言中,关于do-while的说法正确的是____。A)不能用其构成循环B)必须用break语句才能退出C)当while中的表达式值为非零时结束循环D)当while中的表达式值为零时结束循环答案:D解析:[单选题]50.以下关于return语句的叙述中正确的是()。A)一个自定义函数中必须有一条return语句B)一个自定义函数中可以根据不同情况设置多条return语句C)定义成void类型的函数中可以有带返回值的return语句D)没有return语句的自定义函数在执行结束时不能返回到调用处答案:B解析:[单选题]51.设x,y均为int型变量,且x=10,y=3,则语句printf("%d,%d\n",x--,--y);的输出结果是。A)10,3B)9,3C)9,2D)10,2答案:D解析:[单选题]52.以下正确的定义语句是。A)inta[1][4]={1,2,3,4,5};B)floatx[3][]={{1},{2},{3}};C)longb[2][3]={{1},{2,3},{4,5,6}};D)doubley[][3]={0};答案:D解析:[单选题]53.以下叙述中正确的是()。A)在算法设计时,可以把复杂任务分解成一些简单的子任务B)在C语言程序设计中,所有函数必须保存在一个源文件中C)只要包含了三种基本结构的算法就是结构化程序D)结构化程序必须包含所有的三种基本结构,缺一不可答案:A解析:A项正确,把复杂任务分解成一些简单的子任务是程序模块化的思想;B项错误,C语言中,函数可以放在不同的源文件中;CD两项错误,由三种基本结构所构成的程序称为结构化程序,三种基本结构可以任意组合。答案选择A选项。[单选题]54.若intn=6;表达式n%=n+=n-=n*n的值为_____。A)10B)0C)12D)6答案:B解析:[单选题]55.下面有关空语句描述错误的是______。A)空语句是多余语句可以删除B)空语句仅由分号?;?组成C)空语句不产生任何操作运算D)空语句长用于循环结构中答案:A解析:[单选题]56.在下列关于C函数定义的叙述中,正确的是()。A)函数可以嵌套定义,但不可以嵌套调用B)函数不可以嵌套定义,但可以嵌套调用C)函数不可以嵌套定义,也不可以嵌套调用D)函数可以嵌套定义,也可以嵌套调用答案:B解析:[单选题]57.C语言中,下列标识符不合法的是____。A)_aB)a5C)a_5D)5a答案:D解析:[单选题]58.有定义chara[10];,不能给数组a输入字符串的语句是()。A)gets(a);B)gets(a[0]);C)gets(&a[0]);D)gets(a+0);答案:B解析:[单选题]59.()。以下二维数组c的定义形式是A)intc[3][]B)floatc[3,4]C)doublec[3][4]D)floatc(3)(4)答案:C解析:[单选题]60.有如下程序段inta=14,b=15,x;charc='A';x=(a<b)&&(c>'B');执行该程序段后,x的值为______。A)trueB)falseC)0D)1答案:C解析:[单选题]61.65、设整型变量a=2,则执行下列语句后,浮点型变量b的值不为0.5的是()。A)b=1.0/aB)b=(float)(1/a)C)b=1/(float)aD)b=1/(a*1.0)答案:B解析:[单选题]62.以下选项中不属于C语言程序运算符的是:()A)<>B)sizeofC)()D)&&答案:A解析:[单选题]63.以下选项中,合法的C语言常量是()。A)1.234B)'C++'C)"\2.0D)2Kb答案:A解析:C语言中的常量:①整型常量,用不带小数点的数字表示;②实型常量,用带小数点的数字表示;③字符型常量,用带有单引号的一个字符表示;④字符串常量,用一对双引号括起来的一串字符。1.234为实型常量,A项正确;'C++'不合法,若改成"C++"则为字符串常量,B项错误;"\2.0不合法,不是任何类型常量,C项错误;2Kb不合法,若加上双引号"2Kb"为字符串常量,D项错误。答案选择A选项。[单选题]64.若变量a是int类型,并执行了语句:a='A'+1.6;,则正确的叙述是A)a的值还是整型B)a的值是字符CC)a的值是浮点型D)不允许字符型和浮点型相加答案:A解析:[单选题]65.若在一个C语言源程序中?expl?和?exp3?是表达式,?s;?是语句,则下列选项中与语句?for(expl::exp3)s;"功能等同的是A)expl;while(1)s;exp3B)expl;while(1){exp3;s;}C)expl;while(1){s;exp3;}D)while(1){expl;s;exp3)答案:C解析:[单选题]66.执行x=5>1+2&&2||2*4<4-!0后,x的值为()。A)-1B)0C)1D)5答案:C解析:[单选题]67.以下程序输出结果是____()____.#include<stdio.h>voidmain(){intm=4;if(++m>5)printf("%d\n",m--);elseprintf("%d\n",--m);}A)7B)6C)5D)4答案:D解析:[单选题]68.若有以下定义和语句:Ints[4][5],(*ps)[5];Ps=s;则对s数组元素的正确引用形式是()。A)ps+1B)*(ps+3)C)ps[0][2]D)*(ps+1)+3答案:C解析:[单选题]69.在传值调用中,要求________。A)形参和实参类型任意,个数相等B)实参和形参类型都完全一致,个数相等C)实参和形参对应的类型一致,个数相等D)实参和形参对应的类型一致,个数任意答案:C解析:[单选题]70.在C语言中,函数的数据类型是指()。A)函数返回值的数据类型B)函数形参的数据类型C)调用该函数时的实参的数据类型D)任意指定的数据类型答案:A解析:第2部分:多项选择题,共4题,每题至少两个正确答案,多选或少选均不得分。[多选题]71.以下关于数组的使用,正确的是()。A)inta[10];a[0]=100;B)inta[10]={5};C)inta[10.5];D)inta[10];a[3.5]=100;答案:AB解析:[多选题]72.设有如下程序段chars[20]="Beijing",*p;p=s;则执行p=s;语句后,以下叙述错误的是()A)可以用*p表示s[0]B)s数组中元素的个数和p所指字符串长度相等C)s和p都是指针变量D)数组s中的内容和指针变量p中的内容相同答案:BCD解析:[多选题]73.下列选项中,正确的赋值表达式是()A)(a+b)++B)n1=(n2=(n3=0))C)k=i=jD)a=b+c=1答案:BC解析:[多选题]74.以下叙述错误的是。A)在C程序中,main函数必须位于程序的最前面B)C程序的每行中可以写多条语句C)C语言本身没有输入输出语句D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误答案:AD解析:第3部分:填空题,共2题,请在空白处填写正确答案。[填空题]75.以下程序的运行结果是。main(){inta1,a2,b1,b2;inti=5,j=7,k=0;a1=!k;a2=i!=j;printf("a1=%d\ta2=%d\n",a1,a2);b1=k&&j;b2=k||j;printf("b1=%d\tb2=%d\n",b1,b2);}答案:a1=1a2=1b1=0b2=1解析:[填空题]76.下面程序的运行结果是。#include<stdio.h>main(){inta,s,n,count;a=2;s=0;n=1;count=1;while(count<=7){n=n*a;s=s+n;++count;}printf("s=%d\n",s);}答案:s=254解析:第4部分:判断题,共8题,请判断题目是否正确。[判断题]77.次A)正确B)错误答案:错解析:[判断题]78.只有当实参和与其对应的形参同名时才共占用存储单元A)正确B)错误答案:错解析:[判断题]79.若有inti=10,j=2;则执行完i*=j+8;后ⅰ的值为28.A)正确B)错误答案:错解析:[判断题]80.循环结构中的continue语句是使整个循环终止执行A)正确B)错误答案:错解析:[判断题]81.在C语言中,字符常量或变量,即可以用%c输出,也可以用%d输出。A)正确B)错误答案:对解析:[判断题]82.do-while循环的while后的分号可以省略。A)正确B)错误答案:错解析:[判断题]83.函数的形参和实参分别占用不同的存储单元A)正确B)错误答案:对解析:[判断题]84.程序设计语言是用于编写计算机程序的一组记号和一组规则,包含语法、语义和语用三个方面。A)正确B)错误答案:对解析:第5部分:问答题,共13题,请在空白处填写正确答案。[问答题]85.在C语言中,以________开头的常量代表的是八进制数。答案:0解析:/基本理论/C2基本数据类型及表达式/C22八、十六进制数T[问答题]86.设变量a为整型,执行语句:a=(a=2,a+2);之后a值为____。答案:4解析:[问答题]87.若a是整型变量,则表达式a=9.0/2的值为____。答案:4解析:[问答题]88.谈谈c语言中有符号和无符号的区别?答案:有符号:数据的最高位为符号位,0表示正数,1表示负数无符号:数据的最高位不是符号位,而是数据的一部分解析:[问答题]89.int(*s[10])(int)表示的是什么啊?(慧通)答案:解析:这样的表达式可以遵循这样的规则:从右向左,由近及远,括号优先;比如:从a符号开始。其右边是[10],说明a是个数组,其中存了十个元素。再看a的左边是一个*。说明数组中存的是指针。现在在看(*a[10])的右边是(int);说明所存的指针是指向有一个int形参的函数现在看(*a[10])的左边是个int,说明指向的函数的返回值为int类型;解析:[问答题]90.以下do-while语句中循环体的执行次数是【1】.a=10;b=0;do{b+=2;a-=2+b;}while(a>=0);答案:3解析:[问答题]91.读程序,写出运行结果。#include<stdio.h>voidmain(){intii=010,ij=10;printf("%d,%d\n",++ii,ij--);}程序运行结果是:()答案:9,10解析:[问答题]92.下面程序的功能是向数组输入数据,逆序置换后输出。逆序置换是指数组的首元素和末元素置换,第二个元素和倒数第二个元素置换,………。请填空使程序完整、正确。#include#defineN8intmain(){inti,j,t,a[N];for(i=0;i答案:a[i]=a[j]解析:[问答题]93.以下函数的功能是计算s=l+l/2!+l/3!+…+l/n!,请填空.doublefun(intn){doubles=0.0,fac=1.0;int

温馨提示

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

最新文档

评论

0/150

提交评论