版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2/2计算机C语言专升本题库(总分100分,考试时长60分钟)一、单项选择题(每小题2分,共100分)1、下列说法正确的是________。 A、在c语言中,可以使用动态内存分配技术定义元素个数可变的数组 B、在C语言中,数组元素的个数可以不确定,允许随机变动 C、在C语言中,数组元素的数据类型可以不一致 D、在C语言中,定义一个数组后,就确定了它所容纳的元素的个数2、下列两条语句"
intc1=1,c2=2,c3;
c3=1.0/c2*c1;
"执行后变量c3的值是________。 A、0 B、0.5 C、1 D、23、以下描述正确的是________。 A、goto语句只能用于退出多层循环。 B、switch语句中不能出现continue语句。 C、只能用continue语句来中止本次循环。 D、在循环中break语句不能独立出现。4、包含哪种语句的函数不能声明为内联函数() A、变量定义 B、if……else C、位操作 D、switch5、若有以下说明和语句:
structst
{
intn;
char*ch;
}
;
structsta[3]
{
5,"abc",7,"def",9,"ghk"
}
,*p=a则值为6的表达式是______。 A、p++->n B、p->n++ C、(*.n++ D、++p->n6、在下列选项中,不正确的表达式是________。 A、a>b B、c--,++b,a+=1 C、a=c+b>n-m=k D、p++7、设矩阵a是一个n×n对称矩阵.即a[i,j]=a[i,j],为了节省存储空间,将其下三角部分按行序为主序存放在一维数b[1...n(n+1)/2]中,对任一下三角元素aij(i≥j),在一维数组b的下标位置k的值是______。 A、(i+(i-1))/2+j-1 B、i(i-1)/2+j C、i(i+1)/2+j-1 D、i(i+1)/2+j8、下列正确的标识符是________。 A、_do B、6a C、%y D、a+b9、以下程序:
#include<stdio.h>
main(){
charstr[10];
scanf("%s",&str);
printf("%s\n",str);
}
运行上面的程序,输入字符串howareyou,则程序的执行结果是________。 A、how B、howareyou C、h D、howareyou10、设整型变量m,n,a,b,c,d均为1,执行(m=a>b)&&(n=c>d)后,m,n的值是________。 A、0,0 B、0,1 C、1,0 D、1,111、有以下程序:
voidswap1(intc0[],intc1[])
{
intt;
t=c0[0];
c0[0]=c1[0];
c1[0]=t;
}
voidswap2(int*c0,int*c1)
{
intt;
t=*c0;
*c0=*c1;
*c1=t;
}
main()
{
inta[2]={3,5},b[2]={3,5};
swap1(a,a+1);
swap2(&b[0],&b[1]);
printf("%d%d%d%d\n",a[0],a[1],b[0],b[1]);
}
程序运行后的输出结果是______。 A、3553 B、5335 C、3535 D、535312、在一介c源程序文件中,要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使削的存储类别是________。 A、auto B、register C、extern D、static13、有语句:inta[10];则对指针变量p的正确定义和初始化。 A、intp=*a; B、int*p=a; C、intp=&a; D、int*p=&a;14、下列程序的运行结果是________。
#include<stdio.h>
voidsub(int*s,int*y){
staticintm=4;
*y=s[0];
m++;
}
voidmain(){
inta[]=1,2,3,4,5,k;
intx;
printf("\n");
for(k=0;k<=4;k++)
{
sub(a,&x);
printf("%d,",x);
}
} A、1,1,1,1,1, B、1,2,3,4,5, C、0,0,0,0,0, D、4,4,4,4,4,15、下列叙述中正确的是________。 A、每个C程序文件中都必须要有一个main()函数 B、在C程序中main()函数的位置是固定的 C、C程序中所有函数之间都可以:相互调用,与函数所处位置无关 D、在C程序的函数中不能定义另一个函数16、若a和b均是整型变量并已正确赋值,正确的switch语句是________。 A、15 B、50 C、55 D、517、设有定义:inta,*pa=&a;以下scanf语句中能正确为变量a读入数据的是________。 A、scanf(“%d”,pa); B、scanf(“%d”,a); C、scanf(“%d”,&pa); D、scanf(“%d”,*pa);18、有以下程序
#include<stdio.h>
#include<stdlib.h>
intfun(intn)
{
int*p;
p=(int*)malloc(sizeof(int));
*p=n;
return*p;
}
main()
{
inta;
a=fun(10);
printf("%d\n",a+fun(10));
}
程序的运行结果是______。 A、0 B、10 C、20 D、出错19、下列程序段的功能是________。计算数组x中相邻两个元素的和,依次存放到a数组中,然后输出a数组。程序段中待填空的(1)和(2)的正确选项是________。inti;
inta[9],x[10];
for(i=0;i<10;i++)
{
scanf("%d",&x[i]);
}
for((1);i<10;i++)
{
/*此处待填空(1)*/a[i-1]=x[i]+(2);
/*此处待填空(2)*/
}
for(i=0;i<9;i++)
{
printf("%d",a[i]);
}
printf("\n"); A、(1)i=1(2)x[i+1] B、(1)i=0(2)x[i-1] C、(1)i=1(2)x[i-1] D、(1)i=0(2)x[i+1]20、有以下程序
structstu
{
charnum[10];
floatscore[3];
};
main()
{
structstus[3]={{"20021",90,95,85},{"20022",95,80,75},{"20023",100,95,90}},*p;
inti;
floatsum=0;
p=s+2;
for(i=0;i<3;i++)sum=sum+p->score[i];
printf("%6.2f\n",sum);
}
程序运行后的输出结果是________。 A、250.00 B、250 C、285.00 D、28521、以下叙述中正确的是()。 A、C语言的源程序不必通过编译就可以直接运行 B、C语言中的每条可执行语句最终都将被转换成二进制的机器指令 C、C源程序经编译形成的二进制代码可以直接运行 D、C语言中的函数不可以单独进行编译22、在c语言中,能表示无符号长整型常数的是________。 A、OL B、4962710U C、912374u D、2UL23、c语言中,若未说明函数的类型,则系统默认该函数的类型是__________。 A、float型 B、long型 C、int型 D、double型24、C语言中while和do—while循环的主要区别是 A、While的循环控制条件比do—while的循环控制条件严格 B、do—while的循环体至少无条件执行一次 C、do—while允许从外部转到循环体内 D、do—while循环体不能是复合语句25、有以下程序段
typedefstructnode
{
intdata;
structnode*next;
}
*node;
nodep;
以下叙述中正确的是________。 A、p是指向structnode结构变量的指针的指针 B、NODEp;语句出错 C、p是指向structnode结构变量的指针 D、p是structnode结构变量26、按照标识符的要求,下列选项中,()符号不能组成标识符。 A、连接符 B、下划线 C、大小写字母 D、数字字符27、以下叙述中正确的是________。 A、使用typedef定义新类型名后,新类型名与原类型名实际上是等价的 B、结构体类型中的各个成分均不能是数组或指针 C、结构体类型的变量,不能在声明结构体类型组成时一起定义 D、元素为结构体类型的数组,只能在声明过结构体类型之后,单独进行定义28、以下叙述中正确的是________。 A、逻辑"或”(即运算符||)的运算级别比算术运算要高 B、C语言的关系表达式:0<x<10完全等价于:(0<x)&&(x<10) C、逻辑"非”(即运算符!)的运算级别是最低的 D、由&&构成的逻辑表达式与由||构成的逻辑表达式都有“短路”现象29、设有说明语句如下:staticcharstr[]="beijing";若执行下列输出语句:printf("%d\n",strlen(strcpy(str,"china")));
则输出结果为________。 A、5 B、7 C、12 D、1430、c语言可执行程序从什么地方开始执行?() A、程序中第一条可执行语句 B、程序中第一个函数 C、程序中的main()函数 D、包含文件中的第一个函数31、在c语言中,main函数默认返回一个()类型的值。 A、int B、float C、char D、void32、下列描述说明正确的是________。 A、定义结构体时,它的每个成员的数据类型可以不同 B、不同结构体的成员名不能相同 C、结构体定义时,其成员的数据类型不能是结构体本身 D、结构体定义时各成员项之间可用分号也可用逗号隔开33、已知p,p1为指针变量,a为数组名,j为整型变量,下列赋值语句中不正确的是________。 A、p=&j,p=p1; B、p=a; C、p=&a[j]; D、p=10;34、有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变量b。则不能把结点b连接到结点a之后的语句是________。
structnode
{
chardata;
structnode*next;
}
a,b,*p=&a,*q=&b; A、3475 B、3574 C、1234 D、123535、以下语句的输出结果是________。inta=-1,b=4,k;k=(++a<0)&&!(b--<=0);printf("%d,%d,%d\n",k,a,b); A、1,0,4 B、1,0,3 C、0,0,3 D、0,0,436、下列关于do…while语句的叙述中正确的是________。 A、do…while语句所构成的循环不能用其他语句构成的循环来代替 B、do…while语句所构成的循环只能用break语句跳出 C、do…while语句所构成的循环只有在while后面的表达式非零时才结束 D、do…while语句所构成的循环只有在while后面的表达式为零时才结束37、对于函数声明voidfun(inta[1],int*b);以下叙述中正确的是________。 A、函数参数A,b都是指针变量 B、有语法错误,数组a的大小不能为1 C、调用该函数后,实参变量所指向的内存单元的值肯定不会受影响 D、调用该函数时,a的值是从对应实参复制过来的,b的值是对应实参变量的地址38、有以下程序:
main()
{
intx=10,y;
if(x<20)y=100;
if(x>4)y=55/x;
elsey=10;
printf("%d\n",y);
}
则输出结果是________。 A、100 B、5)5 C、10 D、539、下列选项中不属于c语言的数据类型是________。 A、复数型 B、逻辑型 C、双精度型 D、集合型40、有如下定义
structperson
{
charname[9];
intage;
}
;
structpersonclass[10]={"john",17,"paul",19,"mary",18,"adam",16};
根据上述定义,能输出字母a的语句是______。 A、printf("%c\n",class[3].name); B、printf("%c\n",class[3].name[0]); C、printf("%c\n",class[4].name[1]); D、printf("%c\n",class[4].name[0]);41、以下叙述正确的是________。 A、在C程序中,主函数必须位于程序的最前面 B、在C程序中,一行只能写一条语句 C、C程序的基本结构是程序行 D、C语句是完成某种程序功能的最小单位42、经过以下语句定义后,表达式z+=x>y?++x:++y的值为________。
intx=1,y=2,z=3; A、2 B、3 C、6 D、543、有以下程序:
main()
{
inta=3,b=4,c=5,d=2;
if(a>b)if(b>c)printf("%d",d+++1);
elseprintf("%d",++d+1);
printf("%d\n",d);
}
程序运行后的输出结果是______。 A、2 B、3 C、43 D、4444、有以下程序
#include<stdio.h>
main()
{
intx=1,y=0,a=0,b=0;
switch(x)
{
case1:switch(y)
{
case0:a++;
break;
case1:b++;
break;
}
case2:a++;
b++;
break;
case3:a++;
b++;
}
printf("a=%d,b=%d\n",a,b);
}
程序的运行结果是________。 A、a=1,b=0 B、a=2,b=2 C、a=1,b=1 D、a=2,b=145、请读程序:
main()
{
char*p;
chars[80];
scanf(""%s"",s);
p=s[0];
printf(""%s"",p);
}
请判断上面程序选出正确答案是________。 A、"错误:p=s[0];正确:p=*s;" B、"错误:p=s[0];正确:p=s[];" C、"错误:p=s[0];正确:p=s;" D、"错误:p=s[0];正确:p=&s;"46、若有chara[80],*s=a;不正确的输入语句是________。 A、scanf("%s",s); B、gets(s); C、fscanf(stdin,"%c",s); D、fgets(s,80,stdin);47、假定a为一个整型数组名,则元素a[4]的字节地址为 A、a+4 B、a+8 C、a+16 D、a+3248、下列关于boolean类型的叙述中,正确的是________。 A、可以将boolean类型的数值转换为int类型的数值 B、可以将boolean类型的数值转换为字符串 C、可以将boolean类型的数值转换为char类型的数值 D、不能将boolean类型的数值转换为其他基本数据类型49、若有定义语句:chars[10]="1234567\0\0";则strlen(s)的值是________。 A、7 B、8 C、9 D、1050、已知函数fread.的调用形式为fread(buffer,size,count,fp);,其中buffer代表的是________。 A、存放读入数据项的存储区 B、一个指向所读文件的文件指针 C、一个指针,是指向输入数据存放在内存中的起始地址 D、一个整型变量,代表要读入的数据项总数
参考答案一、单项选择题1、D2、A3、C4、D【解析】主要考查的知识点为内联函数。
[要点透析]C中,含有循环语句、switch语句的函数不能说明为内联函数。5、D【解析】根据结构变量的存储特点,p+1意味着增加地址值为结构体数组a的一个元素所占的字节数,即p++使p由a[0]指向a[1]起始地址。本题++p->n得到p指向的结构体变量中成员n的值使之加1。因为p指向数组a起始地址,p->n的值为5,再执行自加1运行,结果为6。6、C7、B【解析】aij元素处在第i行第j列位置。上i-1行的元素个数为(1+i-1)(i-1)/2=i(i-1)/2。再加上在i行的j个元素,总共是i(i-1)/2+j。8、A9、A【解析】当从键盘输入bowareyou时,由于scanf输入函数的特点是遇到空格时结束读入字符,因此,该程序只将how这3个字符送到了字符数组str中,并在其后自动加上结束符“\0”。10、B【解析】m=a>b结果为假,则m的值为0,n=c>d结果为假,n的值为0。11、D【解析】函数swap1、swap2的作用均为交换两个数。主调函数“swap1(a,a+1)”使得数组a的首地址赋给形参c0[],使得c0指向a[0]所在的存储单元,a[1]的地址赋给形参c1[],使得c1指向a[1]所在的存储单元,故交换c0[0]与c1[0]后,a[0]与a[1]值也发生了变化;主调函数“swap2(&b[0],&b[1]);”起着同样的作用,使得指针变量c0指向了b[0]存储单元,c1指向了b[1]存储单元,并在swap2函数中发生了交换,所以b[0]、b[1]的值也发生变化,故本程序输出的结果是5353。12、D【解析】“auto”类定义的自动变:鞋实质上是一个函数内部的局部变量,作用域是在所说明的函数中;“register”说明只能用于说明函数中的变量和参数中的形参,因此不允许将外部变量或静态变量说明为register;“extern”是定义在所有函数之外的全局变量,它可以被所有的函数访问,在所有函数体的内部是有效的,所以函数之间可以通过外部变量直接传递数据;“static”为允许本源文件中所有函数使用的全局变量。13、B14、A【解析】本题中sub(int*s,int*y)函数的参数是两个指针型变量,在函数体内将数组s的第一个元素赋给y。主程序内,首先定义了一维数组并赋初值,然后通过for循环,5次调用sub(a,&x)函数,每一次调用都是将数组a的第一个元素1赋给x,并输出。15、D【解析】当一个程序只作为另一个程序的子程序的时候,那么该程序中可以没有主函数,它的位置不固定,并且可以调用程序中的其他函数,而其他函数却不可以调用main函数。函数中不可以再定义其他的函数。故本题的答案为选项A)。16、C【解析】仔细观察case后的语句,每个都没有用break关键字;在switch语句中,是通过break关键字来退出switch语句的。而在题目中,case8:k++;后没有break,则继续执行k+=2;这时还没有break语句,继续执行,这时的k的值是33;一直执行完k+=3;这时k的值是36;default语句是当表达式的值与任一case子句中的值都不匹配时,程序执行default后面的语句。在题目中,因为在执行完case10:k+=3;后还没有break,所以要执行k=k/j得k的值是2。break语句是用来退出循环,并从紧跟该循环语句的第17、A18、C19、C20、C21、B22、D23、C24、B25、C【解析】在C语言中,typedef用于说明一种新的类型名,本题中的node被定义为一种结构体类型名,NODE被定义为指向这种结构体变量的指针,我们可以用它来定义一个指向该类型结构体变量的指针。26、A【解析】本题考核的标识符定义。规定标识符由大小写字母、数字字符(0~9)和下划线组成,并且以字母或下划线开始,后跟0个或多个字母,数字字符或下划线。由此可知A)选项中的连接符不能用于组成标识符。27、A【解析】本题考查typedef的使用方法,typedef对已存在的类型使用一个新的名字,结构体类型中的成分可以是数组和指针,所以B选项错误,结构体类型的变量可以在声明结构体的时候一起定义,C选项错误,D选项中可以一起定义。28、D【解析】B选项中,(x>0)&&(x<10)的值是1或0,条件是x>0并且x<10但是0<x<10这种写法的结果任何时候都是1;C选项中,逻辑“非”(即运算符!)的运算级别是最高的;A选项中,算术运算符优先级较高,关系和逻辑运算符优先级较低。因此D选项正确。29、A【解析】本题考查求字符串的长度。数组str初始化的长度是7,使用strcpy函数将新字符串赋给str后,strlen函数返回的是新字符串的字符个数5。30、C31、A32、A33、D34、B【解析】在被调用过程中,有这样的语句“StaticS
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025广东汕头市消防救援支队定向招录潮南区政府专职消防员24人参考笔试题库附答案解析
- 2025年淮南安徽省焦岗湖国有资产运营有限公司公开招聘9名工作人员参考笔试题库附答案解析
- 2026国航股份西南分公司乘务员岗位高校毕业生校园招聘参考考试试题及答案解析
- 2026海南省旅游和文化广电体育厅校园招聘厅属事业单位工作人员16人(第1号)参考笔试题库附答案解析
- 2025潍坊水源技工学校教师招聘(7人)参考笔试题库附答案解析
- 2025四川创锦发展控股集团有限公司招聘简历筛选情况考试备考题库及答案解析
- 2026云南西双版纳州勐海县供销合作社联合社公益性岗位招聘2人参考考试试题及答案解析
- 2025西安外事学院门诊部招聘参考考试试题及答案解析
- 网店分成合同范本
- 耳机订货合同范本
- 基于SystemView的数字通信仿真课程设计
- 物业二次装修管理规定
- GB 10133-2014食品安全国家标准水产调味品
- FZ/T 92023-2017棉纺环锭细纱锭子
- 现代诗的写作课件
- 采气工程课件
- 非洲猪瘟实验室诊断电子教案课件
- 工时的记录表
- 金属材料与热处理全套ppt课件完整版教程
- 热拌沥青混合料路面施工机械配置计算(含表格)
- 水利施工CB常用表格
评论
0/150
提交评论