版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021年安徽省滁州市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.十进制数124转换成二进制数是()
A.111l010B.1111100C.1011111D.1111011
2.以下叙述中不正确的是()。
A.在一个函数中,可以有多条return语句
B.函数的定义不能嵌套,但函数的调用可以嵌套
C.函数必须有返回值
D.不同的函数中可以使用相同名字的变量
3.
4.有下列程序:
程序执行后的输出结果是()。A.3,7,3,7B.7,3,7,3C.3,7,7,3D.7,3,3,7
5.需求分析的主要任务是()。
A.确定软件系统的功能B.确定软件开发方法C.确定软件开发工具D.确定软件开发入员
6.设有以下程序段intx=0,s=0;while(!x!=0)s+=++x;printf("%d",s);则
A.运行程序段后输出0B.运行程序段后输出1C.程序段中的控制表达式是非法的D.程序段执行无限次
7.阅读以下程序:#include<stdio.h>main(){intcase;floatprintF;printf("请输人2个数:");scanf("%d%fl"&case,&printF);printf("%dofof\n",case,printF);}该程序在编译时产生错误,其出错原因是()。A.定义语句出错,case是关键字,不能用做用户自定义标识符
B.定义语句出错,printF不能用做用户自定义标识符
C.定义语句无错,scanf不能作为输入函数使用
D.定义语句无错,printf不能输出case的值
8.可用作C语言用户标识符的一组标识符是()。A.voiddefine+WORDB.a3_b3_123YNC.for-abcCaseD.2aDOsizeof
9.判断有向图是否存在回路,利用()方法最佳。
A.求关键路径B.求最短路径C.拓扑排序D.广度优先遍历
10.
11.
12.以下叙述正确的是()。
A.表达式“sizeof(FILE*)==sizeof(int*)”的值为真
B.文件指针的值是一个整数,它的值一定小于文件字节数
C.文件指针的值是所指文件的当前读取位置
D.使用fscanf函数可以向任意类型的文件中写入任意数量的字符
13.以下哪种操作最适合先进行排序处理()
A.找最大、最小值B.计算算术平均值C.找中间值D.找出现次数最多的值
14.数据库系统的核心是()。
A.数据模型B.数据库管理系统C.数据库D.数据库管理员
15.有以下程序#includevoidWriteStr(char*fn,char*str){FILE*fp;fp=fopen(fn,"w");fputs(str,fp);fclose(fp);}main(){WriteStr("t1.dat","start");WriteStr("t1.dat","end");}程序运行后,文件t1.dat中的内容是______。
A.startB.endC.startendD.endrt
16.有以下程序(注:字符a的ASCII值为97):#include<stdio.h>main(){char*s={“abc”};do{printf(“%d”,*s%10);++s;}while(*s);}程序的运行结果是()。
A.789B.abcC.7890D.979899
17.下面程序的运行结果是()。
#inelude<stdio.h>
voiddel(char*s)
{inti,j;
char*a;
a=s:
for(i=0,j=0;a[i]!='\0';i++)
{if(a[i]>='0'&&a[i]<='9')
{s[j]=a[i];
j++;
}
s[j]='\0';
}
}
main
{char*s="aa89gggh";
del(s):
printf("\n%s",s);
}A.A.1B.2C.3D.4
18.对长度为n的无序线性表进行顺序查找,则查找成功、不成功时的平均数据比较次数分别为()。
A.n/2,nB.n+1/2,n-1C.n+1/2,nD.n-1/2,n-1
19.
20.有以下程序:#include<stdio.h>main(){chars[]="012xy\O8s34f4w2‘;inti;n=0;,for(i=0;s[i]!=0;i++)if(s[i]>=0s[i]<=9)n++;printf("%d\n",n);}程序运行后的输出结果是()。A.0B.3C.7D.8
二、2.填空题(20题)21.下列程序执行后输出的结果是【】。
f(inta)
{staticc=0;
c=a+c++;
return(c);
}
main()
{inta=2,i,k;
for(i=0;i<2;i++)
k=f(a++);
prinf("%d\n",k);
}
22.数据元素之间______的整体称为逻辑结构。
23.下列程序的运行结果是______。
#include<stdio.h>
main()
{inta,b,c;
a=3;b=4;c=5;
if(a>b)
if(a>c)
printf("%d",a);
elseprintf("%d",b);
printf("%d\n",c);
}
24.二分法查找仅限于这样的表:表中的数据元素必须有序,其存储结构必须是______。
25.排序是计算机程序设计中的一种重要操作,常见的排序方法有插入排序、【】和选择排序等。
26.请读程序片段:
inta=17;
printf("%d,%o\n",a,a);
以上程序片段的输出结果是【】。
27.以下程序可把输入的十进制数以十六进制数的形式输出,请填空。
#inelude<stdio.h>
main()
{eharb[17]={"0123456789ABCDEF"};
intc[64],d,i=0,base=16;
longn;
printf("Enteranumber:\n");
seanf("%ld",&n);
do{c[i]=【】;i++;n=n/base;}
while(n!=0);
printf("Transmitenewbase:\n");
for(--i;i>=0;--i)
{d=c[i];printf("%c",b【】);}
printf("\n");
}
28.若已知a=10,b=20,则表达式!a<b的值为【】。
29.以下函数的功能是删除字符串s中的所有数字字符。请填空。
vioddele(char*s)
{intn=0,i;
for(i=0;s[i];i++)
if(______)
s[n++];s[i];
s[n]=______;
}
30.数据库保护分为:安全性控制、______、并发性控制和数据的恢复。
31.函数fun的功能是使一个字符串按逆序存放。请填空。
voidfun(charstr[])
{charm;inti,j;
for(i=0,j=strlen(str);i<【】;i++,j--)
{m=str[i];
str[i]=【】;
str[j-1]=m;
}
printf("%s\n",str);
}
32.下面程序中函数fun的功能是:找出一维数组元素中的最大值和它所在的下标,并将最大值和其下标通过形参传回。数组元素中的值已在主函数中赋予。主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。请填空。
#include<stdlib.h>
#include<sldio.h>
voidfun(inta[],intn,int*max,int*d)
{inti;
*max=a[0];*d=0;
for(i=0;【】;i++)
if(*max<【】)
{*max=a[i];*d=i;}
}
main()
{inti,x[20],max,index,n=10;
randomize();
for(i=0;i<n;i++)
{x[i]=rand()%50;printf("%4d",x[i]);}
printf("\n");
fun(x,n,&max.&index);
printf("Max=%5d,Index=%4d\n",max,index);
}
33.下面程序的功能是输出数组s中最大元素的下标,请填空。
main()
{intk,p,s[]={1,-9,7,2,-10,3};
for(p=0,k=p;p<6;p++)
if(s[p]>s[k])【】
printf("%d\n",k);}
34.下面程序的运行结果是______。
intf(inta[],intn)
{if(n>1)returna[0]+f(&a[1],n-1);
elsereturna[0];
{
main()
{intaa[3]={1,2.3},s;
s=f(&aa[0],3);
printf("%d\n",s);
}
35.以下程序调用invert函数按逆序重新放置a数组元素的值。a数组中的值在main函数中读入。
#include<stdio.h>
#defineN10
invert(s,i,j)
int*s,i,j;
{intt;
if(i<j)
{t=*(s+i);
*(s+i)=(s+j);
*(s+j)=t;
invert(s,【】,j-1);
}
}
main()
{
inta[N],i;
for(i=0;i<N;i++)scanf("%d",a+【】);
invert(a,0,N-1);
for(i=0,i<N;i++)printf("%d",a[i]);
printf("\n")
}
36.下列程序段的输出结果是______。
intn='c':
switch(n++)
{default:printf("error");break;
case'a':printf("good");break;
case'c':printf("moming");
case'd':printf("class");
}
37.以下isprime函数的功能是判断形参a是否为素数,是素数,函数返回1,否则返回0。请填空。
intisprime(inta)
for(i=2;i<=a/2;i++)
if(a%i==0)[8];
[9];
38.有以下程序:#include<stdio.h>#include<string.h>main(){chara[]={'a','b','c','d','e','f','h','\0'};inti,j;i=sizeof(A);j=strlen(A);printf("%d,%d",i,j);}程序运行后的输出结果是()。
39.mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。请填空。
intmystrlen(char*str)
{inti;
for(i=0;【】!='\0';i++);
return(i);}
40.以下程序的输出结果是【】。
doublesub(doublex,doubley,doublez)
{y-=1.0;
z=z+x;
returnz;
}
main()
{doublea=2.5,b=9.0;
printf("functionrunningresultis:%6.1f\n",sub(b-a,a,A));
}
三、1.选择题(20题)41.在下列字符序列中,不可用做C语言标识符的是()
A.student___numB.classC.#88D.month___12
42.下列程序的输出结果是()。#include<stdio.h>main(){inta=2,b=3,p;p=f(a,b);printf("%d",p);}intf(a,b){intc;if(a>b)c=1;elseif(a==b)c=0;elsec=-1;return(c);}
A.-1B.0C.1D.2
43.在执行完下列的C语句段之后,则B的值是()。Chara="A";intb;B=((34&&56)&&(a<'b'));
A.int类型B.float类型C.void类型D.函数无类型说明,定义有错
44.以下程序的运行结果是#defineMIN(x,y)(x)<(y)?(x):(y)main(){inti=10,j=15,kk=10*MIN(i,j);printf("%d\n",k);}
A.10B.15C.100D.150
45.字符(char)型数据在微机内存中的存储形式是______。
A.反码B.补码C.EBCDIC码D.ASCII码
46.若a、b、c、d都是int型变量且都已经正确赋初值,则下列不正确的赋值语句是()。
A.a+d;B.a++;C.a=b=c=d=100;D.a=(b=3)+(d=5);
47.下面程序段的执行结果是()。intx=10;for(;x;x--){if(x%3)continue;printf("%d",x);}
A.875421B.963C.741D.852
48.若要求从键盘读入含有窄格字符的字符串,应使用函数()。
A.getc()B.gets()C.getchar()D.scanf()
49.若变量已正确定义,有以下程序段inta=3,b=5,c=7;if(a>b)a=b;c=a;if(c!=a)c=b;printf("%d,%d,%d\n",a,b,c);其输出结果是
A.程序段有语法错B.3,5,3C.3,5,5D.3,5,7
50.设有:inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值是
A.1B.2C.3D.4
51.请选出下面正确的程序段()。
A.int*s;scanf("%d",s);┆
B.int*s,k;*s=100;┆
C.int*s,k;char*p,c;s=&k;p=&c;*p='a';┆
D.int*s,k;char*p,c;s=&k;p=&c;s=p;*s=1;┆
52.以下不能正确计算代数式sin2()值的C语言表达式是()。
A.1/3*sin(1/2)*sin(1/2)
B.sin(0.5)*sin(0.5)/3
C.pow(sin(0.5),2)/3
D.1/3.0*pow(sin(1.0/2),2)
53.软件工程的出现是由于()。A.A.程序设计方法学的影响B.软件产业化的需要C.软件危机的出现D.计算机的发展
54.以下函数值的类型是_______。fun(floatx){floaty;y=3*x-4;returny;}
A.intB.不确定C.voidD.float
55.下列正确的实型常量是()。
A.E3.4B.-12345C.2.2eO.8D.4
56.以下程序输出的结果是#include<stdio.h>#include<string.h>main(){charw[][10]={"ABCD","EFGH","IJKL","MNOP"},k;for(k=1;k<3;k++)printf("%s\n",&w[k][k]);}
A.ABCDFGHKLB.ABCEFGUMC.EFGJKOD.FGHKL
57.可以在C语言中用做用户标识符的是______。
A.voiddefineWORDB.as_b3_123IfC.for-abccasD.2cDoSIG
58.sizeof(float)是______。
A.一种函数调用B.一个双精度型表达式C.一个整型表达式D.一个不合法的表达式
59.若变量已正确定义并赋值,下面符合C语言的表达式是_____。
A.a:=b+1B.a=b=c+2C.int18.5%3D.a=a+7=c+b
60.有以下程序main()intk=4,n=0;for(;n<k;){n++;if(n%3!=0)continue;k--;}printf("%d,%d\n",k,n);程序运行后的输出结果是
A.1,1B.2,2C.3,3D.4,4
四、选择题(20题)61.下列函数的类型是()。fun(doublex){floaty;y=3*x-4;returny;}
A.intB.不确定C.voidD.float
62.以下选项中可用做C程序合法实数的是()。
A..leOB.3.0e0.2C.E9D.9.12E
63.以下选项中非法的字符常量是()。
A.\101B.\65C.\xffD.\019
64.第
15
题
非空的循环单链表head的尾结点(由p所指向),满足
A.p->next==NULLB.p==NULLC.p->next=headD.p=head
65.
66.(59)SQL语言又称为()
A.结构化定义语言
B.结构化控制语言
C.结构化查询语言
D.结构化操纵语言
67.
以下叙述中正确的是()。
A.预处理命令行必须位于C源程序的起始位置
B.在C语言中,预处理命令行都以“#”开头
C.每个C程序必须在开头包含预处理命令行:#include<stdio.h>
D.C语言的预处理不能实现宏定义和条件编译的功能
68.
69.有以下程序
70.以下选项中关于C语言常量的叙述错误的是()。
A.经常被陡用的变量可以定义成常量
B.常量分为整型常量、实型常量、字符常量和字符串常量
C.常量可分为数值型常量和非数值型常量
D.所谓常量,是指在程序运行过程中,其值不能被改变的量
71.有以下程序:
voidmain()
{inta=15,b=21,m=0;
switch(a%3)
{case0:m++;break;
case1:m++;
switch(b%2)
{defaule:m++;
case0:m++;break;
}
}
printf("%d\n",m);
}
程序运行后的输出结果是()。
A.1B.2C.3D.4
72.下列叙述中正确的是()。A.顺序存储结构的存储空间一定是连续的,链式存储结构的存储空间不一定是连续的
B.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构
C.顺序存储结构能存储有序表,链式存储结构不能存储有序表
D.链式存储结构比顺序存储结构节省存储空间
73.设有以下定义uniondata{intd1;floatd2;)demo;则下面叙述中错误的是()。A.变量demo与成员d2所占的内存字节数相同
B.变量demo中各成员的地址相同
C.变量demo和各成员的地址相同
D.若给demo.d1赋99后,demo.d2中的值是99.0
74.
75.输出语句:prinff(”%d\n”,ll+011);的输出结果是()。
A.20B.22C.022D.021
76.若intk=8;则执行下列程序后,变量k的正确结果是
main()
{intk=8;
switch(k)
{case9:k+=1;
case10:k+=1;
default:k+=1;
case11:k+=1;break;
}
printf("%d\n",k);
}
A.12B.1
C.10D.9
77.
78.下列关于C语言的叙述错误的是()。
A)大写字母和小写字母的意义相同
B)不同类型的变量可以在一个表达式中
C)在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型
D)同一个运算符号在不同的场合可以有不同的含义
79.第
11
题
若有定义:char*st="howareyou";下列程序段中正确的是
A.chara[11],*p;strcpy(p=a+1,&st[4]);
B.chara[11];strcpy(++a,st);
C.chara[11];strcpy(a,st);
D.chara[],*p;strcpy(p=&a[1],st+2);
80.
五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:通过某种方式实现两个变量值的交换,规定不允许增加语句和表达式。例如变量num1中的值原为2,num2中的值原为1,程序运行后,num1中的值为l,num2中的值为2。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.假定输入的字符串中只包含字母和*号。请编写函数proc,它的功能是:将字符串中的前导*号全部删除,中间和后面的*号不删除。 例如,若字符串中的内容为****a*bc*def*g****,删除后,字符串中的内容则应当是a*bc*def*g****。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数proc的花括号中填入所编写的若干语句。 试题程序: #include<stdio.h=:{> #include<conio.h> woidproc(char*str) { } voidmaincharstr[81];printf("Enterastring:\n");gets(str);proc(str):printf("Thestringafterdeleted:\n");puts(str);}
参考答案
1.B
2.C
3.D
4.C程序定义两个整型变量i、j,初值为3,7。另外,定义两个整型指针变量p、q,其中p指向i,q指向j。将i、j的地址传给swap函数。在swap函数中,a指向i,b指向j。通过临时变量t交换a和b指向的值,此时a指向的实参i、b指向的实参j的值发生了交换。即a指向i的值为7,b指向j的值为3;再通过临时变量tp交换a和b的指针值,使得a指向j,b指向i。所以swap中输出a指向的值为3(j),b指向的值为7(i);swap函数调用结束后,输出p和q指向的值,即i、j的值为7、3。所以程序输出:3,7,7,3。本题答案为C选项。
5.A需求分析是软件开发之前必须要做的准备工作之一。需求是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。故需求分析的主要任务是确定软件系统的功能。本题答案为A选项。
6.B解析:本题考查while语句的使用。本题考查逻辑非运算符和不等于运算符的区别,逻辑非运算符'!'的优先级大于不等于运算符'!='的优先级。
7.A本题中定义了整形变量case,但case是关键字,关键字不能用做标识符。单精度printF不是关键字,因为标识符区分大小写。所以A不正确。
8.B
9.C
10.C
11.B
12.A“sizeof(FILE*)=4”,因为“file*”为指针,指针变量占用字节数为4,所以“sizeof(int*)=4”,选项A正确。文件指针的值是地址,是一个十六进制数,它的值不一定小于文件字节数,因此选项B错误。文件指针是所指文件的当前读取位置,而不是文件指针的值,因此选项C错误。“intfscanf(FILE*Stream,constchar*format,[argument...]);”,fScanf函数可以向任意类型的文件写入任意数量的数据(不能超过系统的缓冲区),写文件先写入缓冲区,最后一起写入文件,因此选项D错误。故本题答案为A选项。
13.C
14.B解析:数据库管理系统是数据库系统的核心,是负责数据库的建立、使用和维护的软件。数据库管理系统建立在操作系统之上,实施对数据库的统一管理和控制。用户使用的各种数据库命令以及应用程序的执行,最终都必须通过数据库管理系统。另外,数据库管理系统还承担着数据库的安全保护工作,按照数据库管理员所规定的要求,保证数据库的完整性和安全性。
15.B
16.A因为小写字符a、b、c的ASCII值分别为97、98、99。在dowhile循环语句中,每次对字符的ASCII值取余数并输出,所以分别输出7、8、9。故本题答案为A选项。
17.D本题中del(char*s)函数实现的功能是:逐个读入S数组中的字符,如果遇到数字,则将数字存在s中,遇到非数字字符则跳过。所以最后输出的应该是字符串S中所有的数字的个数。
18.C
19.B
20.B考查简单的C程序数组和循环。for循环是指i=0,如果s/[3]!=0,则i自动加1。if循环指的是s[i]中的元素大于等于0且小于等于9,则n加l,所以答案为B。
21.77解析:在程序执行时,static变量仅初始化一次,下次使用时将使用上次保存的值。
22.逻辑关系逻辑关系
23.55解析:分析程序,当a=3;b=4;c=5时,判断语句a>b不成立,所以不执行后面的语句,直接执行“printf('%d\\n',c);”语句,输出c的值,输出结果为5。
24.顺序存储(顺序方式存储)顺序存储(顺序方式存储)解析:二分法查找对表的要求是有序的顺序表,即第一要求是数据元素有序,第二要求是按顺序方式存储。
25.交换排序交换排序解析:常见的排序方法有插入排序(包括简单插入排序法和希尔排序法等)、交换排序(包括冒泡排序和快速排序法等)和选择排序(包括简单选择排序和堆排序等)。注意:常见的排序方法及其作用机制和区别。
26.1721
27.n%base[d]n%base[d]解析:程序中的字符数组b存储了十六进制16个数字的字符,整型数组c用于存储转换的十六进制数的各位数值。将整数n转换成它的各位十六进制数值,需采用除以16取余的方法,即求n除以16的余,得到它的十六进制的末位数,接着将n除以16,在n不等于0的情况下循环,顺序求出n的十六进制的倒数第一、第二、第三位数等。程序中变量base已预置16,所以在第一处填n%base。当n的十六进制数的倒数第一、第二、第三位等依次存放于数组c中后,就从最高位至最低位,参照数组c[i]的内容d(以其内容为下标),取十六进制数字符表中的字符b[d)输出,所以在第二处填[d]。
28.11解析:计算表达式!a<b,先计算!a,因a的值为10,!a的值为0,而关系表达式0<20为真,所以表达式!a<b的值为1。
29.s[i]<'0'‖s[i]>9或!(s[i]>='0'&&s[i]<='9')或!(isdigit(s[i]))isdigit(s[i])==0或s[i]>'9'‖s[i>'0'或!(s[i]<='9'&&s[i]>='0')或*(s+i)<'0'‖*(s+i)>'9'或!(*(s+i)>='0'&&*(s+i)<=9或!(isdigit(*(s+i)))或*(s+i)>='9'&&*(s+i)<='0'!(*(s+i)<='9'&&*(s+i)>='0'或iss[i]<'0'‖s[i]>9,或\r\n!(s[i]>='0'&&s[i]<='9')或!(isdigit(s[i]))\r\nisdigit(s[i])==0或s[i]>'9'‖s[i>'0'或\r\n!(s[i]<='9'&&s[i]>='0')或*(s+i)<'0'‖*(s+i)>'9'或\r\n!(*(s+i)>='0'&&*(s+i)<=9或!(isdigit(*(s+i)))或\r\n*(s+i)>='9'&&*(s+i)<='0'\r\n!(*(s+i)<='9'&&*(s+i)>='0'或is解析:本题考核的知识点是字符指针变量作为函数的参数以及与字符串有关的算法。从一个字符串中删除某字符的方法是从字符串的第一个字符开始一一判断该字符是否是要删除的字符,若不是则把它放到结果字符串中,若是则不放入结果字符串中。本题的第一个空应判断a[i]是否为数字字符,只有在不是数字字符的情况下才存入结果字符串,所以应填入s[i]<'0'‖s[i]>'9'。最后应在结果字符串的末尾填上字符串结束标志“\\0”。
30.完整性控制完整性控制
31.strlen(str)/2str[j-1]
32.i<na[i]i<na[i]解析:在main函数中,randomize是为了生成随机种子,以便在使用rand函数时产生不同的数。通过循环用rand函数产生10个随机数。在fun函数中,要在n个数中找最大值,所以第一处填写i<n,每次将当前最大值与数组中的某元素比较,第二处填写a[i]。
33.k=p;k=p;解析:为要寻找数组中的最大元素的下标,需先预设1个临时最大元素的下标,并顺序逐一考查数组的元素,当发现当前元素比临时最大元素更大时,就用当前元素的下标更新临时最大元素下标。直至考查了数组的全部元素后,这临时最大元素下标就是数组的最大元素下标。通常预设的最大元素下标是数组的首元素下标,考查是从首元素开始顺序向后继元素考查。程序中,存储临时最大元素下标的变量是k,变量p控制顺序考查的循环控制变量。当发现当前元素s[p]比临时最大元素s[k)更大时,应该用p更新k。所以在空框处应填入代码“k=p;”。
34.66解析:经过分析将递归函数写成其数学表达式如下:
f(&a,n)=a[0]+f(&a[1],n-1)n>1
f(&a,n)=a[0]n=1
本题中定义了一个长度为3的数组aa并初始化。接着调用递归函数f,由上面的数学表达式以计算其返回值s=1+2+3=6,所以空格处应该填6。
35.i+1i
36.morningclassmorningclass解析:本题考查了两个知识点:①“++、--”运算后缀形式是先使用变量原来的值,使用完后再使其增1或减1;②在switch语句中,当n=\'c\'时,执行“case\'c\':”,输出morning;因为此句中没有break语句,因此接着执行'case\'d\':”,输出class,最终输出结果为morningclass。
37.如果a能被i整除,则a是素数,返回值为0。如果a不能被i整除,则a不是素数,返回值为1。
38.98
39.*(str+i)或str[i]*(str+i)或str[i]解析:str是指针变量,它指向字符型数据,在循环过程中,可以用*(str+i)来访问字符串中的第i个元素,判断是否是结束标志,如果不是,i=i+1,继续取下一个元素进行判断,直到*(str+i)的值为'\\0'为止,也可以用下标的方式引用字符,如*(str+i)相当于str[i]。
40.functionrunningresultis:9.0
41.C
42.A解析:本题考查ifelse语句。在intf(a,b)中:第一个if语句,先判断条件,发现a>b条件不成立,则执行与其配对的else语句;第二个if语句,先判断条件,发现a==b条件不成立,则执行与其配对的else语句,c=-1。
43.A解析:本题考查默认函数的函数值的类型。在函数定义时,由于函数没有说明其类型,系统默认一律自动按整型处理,因此,函数的类型为int类型。
44.B解析:该题考查函数的宏定义及三目运算符。其中表达式10,MIN(i,j)利用宏展开后为:10*<j?i:j,即100<15?10:15,其值为15,然后赋值给k。
45.D解析:将—个字符常量放到一个字符变量中,实际上并不是把该字符本身放到内存单元中去,而是将该字符的ASCII码值放到存储单元中。
46.A解析:C语言规定,赋值号的右边可以是一个赋值表达式.因此选项C)、选项D)正确:在选项B)中,a++是一个自加1的表达式,a被重新赋值,因此它是一个合法的赋值表达式:选项A)中,a+d是一个算术表达式,虽然最后有一个分号,但这个表达式中没有赋值操作,因此它不是一条赋值语句。
47.B解析:本题的for循环省略了第一个表达式,即for没有任何初始化动作;第二个表达式x的意思是只要x非0,则循环继续;第三个表达式让x在每次循环结束时减1。x初始为10,然后进入循环体,判断x是否能被3整除,不能整除则执行continue;语句进入下一次循环,能整除则输出x。故最终输出的结果为从10递减到1之中能被3整除的数9、6和3。所以正确答案是B。
48.B解析:scanf()语句中用“空格”间隔不同的字符串,空格将被全部忽略掉,所以用scanf()函数不能输入空格;getchar()函数用于输入字符,其调用形式为:ch=getchar(),getchar()函数从终端读入一个字符作为函数值,把读入的字符赋给变量ch。在输入时,空格、回车符都将作为字符读入,而且只有在用户敲入Enter键时,读入才开始执行。gets()函数的调用形式为:gets(str_adr),其中str_adr是存放输入字符串的起始地址,可以是字符数组名、字符数组元素的地址或字符指针变量。ge
49.B解析:本题考查if条件语句。a=3,b=5,因此a>b条件不成立,c=a=3。此时c!=a条件不成立,不执行c=b;语句,c的值仍然为5。结果a=3,b=5,c=3。
50.B解析:本题考查逻辑与运算的运算规则。其规则是:当运算符前后两个条件表达式都满足时,其最终结果才为真。当发现第一个表达式的值为假后,计算机将不再执行后面表达式的运算。
本题中,由于前一个表达式的值为“假”,所以,后面的表达式不再进行运算,因而n的值保持不变,仍为2。
51.C解析:本题的选项A)和B)犯了一个同样的错误,即指针变量s定义后并没有指向具体的变量。也就是说,s中没有确定的地址值,它的值是不可预见的,所指向的单元也是不可预见的,因此不能进行赋值操作。另外,在选项D)中,s是int型指针变量,p是char型指针变量,指向的内存单元所占用的字节数是不同的,因而不能将字符指针变量p的值赋给整型指针变量s。
52.A解析:A中sin(1/2)是0,因为1和2都是整数,“/”在这里是整除。
53.C解析:软件工程的基本概念。软件工程概念的出现源自于软件危机。为了消除软件危机,通过认真研究解决软件危机的方法,认识到软件工程是使计算机软件走向工程科学的途径,逐步形成了软件工程的概念。
54.A解析:函数定义时如果数据类型默认,则默认为int。函数中如果有“retum(表达式):”语句,表达式的类型可能与函数的类型不一致,但它并不能改变函数的类型,实际情况是把表达式转换为函数值的类型作为返回值,因此本题的函数值类型是int。
55.B解析:实型常量有两种书写形式:①小数形式,它由符号、整数部分、小数点及小数部分组成;②指数形式,由十进制小数形式加上指数部分组成,其形式为十进制小数e指数或十进制小数E指数。注:e或E后面的指数必须是整数,并且在e或E的前面必须有数字。本题中,选项A)中E的前面没有数字,因此错误。选项C)中0.8不是整数,因此错误。选项D)中4是整型常量而不是实型常量。
56.D解析:当k=1时,引用的是二维数组元素w[1][1],值为字符串“FGH”;当k=2时,引用的是数组元素w[2][2],即字符串“KL”;当k=3时,结束程序的执行。注意:字符串数组的定义。
57.B解析:C语言规定,标识符只能由字母、数字和下划线三种符号组成,而且第一个字符必须是字母或下划线。另外还需要注意的是关键字不能作标识符。选项A中void,C中for都为关键字,D中2c以字母开头。
58.C解析:sizeof(float)返回float型变量所占存储单元的字节数。
59.B解析:选项A和C一望而知其错;对于表达式a=a+7=c+b(答案D),是先执行赋值表达式a+7=c+b,再把这个表达式的值赋给a,显然,表达式a+7=c+b非法,因为赋值表达式的左侧不能为常量或表达式。
60.C解析:本题考核的知识点是for语句和continue语句的综合应用。在本程序的for循环中,用到了一个continue语句,continue语句的作用是停止本次循环,即不执行循环体内continue语句后面的其他语句,继续下次循环的条件判断。首先在for循环中n自加1(值变为1),然后执行后面的if语句,由于if语句后面括号的表达式(1%3!=0)的值为真,程序执行continue语句,回到for循环的开始部分,并且判断for循环中的条件表达式(n<k)为真,重复执行“n++;”语句,如此循环直到n=3时,if语句判定条件中表达式(3%3!0)的值为假,程序执行if语句后面的“k--”语句,此时k的值为3,不满足“n<k”,退出for循环。故最后的k和n的值为3和3,选项C符合题意。
61.A本题考查函数值的类型。在函数调用时,尽管Y的类型是float.x的类型是double,但是因为函数定义时没有指定类型说明,系统默认函数值的类型为int型,所以计算后Y的类型是int型。
62.AC语言中实数的指数计数表示格式为字母e或者E之前必须有数字,且e或E后面的指数必须为整数。所以选项A正确。
63.D在选项中,\\019,以0开头的数都为八进制数,而八进制的表示数字是0~7,所以答案选择D。
64.C循环链表是另一种形式的链式存储结构。表中最后一个结点的指针域指向头结点,整个链表形成一个环。这种循环链表的好处是从任意结点开始都可以找到其他结点。
循环链表的操作和线性链表基本一致,差别仅在于链表最后
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026秋招:江苏海外企业集团面试题及答案
- 提升涂膜剂耐候性技术指导书
- 2026年大学(城市地下空间工程)实践应用测试试题及答案
- 2026辽宁水资源管理和生态环保产业集团秋招试题及答案
- Unit5Amazingnature(Startingout~Understandingideas)教学设计外研版七年级英语下册
- 高一数学《简单线性规划》教学设计(人教B版必修)
- 2026年时尚行业3D虚拟试衣创新报告
- 患者安全与护理措施
- 初中体育教学中分层教学模式应用效果分析课题报告教学研究课题报告
- 2026年AI技术在房地产市场分析中的应用
- 技术股入股协议书
- DL-T5796-2019水电工程边坡安全监测技术规范
- 魁北克腰痛障碍评分表(Quebec-Baclain-Disability-Scale-QBPDS)
- 实验室生物安全培训-课件
- 八年级上册历史【全册】知识点梳理背诵版
- 《工会法》及《劳动合同法》教学课件
- 第章交流稳态电路
- 股权转让协议书常电子版(2篇)
- 2023年副主任医师(副高)-推拿学(副高)考试历年高频考点真题演练附带含答案
- 产品质量法课件
- 《食品包装学(第三版)》教学PPT课件整套电子讲义
评论
0/150
提交评论