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

下载本文档

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

文档简介

试卷科目:C语言开发基础C语言开发基础(习题卷69)PAGE"pagenumber"pagenumber/SECTIONPAGES"numberofpages"numberofpagesC语言开发基础第1部分:单项选择题,共70题,每题只有一个正确答案,多选或少选均不得分。[单选题]1.设有如下定义:int(*ptr)();则以下叙述中正确的是()。A)ptr是指向一维组数的指针变量B)ptr是指向int型数据的指针变量C)ptr是指向函数的指针,该函数返回一个int型数据D)ptr是一个函数名,该函数的返回值是指向int型数据的指针答案:C解析:[单选题]2.下面说法正确的是()。A)while语句不管条件表达式是否为真,都将执行一次循环体。B)do-while语句构成的循环,一定要有能使while后面表达式的值为0的操作,或在循环体中使用break语句。C)for循环只能用于循环次数确定的情况,且先执行循环体语句,后判断条件表达式。D)break语句的作用是从最近的循环体内跳出来,而continue语句的作用是继续执行循环体中尚未执行的语句。答案:B解析:[单选题]3.若有定义:doublea=22;inti=0,k=18;,则不符合C语言规定的赋值语句是()A)i=(a+k)<=(i+k);B)i=a%11;C)a=a++,i++D)i=!a;答案:B解析:[单选题]4.运行结果是()switch(?B?){case?A?:printf("abc");break;case?B?:switch(1){case0:printf("a");break;case1;printf("b");break;default:printf("c");break;}default:printf("x");}A)axB)bxC)cxD)dx答案:B解析:[单选题]5.以下选项中,合法的一组C语言数值常量是______。A)028.5e-3-0xfB)12.0Xa234.5e0C)l774e1.50abcD)0x8A10,0003.e5答案:B解析:[单选题]6.以下对宏替换的叙述不正确的是()A)宏名无类型,其参数也无类型B)宏替换只是字符的替换C)带参的宏替换在替换时,先求出实参表达式的值,然后代入形参运算求值D)宏替换不占运行时间答案:C解析:题号:55857[单选题]7.已知'A'的ASCII码的十进制值为65,'0'的ASCII码的十进制值为48,则以下程序运行结果是()。main(){charch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}A)67,DB)C,DC)C,68D)67,68答案:A解析:[单选题]8.有以下程序:#include<iostream>Usingnamespacestd;Voidsum(int*a){a[0]=a[1];}Intmain(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;for(i=2;i>=0;i--)sum(&aa[i]);cout<<aa[0]<<endl;return0;}执行后的输出结果是()。A)4B)3C)2D)1答案:A解析:[单选题]9.设有数组定义语句inta[3][2]={1,2,3,4,5,6};则值为6的数组元素是()A)a[3][2]B)a[2][1]C)a[1][2]D)a[2][3]答案:B解析:[单选题]10.阅读下面的程序#includevoidmain(){charch;scanf("%3c",&ch);printf("%c",ch);}如果从键盘上输入abc则程序的运行结果是_____.A)aB)bC)cD)程序语法出错答案:A解析:[单选题]11.设有数组定义:charcarray[]=""hello"";则数组carray所占的空间为A)6个字节B)5个字节C)4个字节D)7个字节答案:A解析:[单选题]12._________把x、y定义成float类型变量,并赋同一初值3.14。A)Floatx,y=3.14;B)Floatx,y=2*3.14;C)Floatx=3.14,y=x;D)Floatx=y=3.14;答案:C解析:[单选题]13.int(*p)[6];它的含义为()。A)具有6个元素的一维数组B)定义了一个指向具有6个元素的一维数组的指针变量C)指向整型指针变量D)指向6个整数中的一个的地址答案:B解析:[单选题]14.已知如下程序,下列选项放在空白处不能输出***的是intx=6;do{Console.Write("*");x--;--x;}while(______);A)x>=1B)x>=2C)x>0D)x>3答案:D解析:[单选题]15.若有定义语句inta,b,c,*p=&c;接着执行以下选项中的语句,则能正确执行的语句是()。A)scanf("%d%d%d",a,b,c);B)scanf("%d",p);C)scanf("%d",a,b,c);D)scanf("%d",&p);答案:B解析:scanf中地址列表需要取地址,即&a形式,故AC项错误;p为指针类型,本身就是c的地址,因此不用再取地址。答案选择B选项。[单选题]16.以下关于静态变量的说法正确的是()A)函数中的静态变量其所占内存在函数退出后不被释放B)静态变量和常量的作用相同C)静态变量只可以赋值一次赋值后则不能改变D)静态全局变量的作用域为一个程序的所有源文件答案:A解析:在整个程序运行期间,静态局部变量在内存中的静态存储区中占据着永久性的存储单元即使退出函数,下一次再进入该函数时,静态局部变量仍然使用原来的存储单元,并不释放这些单元。静态变量只能赋初值一次,存放的值可以改变。全局变量的作用域为从变量定义位置开始,到整个源文件结束。本题答案为A选项。[单选题]17.C语言中的变量名只能由字母,数字和下划线三种字符组成,且第一个字符________.A)必须为字母B)必须为下划线C)必须为字母或下划线D)可以是字母,数字或下划线中的任意一种答案:C解析:[单选题]18.设有charstr[10],下列语句正确的是()。A)scanf("%s",&str);B)printf("%c",str);C)printf("%s",str[0]);D)printf("%s",str);答案:D解析:[单选题]19.以下说法正确的是()A)C语言只接受十进制的数B)C语言只接受八进制、十进制、十六进制的数C)C语言接受除二进制之外任何进制的数D)C语言接受任何进制的数答案:B解析:C可以使用格式控制符%d,%u,%等接受十进制的数,使用‰接受八进制的数,使用%x接受十六进制的数,本题答案选B[单选题]20.语句int(*ptr)();的含义是。A)ptr是指向一维数组的指针变量B)ptr是指向int型数据的指针变量C)ptr是指向函数的指针,该函数返回一个int型数据D)ptr是一个函数名,该函数的返回值是指向int型数据的指针答案:C解析:[单选题]21.已知有double型变量x=2.5,y=4.7,整型变量a=7,则表达式x+a%3*(int)(x+y)%2/4的值是____()___.A)2.4B)2.5C)2.75D)0答案:B解析:[单选题]22.以下不能正确定义二维数组的选项是______。A)inta[2][2]={{1},{2}};B)inta[][2]={1,2,3,4};C)inta[2][2]={{1},2,3};D)inta[2][]={{1,2},{3,4}};答案:D解析:[单选题]23.有如下程序段,对应正确的数据输入是()。Floatx,y;Scanf(?%f%f?,&x,&y);Printf(?a=%f,b=%f?,x,y);A)2.04<回车>5.67<回车>B)2.04,5.67<回车>C)A=2.04,B=5.67<回车>D)2.055.67<回车>答案:A解析:[单选题]24.下列工具中,不属于结构化分析的常用工具的是()。A)数据流图B)数据字典C)判定树D)N-S图答案:D解析:结构化分析常用的工具有:①数据流图;②数据字典;③判定树;④判定表。N-S图用于软件设计阶段。答案选择D选项。[单选题]25.对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是()。A)冒泡排序为n(n-1)/2B)简单插入排序为nC)希尔排序为nD)快速排序为n/2答案:A解析:在最坏情况下,冒泡排序、直接插入排序与简单选择排序法均需要比较n(n-1)/2次。希尔排序需要比较n1.5次,堆排序需要比较的次数最少,为nlog2n。答案选择A选项。[单选题]26.()是C语言提供的合法的数据类型关键字。A)FloatB)signedC)integerD)Char答案:B解析:[单选题]27.若有以下定义,inta,b;floatx;则正确的赋值语句是()。A)a=1,b=2B)b++;C)a=b=5D)b=int(x);答案:B解析:[单选题]28.以下程序段的运行结果是()。charstr[]="ABCDEF",*p=str+3;printf("%s",--p);A)ABCDEFB)BCDEFC)CDEFD)DEF答案:C解析:str是指向A的,str+3就指向了D,也就是p指向了D。输出的是--P开始的值,前缀要先对p-1,即p指向了C,输出是从C开始的字符串[单选题]29.以下程序段的描述,正确的是()。x=-4;do{x=x*x;}while(!x);A)是死循环B)循环执行两次C)循环执行一次D)有语法错误答案:C解析:[单选题]30.C语言的下列运算符中,优先级最高的运算符是()。A)++B)+=C)||D)!=答案:A解析:[单选题]31.以下对宏的不正确的说法是____。A)宏替换不占用运行时间B)宏名无类型C)宏替换只是字符替换D)宏名必须用大写字母表示答案:D解析:[单选题]32.如下程序的输出结果是().#include<stdio.h>voidmain(){inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<i;j++)s+=a[i][j];printf("%d\n",s);}A)14B)19C)20D)21答案:A解析:[单选题]33.以下语法中正确的是()A)C语言程序中的main函数必须放在程序的开始部分B)C语言程序总是从main开始执行C)在C语言程序中,要调用的函数必须在main函数中定义D)C语言程序总是从第一个定义的函数开始执行答案:B解析:题号:55808[单选题]34.若m,y,z均为int型变量,则执行下面语句后m值是()。m=1;x=2;y=3;z=4;m=(m<x)?m:x;m=(m<y)?m:y;m=(m<z)?m:z;A)1B)2C)3D)4答案:A解析:[单选题]35.设变量已正确定义并赋值,以下正确的表达式是()。A)x=y+z+5,++yB)int(15.8%5)C)x=y*5=x+zD)x=25%5.0答案:A解析:B)与D)选项中取模运算符%的左右两个操作数均应为整数,所以B)、D)错误。C)选项中不能将x+y的值赋给表达式y*5,所以C)错误。[单选题]36.下列字符数组长度为5的是()A)charc[10]={'h','a','b','c','d'};B)charc[10]={'h','a','b','c','d'};C)chara[]={'h','a','b','c','d'};D)chard[6]={'h','a','b','c','\0'};答案:C解析:题号:55804[单选题]37.有一堆零件(100到200之间),如果分成4个零件一组则多出2个零件;若分成7个零件一组,则多3个零件;若分成9个零件一组,则多出5个零件。下面程序是求这堆零件总数,请选择填空。#include<stdio.h>main(){inti;for(i=100;i<200;i++)if((i-2)%4==0)if(!((i-3)%7))if()printf("%d",i);}A)i%9=5B)i%9!=5C)(i-5)%9!=0D)i%9==5答案:D解析:[单选题]38.已有定义?intx=15,y;floatz=12;?,下列表达式中语法正确的是A)x=y=z*2B)x>0?y=x:y=-xC)y=x%3.5D)x+2=z-3答案:A解析:[单选题]39.已知max=3<5?3:5;则max的值为____。A)5B)0C)3D)8答案:C解析:[单选题]40.库函数rand()的功能是产生一个在0~32767之间的随机数。若要用此函数随机产生一个0~99.99(2位小数)之间的数,以下能实现此要求的表达式是______。A)(rand()%10000)/100.0B)(rand()%10000)/100C)(rand()%9000+1000.0)/100.0D)(rand()%100)/100.0答案:A解析:[单选题]41.12、类型修饰符unsigned不能修饰()。A)charB)longintC)intD)float答案:D解析:[单选题]42.可移植性最好的计算机语言是∶______。A)自然语言B)机器语言C)汇编语言D)高级语言答案:D解析:[单选题]43.设x、y、temp均为int型变量,p1和p2为整型指针变量,则语句p1=&x;p2=&y;temp=*p1;*p1=*p2;*p2=temp;的功能是()。A)把x和y按从大到小排列B)把x和y按从小到大排列C)无确定结果D)交换x和y中的值答案:D解析:[单选题]44.设有声明语句?intb[3][3]={1,2,3,4,5,6,7,8,9};?,下面语句中不能输出数组元素b[1][2]的值6的是_。A)Printf("%d",*(*(b+1)+2));B)Printf("%d",*(&b[2][0]-1));C)Printf("%d",*(b[1]+2));D)Printf("%d",*(b+1)[2]);答案:D解析:[单选题]45.给出以下定义:charx[]="abcdefg";chary[]={'a','b','c','d','e','f','g'};则正确的叙述为__()____.A)数组x和数组y等价B)数组x和数组y的长度相同C)数组x的长度大于数组y的长度D)数组x的长度小于数组y的长度答案:C解析:[单选题]46.设有以下定义,则下面给出的语句中错误的是inta=0;floatb=1.25;charc='A';A)a++;B)c++;C)(a+1)++;D)b++;答案:C解析:[单选题]47.算法应当具有的特性不包括A)确定性B)有穷性C)美观性D)可行性答案:C解析:[单选题]48.为了对有序表进行二分查找,则要求有序表()。A)只能顺序存储B)只能链式存储C)可以顺序存储也可以链式存储D)任何存储方式答案:A解析:二分法查找也称折半查找,用顺序存储结构存储的线性有序表适用二分法查找。答案选择A选项。[单选题]49.下列不合法的字符常量是()A)'b?B)'\n?C)'\t?D)"b"答案:D解析:[单选题]50.若有:chara[5],*p1=a;则____是该数组范围内的有效指针。A)aB)p1+5C)*p1D)&a[5]答案:A解析:[单选题]51.有函数intf(intx){return(++x)*1.1;}则当某主调函数以f(2)的形式调用函数f后,函数f的返回值应为____。A)2B)3C)4D)5答案:B解析:[单选题]52.设有一个M*N的矩阵已经存放在一个M行N列的数组x中,且有以下程序段Sum=0;For(i=0;i<M;i++)Sum+=x[i][0]+x[i][N-1];For(j=1;j<N-1;j++)Sum+=x[0][j]+x[M-1][j];以上程序段计算的是______。A)矩阵所有靠边元素之和B)矩阵所有不靠边元素之和C)矩阵所有元素之和D)矩阵两条对角线元素之和答案:A解析:[单选题]53.已知doublea=5.2;则正确的赋值表达式是A)a+=a-=(a=4)*(a=3)B)a=a*3=2C)a%3D)a=double(-3)答案:A解析:[单选题]54.下列方法的定义说法正确的一项是()A)方法能嵌套定义,可以嵌套调用B)方法不能嵌套定义,可以嵌套调用C)方法不能嵌套定义,不可以嵌套调用D)方法能嵌套定义,不可以嵌套调用答案:B解析:[单选题]55.下述对C语言字符数组的描述中错误的是()。A)字符数组可以存放字符串B)字符数组中的字符串可以整体输入.输出C)可以在赋值语句中通过赋值运算符"="对字符数组整体赋值D)不可以用关系运算符对字符组中的字符串进行比较答案:C解析:[单选题]56.设k=7,x=12,则下列表达式值为3的是()。A)x%=(k%=5)B)x%=(k-k%5)C)x%=k-k%5D)(x%=k)-(k%=5)答案:D解析:[单选题]57.以下数据中,不正确的数值或字符常量是()。A)8.9e1.2B)10C)0xff00D)82.5答案:A解析:[单选题]58.在C语言中,若对函数类型未加显式说明,则函数的隐含类型是____。A)intB)doubleC)voidD)char答案:A解析:[单选题]59.C语言程序中,当调用函数时()。A)实参和虚参可以共用存储单元B)实参和虚参各占一个独立的存储单元C)计算机系统自动确定是否共用存储单元D)可以由用户指定是否共用存储单元答案:B解析:[单选题]60.以下关于long、int和short类型数据占用内存大小的叙述中正确的是A)均占4个字节B)根据数据的大小来决定所占内存的字节数C)由用户自己定义D)由C语言编译系统决定答案:D解析:[单选题]61.以下选项中,当x为大于1的奇数时,值为0的表达式是A)x\2B)x%2==0C)x%2!=0D)x%2==1答案:B解析:[单选题]62.设有intx=1,y=2,z;,则表达式z=x>y?x+y:x-y值为______。A)1B)2C)3D)-1答案:D解析:[单选题]63.如下说法不正确的是____。A)for()的小括号中的3个部分都可以省略B)while循环的功能可以用for循环实现C)do-while的循环体至少被执行一次D)while和do-while循环体不能使用break语句答案:D解析:[单选题]64.有关系R如下,其中属性B为主键:则其中最后一个记录违反了()。A)实体完整性约束B)参照完整性约束C)用户定义的完整性约束D)关系完整性约束答案:A解析:本题中属性B为主键,但最后一个记录为空,违反了实体完整性约束。关系模型中的完整性约束有:①实体完整性约束;②参照完整性约束;③用户定义的完整性约束三种。其中,实体完整性约束是指:若属性B是关系的主键,则B中的属性值不能为空。答案选择A选项。[单选题]65.inta[10];合法的数组元素的最小下标值为().A)10B)9C)1D)0答案:D解析:[单选题]66.如果需要把整型数以二进制形式存入文件中,可以使用C语言中的()。A)fread函数B)fgets函数C)fwrite函数D)fputs函数答案:C解析:[单选题]67.在下面C语言的函数说明语句中,正确的是().A)intB)intC)intD)int答案:A解析:[单选题]68.下列正确定义符号常量的命令是()A)#definePR3.3;B)#definePR=3.3;C)#definePR=3.3D)#definePR3.3答案:D解析:[单选题]69.下列合法的常量是()A)'\n?B)'3a?C)E13D)'a?+3答案:A解析:[单选题]70.C语言程序中,运算对象必须是整型数的运算符是()。A)&&B)/C)%D)*答案:C解析:模运算中不能出现浮点数,运算对象只能是整数。答案选择C选项。第2部分:多项选择题,共4题,每题至少两个正确答案,多选或少选均不得分。[多选题]71.C语言中最简单的数据类型包括()。A)整型B)实型C)逻辑型D)字符型答案:ABD解析:[多选题]72.以下描述正确的是A)函数定义可以嵌套,函数调用也可以嵌套。B)函数中,不可以有多条return语句C)全局变量可在函数外的任何位置定义D)函数定义不可以嵌套,函数调用可以嵌套。答案:CD解析:[多选题]73.141、若有定义:floatx=1.5;inta=1,b=3,c=2;则不正确的switch语句是()。A)switch(x){case1.0:printf("*\n");case2.0:printf("**\n");}B)switch((int)x);{case1:printf("*\n");case2:printf("**\n");}C)switch(a+b){case1:printf("*\n");case2+1:printf("**\n");}D)switch(a+b){case1:printf("*\n");casec:printf("**\n");}答案:ABD解析:[多选题]74.下列选项中,关于switch与多重if的区别正确的是()A)所有的多重if都能用switch结构代替B)所有的switch结构都能用多重if代替C)switch适用于等值判断D)多重if适用于区间判断答案:BCD解析:第3部分:填空题,共2题,请在空白处填写正确答案。[填空题]75.请阅读以下程序,为使输出时t值为4,输入量a和b应满足的条件是。main(){ints,t,a,b;scanf("%d,%d",&a,&b);s=1;t=1;if(a>0)s=s+1;if(a>b)t=s+t;elseif(a==b)t=5;elset=2*s;printf("s=%d,t=%d",s,t);}答案:0<a<b(a>0&&a<b)解析:[填空题]76.在C语言中,一个函数一般由两个部分组成,它们是【1】和【2】。答案:【1】函数声明【2】函数体解析:第4部分:判断题,共11题,请判断题目是否正确。[判断题]77.数组的下标都有一个范围,即?0~数组长度?。A)正确B)错误答案:错解析:[判断题]78.在不同的函数中可以使用相同名字的变量A)正确B)错误答案:对解析:[判断题]79.在C语言中,可以给数组中的元素逐个赋值,也可以给数组整体赋值。A)正确B)错误答案:错解析:[判断题]80.191、函数的实参可以是常量,变量或表达式。A)正确B)错误答案:对解析:[判断题]81.c程序的一行只能写一条语句.答案:错解析:[判断题]82.非静态全局变量的作用域可以扩展到构成该程序的其他源程序文件中。A)正确B)错误答案:对解析://C6函数与编译预处理/C63全局变量T[判断题]83.对字符数组进行初始化时,如果初值个数小于数组长度,则只将这些字符赋给数组中的前面那些元素,其余元素自动定为空字符('\0')。A)正确B)错误答案:对解析://C7数组/C73字符数组T[判断题]84.C语言本身并不提供输入输出语句。但可以通过输入输出函数来实现数据的输入输出。答案:对解析:第5部分:问答题,共13题,请在空白处填写正确答案。[问答题]85.已知"floata=3.5;intb=12;",则算术表达式"(int)(a+b/5)"的值是_____________。答案:5解析:/运行结果/C2整除与强制转换T[问答题]86.下面程序有两个printf语句,如果第一个printf语句输出的是194,则第二个print语句的输出结果是main(){inta[10]={1,2,3,4,5,6,7,8,9,0},*p;p=a;printf(?%X\n?,p);printf(?%x\n?,p+9);}答案:la6解析:对于指针变量的运算,就是对地址的运算。本题中由于指针指向的是整型变量,所以,使指针变量移动9个位置也就是移动18个字节。注意,本题是以16进制输出的。[问答题]87.从键盘输入一个字符串和一个字符,要求统计字符串长度和该字符在字符串中出现的次数。答案:#include#defineN100voidmain(){inti=0,n=0;//i用于统计字符串长度,n用于统计输入字符出现的次数charstr[N],ch;printf("请输入一个字符串:");gets(str);printf("请输入一个字符:");ch=getchar();while(str[i]!='\0'){if(str[i]==ch)n++;i++;}printf("字符串长度为:%d.\n",i);printf("字符%c出现的次数为:%d.\n",ch,n);}解析:[问答题]88.C语言提供了()种运算符。答案:34解析:[问答题]89.【程序填空】功能:一个自然数被8除余1,所得的商被8除也余1,再将第二次的商被8除后余7,最后得到一个商为a。又知这个自然数被17除余4,所得的商被17除余15,最后得到一个商是a的2倍。编写程序求这个自然数。*/#include<stdio.h>Main(){inti,n,a;i=0;while(1){if(i%8==1){n=i/8;if(n%8==1){n=n/8;**********SPACE***********/if(n%8==7)【?】;}}if(i%17==4){n=i/17;if(n%17==15)n=n/17;}if(2*a==n){printf("result=%d\n",i);**********SPACE***********/【?】;}**********SPACE***********/【?】;}}答案:=======(答案1)=======A=n/8=======(答案2)=======Break=======(答案3)=======I++=========或=========++i=========或=========I=i+1解析:[问答题]90.c语言程序的三种基本结构是:顺序结构,选择结构,【1】结构.答案:循环解析:[问答题]91.C语言中用_____表示逻辑真,用_____表示逻辑假。答案:空1:非0空2:0题号:55696解析:[问答题]92.c语言表达式5>2>7>8的值是【1】.答案:0解析:[问答题]93.调用fopen函数打开一文本文件,在"使用方式"这一项中,为追加而打开需填入【1】.答案:a.解析:

温馨提示

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

评论

0/150

提交评论