版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021-2022年河北省保定市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.下列程序段的时间复杂度为()。A.O(3n)B.O(n)C.O(n2)D.O(log3n)
2.以下叙述正确的是()。
A.“charc1,*c2,*c3[10];”是合法的变量定义语句
B.数组说明符的方括号中不能使用表达式
C.数组元素下标可以是非整数
D.若有定义“chararray[4];”,则语句“printf(“%c”,array[“3”]);”是合法的
3.若有说明:inta[][3]={0,0};则不正确的叙述是()。
A.数组a的每个元素的初值都是0
B.数组a的第一维大小为1
C.数组a的行数为1
D.只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0
4.设有一组关键字序列{5,8,14,20,31,55,78,81,93,97,111},使用二分(折半)法查找关键字93最少需要进行多少次比较()A.2B.3C.4D.5
5.表达式:(int)((double)9/2)-(9)%2.的值是A.0B.3C.4D.5
6.下列关于线性链表的叙述中,正确的是()A.各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致
B.各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续
C.进行出入与删除时,不需要移动表中的元素
D.以上三种说法都不催
7.广义表((a))的表尾是()。
A.aB.(a)C.((a))D.()
8.以下关于C语言的叙述中正确的是()。
A.C语言中的注释不可以夹在变量名或关键字的中间
B.C语言中的变量可以在使用之前的任何位置进行定义
C.在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致
D.C语言的数值常量中夹带空格不影响常量值的正确表示
9.数据结构中,与所使用的计算机无关的是数据的()结构。
A.存储B.物理C.逻辑D.物理和存储
10.下述函数功能是______。intfun(char*x){char*y=x;while(*y++);returny-x-1;}
A.求字符串的长度B.求字符串存放的位置C.比较两个字符串的大小D.将字符串x连接到字符串y后面
11.如下函数调用语句func(rec1,rec2+rec3,rec4,rec5);该函数调用语句中,含的实参个数是().
A.3B.4C.5D.有语法错误
12.
13.有以下程序:#include<stdio.h>#include<math.h>main(){ints;floatn,t,pai;t=1,pai=0,n=1.0,s=1;while(fabs(t)>1.0e-6){pai+=t;n+=2;s=-s;t=s/n;}printf(“total=%f\n”,pai);}程序运行所计算的是()。
A.1-1/2!+1/3!-1/5!+1/7!-…
B.1+1/3+1/5+1/7+1/9-…
C.1+1/2+1/3+1/4+1/5-…
D.1-1/3+1/5-1/7+1/9-…
14.
15.有以下程序#include<stdio.h>intfun(intx;inty){if(x=y)reurn(x);elsereturn((x+y)/2);}main(){inta=4,b=5,c=6;printf("%d\n",fun(2*a,fun(b,c)));}程序运行后的输出结果是______。A.3B.6C.8D.12
16.有以下程序:#include<stdio.h>main(){chars[]=“abcde”;s+=2;printf(“%d\n”,s[0]);}程序的运行结果是()。
A.输出字符c的ASCII值B.程序出错C.输出字符cD.输出字符a的ASCII值
17.在一个无向图中,所有顶点的度数之和等于所有边数的()倍。
A.1/2B.1C.2D.4
18.有以下程序段当执行上述程序段,从键盘上输A,555667777123后,y的值为()。
A.566.0B.55566.0C.7777.0D.566777.0
19.判断char型变量c1是否为小写字母的正确表达式为()。
A.'a'<=c1<='z'
B.(c1>=A)‖(c1<=z)
C.('a'=>c1‖('z'<=c1)
D.(c1>='a')&&(c1<='z')
20.插入和删除只能在一端进行线性表,称为()。
A.队列B.循环队列C.栈D.循环栈
二、2.填空题(20题)21.表达式8/4*(int)2.5/(int)(1.25*(3.7+2.3))的值是______。
22.在算法正确的前提下,评价一个算法的两个标准是空间复杂度和()。
23.已有定义:charc=′′;inta=1,b;(此处c的初值为空格字符),执行b=!c&&a;后b的值为【】。
24.执行以下程序后,输出‘#’号的个数是【】。
#include<atdio.h>
main()
{inti,j;
for(i=1;i<5;i++)
for(j=2;j<=i;j++)putchar('#');
}
25.一棵二叉树第六层(根结点为第一层)的结点数最多为______个。
26.按照逻辑结构分类,数据结构可分为线性结构和非线性结构,二叉树属于______。
27.关系数据库管理系统能实现的专门关系运算包括选择、连接和【】。
28.下面程序的功能是:计算1~10之间的奇数之和与偶数之和,请填空。
#include<stdio.h>
main()
{inta,b,c,i;
a=c=0;
for(i=0;i<=10;i+=2)
{a+=i;
【】;
c+=b;}
printf("偶数之和=%d\n",a);
printf("奇数之和=%d\n",c-11);}
29.当循环队列非空且队尾指针等于队头指针时,说明循环队列已满,不能进行入队运算。这种情况称为【】。
30.算法复杂度主要包括时间复杂度和【】复杂度。
31.以下程序的输出结果是【】。
main()
{inty=9;
for(;y>0;y--)
if(y%3==0)
{printf("%d",--y);continue;}}
32.【】(黑箱或白箱)测试方法完全不考虑程序的内部结构和内部特征。
33.在面向对象方法学中,直接反映了用户对目标系统的要求的模型是【】。
34.下面程序的功能是根据公式e=1+1/1!+1/2!+1/3!+1/4!+...计算e的近似值,精度要求为10-5。请填空。
main()
{intn;
doublee=1.0,t=1.0;
for(n=1;【】n++);
{【】e+=t;}
printf("%f\n",e);}
35.以下程序的运行结果是【】。
#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);
}
36.下面的程序是将从终端读入的20个字符放入字符数组中,然后利用指针变量输出上述字符串,请填空。
#include<stdio.h>
main()
{inti;
chars[21],*p;
for(i=0;i<20;i++)
s[i]=getehar();
s[i]=【】;
p=【】;
while(*p)putchar(【】);
}
37.数据管理技术的发展过程经过人工管理、文件系统和数据库系统三个阶段,其中数据独立性最高的阶段是【】。
38.语句:x++;++x;x=1+x;执行后都使变量x中的值增1,请写出一条同一功能的赋值语句______。
39.在计算机软件系统的体系结构中,数据库管理系统位于用户和【】之间。
40.函数delete(s,i,n)的作用是从字符串s中删除从第i个字符开始的n个字符,请填空。
voiddelete(chars[],inti,intn)
{intj,k,length=0;
whiles(length])
【】;
-i;
j=i;
}
if(【】)
{k=i+n;
if(i+n<=length)
while(k<length)
s[j++]=s[k++];
s[j]='\0';
}
三、1.选择题(20题)41.以下关键字序列用快速排序法进行排序,速度最慢的是______。
A.{23,27,7,19,11,25,32}
B.{23,11,19,32,27,35,7}
C.{7,11,19,23,25,27,32}
D.{27,25,32,19,23,7,11}
42.请读程序片段:charstr[]="ABCD",*p=str;printf("%d\n",*(p+4));上面程序片段的输出结果
A.68B.0C.字符'D'的地址D.不确定的值
43.有以下程序intf(intn){if(n==1)return1;elsereturnf(n-1)+1;}main(){inti,j=0;for(i=1;i<3;i++)j+=f(i);printf("%d\n",j);}程序运行后的输出结果是
A.4B.3C.2D.1
44.下面程序的运行结果是
#include<stdio.h>
voiddelch(char*s)
{inti,j;
char*a;
a=s;
for(i=0,j=0;a[i]!=′\n′;i++)
if(a[i]>=′0′&&a[i]<=′9′)
{s[j]=a[i];j++;}
s[j]=′\0′;}
main()
{char*item="a34bc";
delch(item);
printf("\n%s",item);}
A.abcB.34C.a34D.a34bc
45.设变量均已正确定义,若要通过scanf("%d%c%d%c",&a1,&c1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。以下所示的输入形式中正确的是(注:□代表空格字符)
A.10□X□20□Y<回车>
B.10□X20□Y<回车>
C.10□X<回车>20□Y<回车>
D.10X<回车>20Y<回车>
46.有以下程序
main()
{intk=5,n=0;
do
{switch(k)
{case1:case3:n+=1;k--;break;
default:n=0;k--;
case2:case4:n+=2;k--;break;
}
printf("%d",n);
}while(k>0&&n<5);
}
程序运行后的输出结果是
A.235B.0235C.02356D.2356
47.有以下程序:main(){intx=0,y=0,i;for(i=1;++i){if(i%2==0){x++;continue;}if(i%5==0){y++;break;}}printf("%d,%d",x,y);}程序的输出结果是()。
A.2,1B.2,2C.2,5D.5,2
48.设a、b和c都是int型变量,且a=3、b=4、c=5,则下面的表达式中,值为0的表达式是______。
A.'a'&&'b'
B.a<=b
C.a||+c&&b-c
D.!((a<b)&&!c||1)
49.若有说明:long*p,a;,则不能通过scanf语句正确给输入项读入数据的程序段是()
A.*p=&a;scanf("%1d",p);
B.p=(long*)malloc(8);scanf("%1d",p);
C.scanf("%1d",p=&a);
D.scanf("%1d",&a);
50.已知inta=2,b=3;则执行表达式a=a<b后,变量a的值为()。
A.0B.1C.2D.3
51.若有以下定义和语句:inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;则值为3的表达式是______。
A.p+=2,*(p++)B.P+=2,*++pC.P+=3,*p++D.P+=2,++*p
52.若w、x、y、z、m均为int型变量,则执行下列的语句后m的值是()。w=2,x=3,y=4,z=5;m=(w<x)?w:x;m=(m<z)?m:z;m=(m<y)?m:y;
A.2B.3C.5D.4
53.数据存储和数据流都是______,仅仅是所处的状态不同。
A.分析结果B.事件C.动作D.数据
54.已知字母a的ASCII码为十进制数97,下面程序的输出结果是()。#include<stdio.h>main(){charc1,c2;c1='a'+'6'-'0';c2='a'+'3'-'0';printf("%c,%c\n",c1,c2);}
A.输出无定值B.d,eC.e,fD.g,d
55.下列能正确进行字符串赋值的是()。
A.chars[5]={"ABCDE"};
B.chars[5]={'A','B','C','D','E'};
C.char*s;s="ABCDE";
D.char*s;printf("%s",s);
56.下列叙述中正确的是______。
A.数据库是一个独立的系统,不需要操作系统的支持
B.数据库设计是指设计数据库管理系统
C.数据库技术的根本目标是要解决数据共享的问题
D.数据库系统中,数据的物理结构必须与逻辑结构一致
57.不能与do…while(exp)语句中的(exp)等价的表达式是()。
A.(!exp==0)B.(exp>0‖exp<0)C.(exp==0)D.(exp!=0)
58.下列叙述中,不属于测试的特征的是
A.测试的挑剔性B.完全测试的不可能性C.测试的可靠性D.测试的经济性
59.以下程序的输出结果是intf(){staticinti=0;ints=1;s+=i;i++;retumS;}main(){inti,a=0;for(i=0;i<5;i++)a+=f();printf("%d\n",a);}
A.20B.24C.25D.15
60.设有定义:intk=1,m=2;noatf=7;则下列选项中错误的表达式是()。
A.k=k>=kB.-k++C.k%int(f)D.k>=f>=m
四、选择题(20题)61.
62.
63.在下述程序中,判断条件“i>j”共执行的次数是
main()
{inti=0,j=10,k=2,s=0;
for(;;)
{i+=k;
if(i>j)
{printf("%d",s);
break;
}s+=i;
}
}
A.4B.7
C.5D.6
64.结构化程序设计的3种结构是()。
A.顺序结构、选择结构、转移结构
B.分支结构、等价结构、循环结构
C.多分支结构、赋值结构、等价结构
D.顺序结构、选择结构、循环结构
65.下列叙述中正确的是()。A.循环队列有队头和队尾两个指针,因此,循环队列是非线性结构
B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况
C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况
D.循环队列中元素的个数是由队头指针和队尾指针共同决定
66.设有定义:
则a和b的值分别是()。
A.87和6.0B.876和543.0C.87和543.0D.76和543.0
67.以下选项中正确的定义语句是()。
68.面向对象的设计方法与传统的面向过程的方法有本质不同,它的基本原理是()。
A.模拟现实世界中不同事物之间的联系
B.强调模拟现实世界中的算法而不强调概念
C.使用现实世界的概念抽象地思考问题从而自然地解决问题
D.不强调模拟现实世界中的算法而强调概念
69.以下程序的输出结果是()。
A.20B.24C.25D.15
70.设有定义:charp[]={1,2,3),*q=p;,以下不能计算出一个char型数据所占字节数的表达式是()。
A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p[0])
71.
72.有以下程序:
程序执行后的输出结果是()。
A.y=OS)y=一1B.0C.y=1D.while构成无限循环
73.
74.有以下程序
main()
{inti=10,j=1;
printf("%d,%d\n",i--,++j);
}
执行后的输出结果是
A.9,2B.10,2
C.9,1D.10,1
75.程序中若有如下说明和定义语句
charfun(char*);
main()
{
char*s="one",a[5]={0},(*f1)()=fun,ch;
……
}
以下选项中对函数fun的正确调用语句是
A.(*f1)(A);B.*f1(*s);C.fun(&A);D.ch=*f1(s);
76.
77.以下叙述中正确的是()。
A)C程序中的#include和#define行均是C语句,只是语法不同
B)除赋值运算符外,逗号运算符的优先级最低
C)C程序中,j++;是赋值语句
D)C程序中,+、-、*、/、%号是算数运算符,可用于整型和实型数的运算
78.有以下程序:
程序运行后的输出结果是()。
A.0B.1C.4D.8
79.若二维数组a有m列,则在a[i][j]前的元素个数为()。
A.i*m+j-1B.i*m+jC.J*m+iD.i*m+j+1
80.
五、程序改错题(1题)81.下列给定程序中,proc()函数的功能是:根据形参n。计算下列公式的值:t=1-1/2+1/3-1/4+…+(-1)(n+1)/n例如,若输入6,则应输出0.616667。请修改程序中的错误,使它能得到正确结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.编写函数fun,其功能是:实现两个字符串的连接(不要使用库函数strcat),即把p2所指的字符串连接到
pl所指的字符串的后面。
例如,分别输入下面两个字符串:
程序输出:
注意:部分源程序在文件PROGl.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
参考答案
1.D
2.AC语言规定定义数组时,数组的长度必须是整型常量,数组说明符的方括号中表达式只要是常量即合法,因此选项B错误。C语言规定,数组元素下标必须是非负整数,因此选项C错误。选项D中,“chararray[4]”数组的长度为4,“army[“3”]”中“3”是常量字符串,与C语言规定数组的下标必须是非负整数不符。故本题答案为A选项。
3.D解析:本题考查给二维数组元素赋值。给二维数组元素赋值时应注意下列两点:①在对二维数组元素赋初值时,可以只对部分元素赋初值,未赋初值的元素自动取0。②二维数组第一维的大小由下列规则确定;当初值的个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小;当初值的个数不能被第二维的常量表达式的值除尽时,第一维的大小等于所得商数加1。
4.A
5.B\n本题考查了强制类型转换。9/2为double型,所以结果为4.5,又强制转换为整型,所以结果为4。9%2为取余运算,结果为1。最终结果4-1=3。
\n
6.C
试题2分析
结点的存储顺序和逻辑顺序不一定一致,存储空间也不一定连续。插入和删除元素的时候,不需要移动表中的元素。
试题2答案
C
7.D
8.B解析:C语言中注释可以放在任何位置,选项A错误;C语言中的变量只要在使用之前定义即可,位置可以是使用前的任何位置,故选项B正确;C语言中两侧数据类型可以不一致,系统可进行强制类型转换,选项C错误;C语言数值常量中不允许存在空格,选项D错误。
9.C解析:数据结构是指数据以及他们之间的相互联系。其中数据的逻辑结构是指数据元素之间的逻辑关系,它与所使用的计算机无关:数据的物理结构,又称存储结构,是指数据结构在计算机中的表示,它包括数据元素的表示和元素的表示,其中数据元素之间的关系在计算机中有顺序存储结构和链式存储结构两种。因此C是正确答案。
10.A解析:在函数体内定义一字符型指针并指向形参,然后遍历其中各字符直到NULL,最后返回字符串首尾地址的差值,即字符串的长度。
11.B
12.D
13.Dmain函数首先定义整型变量S,初值为1;定义float类型的n、t、Pai,其中n初值为1.0,t初值为1,pai初值为0。while循环判断t的绝对值(fabs为求float类型值的绝对值的函数)是否大于1.0×10-6,若t的绝对值大于1.0×10-6,那么,执行语句“pai+=t;n+=2;s=-s;t=s/n;”,所以每轮循环pai累加“s/n”(其中s是上一轮s的相反数,n是上一轮n累加2的值)。第1轮循环时,pai被赋值为1,s是正数,所以最终pai的计算结果是:1-1/3+1/5-1/7+1/9-…。故本题答案为D选项。
14.C
15.B解析:在主函数中,第—次调用fun函数,将变量b,c的值传给形参x,y,在fun()函数中执行if语句,判断b和c的值是否相等,由于在主函数中赋初值b=5,c=6,所以判断条件不满足,执行else语句,返回表达式(x+y)/2的值,即:(5+6)/2,因为参数的类型都为int型,所以结果也为整型:5,第二次调用时8和5也不相等,所以返回值为6,因此,选项B是正确的。
16.B在C语言中,数组名类似于一个指向数组首地址的指针常量,一旦定义就不能修改其内容。所以本题中的“s+=2;”语句让数组名S的内容加2是错误的,编译无法通过。故本题答案为B选项。
17.C
18.A本题考查的是格式输)ki$i数,即按用户指定的格式从键盘上把数据输入到指定的变量之中,其中的格式命令可以说明最大域宽。在百分号(%)与格式码之间的整数用于限制从对应域读入的最大字符数。因此j的值为55,y的值为566.0,字符数组nanle的值为7777123。故本题答案为A)。
19.D解析:C语言规定,字符常量在程序中要用单引号括起来。判断c1是否为小写字母的充要条件c1>='a'和c1<='z',用逻辑与(&&)来表示。A选项的这种形式在C语言中没有,所以选项D)正确.
20.C
21.0。0。解析:表达式中将实型常量2.5和算术表达式1.25*(3.7+2.3)的值强制转换为整型后参与运算。
22.时间复杂度时间复杂度解析:在算法正确的前提下,评价一个算法的两个标准是空间复杂度和时间复杂度。算法的时间复杂度,是指执行算法所需要的计算工作量。算法的空间复杂度是指执行这个算法所需要的内存空间。
23.11解析:字符空格的ASCII码不为0,所以本题中表达式\ue008!c\ue009的值为0,b=0&&1的结果显然为0。
24.66解析:本题中,i,j分别为外循环和内循环的循环控制变量,外层循环共执行了4次。当i=1时,由于内层循环判断条件(2<=1)为假不执行内层循环。当i=2时,执行内层循环,输出一个#;当i=3时,内层循环循环两次,输出两个#;当i=4时,内层循环循环三次,输出三个#;当i=5时,循环判断条件不成立,退出外层循环。所以一共输出6个#。
25.3232解析:二叉树的一个性质是,在二叉树的第k层上,最多有2k-1(k≥1)个结点。由此,26-1=32.所以答案为32。
26.非线性结构非线性结构解析:对于一个非空的数据结构,如果同时满足下列两个条件,即1)有且只有一个根结点;2)每一个结点最多有一个前件,也最多有一个后件;即为线性结构,而二叉树的结点可能存在两个后件,所以是非线性结构。
27.投影专门关系运算包括对单个关系进行垂直分解(投影操作)或水平分解(选择操作)和对多个关系的结合(连接操作)等。
28.b=i+1b=i+1解析:本题考查了for循环语句的执行过程。i+=2是修正表达式,执行一次循环体后i的值就增加2,i的初始值为0,每次加2之后和累加至a,所以a的值就是1~10之间的偶数之后;b的值是1~11之间的奇数和,但在输出b值时c去掉多加的11,即为1~10之间的奇数之和。
29.上溢上溢解析:入队运算是指在循环队列的队尾加入一个新元素。这个运算有两个基本操作:首先将队尾指针进一(即rear=rear+1),并当rear=m+1时置rear=1;然后将新元素插入队尾指针指向的位置。当循环队列非空(s=1)时且队尾指针等于队头指针时,说明循环队列已满,不能进行入队运算,这种情况称为“上溢”。
30.空间空间解析:程序在计算机上运行时所耗费的时间由程序运行时所需输入的数据总量、对源程序进行编译所需时间、计算机执行每条指令所需时间、程序中的指令重复执行的次数等决定。习惯上常常把语句重复执行的次数作为算法运行时间的相对量度,称作算法的时间复杂度。算法在运行过程中需辅助存储空间的大小称为算法的空间复杂度。
31.852852解析:循环前,变量y的值为9,其中的循环语句在y大于0情况下循环,每次循环后y的值减1。循环体是当y能被3整除时输出表达式--y,输出的是减1后的y值。这样,第一次循环因y为9,能被3整除,输出8,y也变成8。又经两次循环,y的值变为6,又让y减1变成5,并输出5;又经两次循环,y的值变成3,让y减1变成2,输出2;再经两次循环后,y的值变成0,结束循环。所以程序输出852。
32.黑箱黑箱解析:本题考查了软件测试中的黑箱测试。黑箱测试是根据程序规格说明所规定的功能来设计测试用例,它不考虑程序的内部结构和处理过程。常用的黑箱测试技术分为等价类划分、边界分析、错误猜测以及因果图等。
33.功能模型功能模型
34.t>=le-5;t=t/n;
35.a=2b=1a=2,b=1解析:本题考查了switch结构的内容。C语言中,程序执行完一个case标号的内容后,如果没有break语句,控制结构会转移到下一个case继续执行,因为case常量表达式只是起语句标号作用,并不是在该处进行条件判断。本题程序在执行完内部switch结构后,继续执行了外部switch结构的case2:分支,最后a和b的值分别为2和1。
36.\0s*p++\\0\r\ns\r\n*p++解析:本题先通过for循环从键盘读入20个字符,然后赋值'\\0'作为字符串结束标志,再使指针p指向字符串的首地址,最后通过while循环对字符串进行扫描并输出。
37.数据库系统阶段数据库系统阶段解析:在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段,其中数据独立性最高的阶段是数据库系统阶段。
38.x+=1x+=1解析:本题考查“++”,“--”运算符。“++”、“--”只能作用于变量,不能用于表达式或常量;前缀形式是在使用变量之前先将其值增1或减1,后缀形式是先使用变量原来的值,使用完后再使其增1或减1。
39.操作系统或OS操作系统或OS解析:数据库管理系统是数据库的机构,它是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务。位于用户和操作系统之间。
40.length++i<lengthlength++\r\ni<length解析:第—个循环极有可能是计算串的长度,在i<=length时字符才被删除,被删除的是从第i个到笫i+n或最后—个间的所有字符。删除前,应判断i<=length。由于已经进行了-i运算,故实际应填入i<length。
41.C
42.B
43.B解析:主函数中for循环执行两次,i=1和i=2。调用函数f(1),返回值为1,j=1;调用函数f(2),计算表达式f(n-1)+1的值时递归调用f(1),返回值为2,j=3。所以B为所选。
44.B解析:考查用指针引用字符串元素的方法。指针a通过数组元素下标来从头逐个地引用字符串item中的字符,判断不是0~9之间的数字时,就去掉这个字符,所以程序结束后,字符串item中就只剩下和两个字符了。
45.D解析:本题中,scanf函数的格式控制没有空格,所以,对于选项A)、B)、C),输入的第一个空格会作为字符赋值给变量c1,而不会被解释成分隔符。
46.A解析:因为变量的初始值分别为“k=5,n=0”,所以程序第一次进入循环时,执行default语句,这时k=4,执行'case4:”这个分支,结果是“n=2,k=3”,打印出2;然后程序进行第二次循环,这时“n=2,k=3”,执行'case3:”这个分支,结果是“n=3,k=2”,打印出3;程序进行第三次循环,这时“n=3,k=2”,执行“case2:case4:”这两个分支,结果是“n=5,k=1”,打印出5,这时因为n=5不满足n<5的循环条件,因此退出循环,程序运行结束,故输出结果为235。
47.A解析:本题考查了continue和break语句用在循环语句中的作用。break语句的作用是结束本层循环,而continue语句的作用是结束本次循环直接进入到下次循环。
48.D解析:选项A:'a'&&'b'是字符a与b的相与,不为0:选项B:a<=b,由题中变量赋值可知,结果为1。选项C:a||+c&&b-c,结果为1;选项D:!((a<B)&&!c||1),运算结果为0。
49.A
50.B解析:先计算关系表达式a<b=2<3为真(表达式为真时,如果变量为int型变量则真用1表示,假用0表示),即a=1。
51.A解析:引用一个数组元素,可以用:(1)下标法,如a[i]形式;(2)指针法,如*(a+i)或*(p+i)。数组的下标从0开始,值为3的数组元素是a[2]。B、C的内容为a[3],D将a[2]前自加,结果为4。
52.A解析:条件表达式“a?b:c”的含义是:当a为真时,其值等于表达式b的值;当a为假时,其值等于表达式c的值。
表达式运算过程:第1个表达式:w=2<x=3为真,所以返回w的值,即m=w=2;第2个表达式:m=2<z=5为真,所以返回m的值,即m=2;第3个表达式:w=2<y=4为真,所以返回m的值,即m=2。
53.D解析:数据流图有4种成分:源点或终点、处理、数据存储和哦数据流。数据存储是处于静止状态的数据,数据流是处于运动中的数据。
54.D解析:C语言规定,所有字符常量都可以化为整型常量来处理,因而字符常量也可以参与算术运算。注:字符常量参与算术运算时,其实是使用其对应的ASCII码值进行计算。本题中,'a'对应的ASCII码值是97。题中虽然没有给'6'和'0'的ASCII码值,但应该知道'6'-'0'是将字符'6'转换成整数6的表达式,所以c1='a'+'6'-'0'=103,c2='a'+'3'-'0'=100,按照字符型输出分别是g和d。
55.C解析:字符串存储要有结束符“\\0”且要占用一个空间,选项A)、B的空间不够:printf用来输出字符,不能输入字符串.
56.C解析:数据库不是一个独立的系统,它需要操作系统的支持,选项A错误;设计数据库的目的是设计出满足实际应用需求的实际关系模型,选项B错误;数据库技术的主要目的是有效地管理和存取大量的数据资源,包括:提高数据的共享性,使多个用户能够同时访问数据库中的数据;减小数据的冗余,以提高数据的一致性和完整性;提供数据与应用程序的独立性,从而减少应用程序的开发和维护代价,选项C正确。数据库系统中,数据的物理结构和逻辑结构可以相互独立,选项D错误。
57.C解析:本题考查.do…while循环。在do…while循环中,当表达式的值为非零(真)时,执行循环,不能与其等价的是为零的表达式,即(exp==0)。
58.C解析:软件测试的目标是在精心控制的环境下执行程序,以发现程序中的错误,给出程序可靠性的鉴定。它有3个方面的重要特征,即测试的挑剔性、完全测试的不可能性及测试的经济性。其中没有测试的可靠性这一说法。注意:软件测试与软件调试的概念,以及相应的方法。
59.D解析:函数的静态局部变量在编译时就赋初值,即只赋初值一次,在程序运行时它已有初值,以后每次调用函数时不再重新赋值,而只是保留上次函数调用结束时的值。
60.C解析:在C语言中,求余运算符“%”两边的运算对象都应为整型数据,所以需要对变量f进行强制类型转换,正确的写法为k%(int)f。在C语言中,逻辑运算符与赋值运算符、算术运算符、关系运算符之间从高到低的运算优先次序是:!(逻辑“非”)、算术运算符、关系运算符、&&(逻辑“与”)、‖(逻辑“或”)、赋值运算符。根据运算符的优先级与结合性,对于选项A),先计算k>=k的值(为真,即1),再用1对k进行赋值。对于选取项B),先计算k什的值,再对其取负数。对于选项D),先计算k>=f的值(为假,即0),再用0与m进行比较,故最终结果为0。
61.C
62.Afun函数将字符串中的小写字符转换为大写字母,所以答案选择A)。
63.D本题主要要求我们求判断条件“i>j”执行的次数。在本题的程序中,首先定义了四个整型变量,并分别赋初值,然后执行for循环结构,该循环结构中都是缺省语句,那么如果循环体中没有break语句,程序将面临死循环,从后面的程序中我们可以看出,程序中存在一条break语句。
第一次循环时,变量k的值为2,变量i的值被改变为2,而此时变量j的值为10,执行if(i>j)语句,结果为假,不执行break语句,然后改变变量s的值,一次循环结束。
通过对这次循环的分析,我们发现变量k的值一直没被改变,而变量i值的改变与变量k有关,且每循环一次增加2,那么变量i的改变轨迹应该为0,2,4,6,8,10,12,当i等于12时,其值大于j,条件判断语句结果为真,执行break语句,结束循环。从这里我们可以推断出循环执行的次数为6,因此,判断条件“i>j”执行的次数也为6次,本题的正确答案选D。
64.D结构化程序设计的基本要点:①采用自顶向下、逐步求精的程序设计方法;②任何程序都可由顺序、选择和循环3种基本控制结构构造。
65.D\r\n所谓循环队列,就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队列循环使用。在循环队列中,用队尾指针rear指向队列中的队尾元素,用排头指针front指向排头元素的前一个位置,因此,从排头指针front指向的后一个位置直到队尾指针real指向的位置之间所有的元素均为队列中的元素。求解队列中元素个数的方法是:若front>rear,队列中有n-front+rear个元素(其中n为循环队列的容量);若front<rear,队列中有real-front个元素;若front=rear,队列中有n个或0个元素。循环队列是线性结构。因此本题的正确答案是D。
66.A在格式字符前加入一个整数可以指定输入数据所占的宽度,所以赋值时会将87赋给int型变量a,把6.0赋给im型float型变量b。
67.AB)选项,定义变量不能连等,C)选项b前没有类型名,D)选项类型名与变量名之间不能有逗号,所以A)正确,其余错误。
68.C\n面向对象的设计方法的基本原理是:使用现实世界的概念抽象地思考问题从而自然地解决问题。它虽强调模拟现实世界中的概念而不强调算法,但是它鼓励开发者在软件开发的过程中从应用领域的概念角度去思考。
\n
69.D第一次循环结束:a=1,i=1;第二次循环结束:a=3,i=2;第三次循环结束:a=6,i=3;第四次循环结束:a=10,i=4;第五次循环结束:a=15,i=5;结束:a=15;
70.A选项A计算的是p口字符数组首地址所占的内存字节数。选项8、C和D都能计算出一个字符型数据所占的字节数。
71.A
72.B执行Y一一直到值为0,由于Y一一是先用再减,所以退出循环时,y的值为一1。
73.C
74.B本题主要考查自加和自减运算符。对变量a进行自减、自加的运算主要有如下四种。
++a:是对变量a进行自加运算,它是先加,再对加后的结果进行调用;
a++:也是对变量a进行自加运算,它是先调用变量a原来的值,然后对其进行自加;
--a:是对变量a进行自减运算,它是先减,然后对相减后的结果进行调用;
a--:也是对变量a进行自减运算,它是先调用变量a原来的值,然后对其进行自减。
在程序中,首先定义了两个整型变量i和j,并分别赋初值为10和1,然后用输出语句分别输出这两个变量自减与自加的结果。程序中调用的形式分别为i--和++j,前者为先调用再减,输出的为10,而后者是先加再调用,输出的为2。程序最后的输出结果为10,2。因此,本题答案选B。
75.A解析:函数fun()的参数为指针类型,返回值为字符型,而选项B、C的参数不是指针类型,所以不正确,选项D中,*fl(s)表示返回值为指针的函数,所以也不正确。
76.D
77.C#define行为非C语句,所以没有“;”号,%的运算对象只能为整型,逗号运算符的优先级最低。
78.Cm函数中的X为静态局部变量,占用固定的内存单元,下一次调用时仍可保留上次调用时的值。也就是说,如果多次调用fun函数,x的定义只在第一次调用时有效,从第二次调用开始,x的定义相当于不存在,直接使用X的值。主函数中调用两次fun函数t第一次调用:X=1,X=x}2=2,s=2;第二次调用:(直接用上次X的值)x=X·2=4,s=4。因此C选项正确。
79.B解析:二维数组的元素可以看成是按矩阵形式存放的,总是先存放第一行的元素,再存放第二行的元素。数组第一维的下标是i,说明它前面还有i行,有i*m个元素,数组第二维的下标是j,说明它前面还有j列,有j个元素,所以共有i*m+j个元素。
80.C
81.(1)错误:intproc(intnJ
正确:doubleproc(intn)
(2)错误:for(i=1;i(n;i++)
正确:for(i=2;i<=n;i++)
【解析】由主函数中的函数调用以及函数proc()中返回值的类型,可知函数proc()的返回值类型为double型数据。因此,“intproc(intn)”应改为“doubleproc(intn)”。由题目中给出的表达式可知,循环的最大值应该取到n,因此,“for(i=l;i<n;i++)”应改为“for(i=2;i<=n;i++)”。
82.
【考点分析】
【解题思路】
本题用两个循环完成操作,第1个循环的作用是求出第1个字符串的长度,即将i指到第1个字符串的末尾。第2个循环的作用是将第2个字符串的字符连到第1个字符串的末尾。
2021-2022年河北省保定市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.下列程序段的时间复杂度为()。A.O(3n)B.O(n)C.O(n2)D.O(log3n)
2.以下叙述正确的是()。
A.“charc1,*c2,*c3[10];”是合法的变量定义语句
B.数组说明符的方括号中不能使用表达式
C.数组元素下标可以是非整数
D.若有定义“chararray[4];”,则语句“printf(“%c”,array[“3”]);”是合法的
3.若有说明:inta[][3]={0,0};则不正确的叙述是()。
A.数组a的每个元素的初值都是0
B.数组a的第一维大小为1
C.数组a的行数为1
D.只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0
4.设有一组关键字序列{5,8,14,20,31,55,78,81,93,97,111},使用二分(折半)法查找关键字93最少需要进行多少次比较()A.2B.3C.4D.5
5.表达式:(int)((double)9/2)-(9)%2.的值是A.0B.3C.4D.5
6.下列关于线性链表的叙述中,正确的是()A.各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致
B.各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续
C.进行出入与删除时,不需要移动表中的元素
D.以上三种说法都不催
7.广义表((a))的表尾是()。
A.aB.(a)C.((a))D.()
8.以下关于C语言的叙述中正确的是()。
A.C语言中的注释不可以夹在变量名或关键字的中间
B.C语言中的变量可以在使用之前的任何位置进行定义
C.在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致
D.C语言的数值常量中夹带空格不影响常量值的正确表示
9.数据结构中,与所使用的计算机无关的是数据的()结构。
A.存储B.物理C.逻辑D.物理和存储
10.下述函数功能是______。intfun(char*x){char*y=x;while(*y++);returny-x-1;}
A.求字符串的长度B.求字符串存放的位置C.比较两个字符串的大小D.将字符串x连接到字符串y后面
11.如下函数调用语句func(rec1,rec2+rec3,rec4,rec5);该函数调用语句中,含的实参个数是().
A.3B.4C.5D.有语法错误
12.
13.有以下程序:#include<stdio.h>#include<math.h>main(){ints;floatn,t,pai;t=1,pai=0,n=1.0,s=1;while(fabs(t)>1.0e-6){pai+=t;n+=2;s=-s;t=s/n;}printf(“total=%f\n”,pai);}程序运行所计算的是()。
A.1-1/2!+1/3!-1/5!+1/7!-…
B.1+1/3+1/5+1/7+1/9-…
C.1+1/2+1/3+1/4+1/5-…
D.1-1/3+1/5-1/7+1/9-…
14.
15.有以下程序#include<stdio.h>intfun(intx;inty){if(x=y)reurn(x);elsereturn((x+y)/2);}main(){inta=4,b=5,c=6;printf("%d\n",fun(2*a,fun(b,c)));}程序运行后的输出结果是______。A.3B.6C.8D.12
16.有以下程序:#include<stdio.h>main(){chars[]=“abcde”;s+=2;printf(“%d\n”,s[0]);}程序的运行结果是()。
A.输出字符c的ASCII值B.程序出错C.输出字符cD.输出字符a的ASCII值
17.在一个无向图中,所有顶点的度数之和等于所有边数的()倍。
A.1/2B.1C.2D.4
18.有以下程序段当执行上述程序段,从键盘上输A,555667777123后,y的值为()。
A.566.0B.55566.0C.7777.0D.566777.0
19.判断char型变量c1是否为小写字母的正确表达式为()。
A.'a'<=c1<='z'
B.(c1>=A)‖(c1<=z)
C.('a'=>c1‖('z'<=c1)
D.(c1>='a')&&(c1<='z')
20.插入和删除只能在一端进行线性表,称为()。
A.队列B.循环队列C.栈D.循环栈
二、2.填空题(20题)21.表达式8/4*(int)2.5/(int)(1.25*(3.7+2.3))的值是______。
22.在算法正确的前提下,评价一个算法的两个标准是空间复杂度和()。
23.已有定义:charc=′′;inta=1,b;(此处c的初值为空格字符),执行b=!c&&a;后b的值为【】。
24.执行以下程序后,输出‘#’号的个数是【】。
#include<atdio.h>
main()
{inti,j;
for(i=1;i<5;i++)
for(j=2;j<=i;j++)putchar('#');
}
25.一棵二叉树第六层(根结点为第一层)的结点数最多为______个。
26.按照逻辑结构分类,数据结构可分为线性结构和非线性结构,二叉树属于______。
27.关系数据库管理系统能实现的专门关系运算包括选择、连接和【】。
28.下面程序的功能是:计算1~10之间的奇数之和与偶数之和,请填空。
#include<stdio.h>
main()
{inta,b,c,i;
a=c=0;
for(i=0;i<=10;i+=2)
{a+=i;
【】;
c+=b;}
printf("偶数之和=%d\n",a);
printf("奇数之和=%d\n",c-11);}
29.当循环队列非空且队尾指针等于队头指针时,说明循环队列已满,不能进行入队运算。这种情况称为【】。
30.算法复杂度主要包括时间复杂度和【】复杂度。
31.以下程序的输出结果是【】。
main()
{inty=9;
for(;y>0;y--)
if(y%3==0)
{printf("%d",--y);continue;}}
32.【】(黑箱或白箱)测试方法完全不考虑程序的内部结构和内部特征。
33.在面向对象方法学中,直接反映了用户对目标系统的要求的模型是【】。
34.下面程序的功能是根据公式e=1+1/1!+1/2!+1/3!+1/4!+...计算e的近似值,精度要求为10-5。请填空。
main()
{intn;
doublee=1.0,t=1.0;
for(n=1;【】n++);
{【】e+=t;}
printf("%f\n",e);}
35.以下程序的运行结果是【】。
#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);
}
36.下面的程序是将从终端读入的20个字符放入字符数组中,然后利用指针变量输出上述字符串,请填空。
#include<stdio.h>
main()
{inti;
chars[21],*p;
for(i=0;i<20;i++)
s[i]=getehar();
s[i]=【】;
p=【】;
while(*p)putchar(【】);
}
37.数据管理技术的发展过程经过人工管理、文件系统和数据库系统三个阶段,其中数据独立性最高的阶段是【】。
38.语句:x++;++x;x=1+x;执行后都使变量x中的值增1,请写出一条同一功能的赋值语句______。
39.在计算机软件系统的体系结构中,数据库管理系统位于用户和【】之间。
40.函数delete(s,i,n)的作用是从字符串s中删除从第i个字符开始的n个字符,请填空。
voiddelete(chars[],inti,intn)
{intj,k,length=0;
whiles(length])
【】;
-i;
j=i;
}
if(【】)
{k=i+n;
if(i+n<=length)
while(k<length)
s[j++]=s[k++];
s[j]='\0';
}
三、1.选择题(20题)41.以下关键字序列用快速排序法进行排序,速度最慢的是______。
A.{23,27,7,19,11,25,32}
B.{23,11,19,32,27,35,7}
C.{7,11,19,23,25,27,32}
D.{27,25,32,19,23,7,11}
42.请读程序片段:charstr[]="ABCD",*p=str;printf("%d\n",*(p+4));上面程序片段的输出结果
A.68B.0C.字符'D'的地址D.不确定的值
43.有以下程序intf(intn){if(n==1)return1;elsereturnf(n-1)+1;}main(){inti,j=0;for(i=1;i<3;i++)j+=f(i);printf("%d\n",j);}程序运行后的输出结果是
A.4B.3C.2D.1
44.下面程序的运行结果是
#include<stdio.h>
voiddelch(char*s)
{inti,j;
char*a;
a=s;
for(i=0,j=0;a[i]!=′\n′;i++)
if(a[i]>=′0′&&a[i]<=′9′)
{s[j]=a[i];j++;}
s[j]=′\0′;}
main()
{char*item="a34bc";
delch(item);
printf("\n%s",item);}
A.abcB.34C.a34D.a34bc
45.设变量均已正确定义,若要通过scanf("%d%c%d%c",&a1,&c1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。以下所示的输入形式中正确的是(注:□代表空格字符)
A.10□X□20□Y<回车>
B.10□X20□Y<回车>
C.10□X<回车>20□Y<回车>
D.10X<回车>20Y<回车>
46.有以下程序
main()
{intk=5,n=0;
do
{switch(k)
{case1:case3:n+=1;k--;break;
default:n=0;k--;
case2:case4:n+=2;k--;break;
}
printf("%d",n);
}while(k>0&&n<5);
}
程序运行后的输出结果是
A.235B.0235C.02356D.2356
47.有以下程序:main(){intx=0,y=0,i;for(i=1;++i){if(i%2==0){x++;continue;}if(i%5==0){y++;break;}}printf("%d,%d",x,y);}程序的输出结果是()。
A.2,1B.2,2C.2,5D.5,2
48.设a、b和c都是int型变量,且a=3、b=4、c=5,则下面的表达式中,值为0的表达式是______。
A.'a'&&'b'
B.a<=b
C.a||+c&&b-c
D.!((a<b)&&!c||1)
49.若有说明:long*p,a;,则不能通过scanf语句正确给输入项读入数据的程序段是()
A.*p=&a;scanf("%1d",p);
B.p=(long*)malloc(8);scanf("%1d",p);
C.scanf("%1d",p=&a);
D.scanf("%1d",&a);
50.已知inta=2,b=3;则执行表达式a=a<b后,变量a的值为()。
A.0B.1C.2D.3
51.若有以下定义和语句:inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;则值为3的表达式是______。
A.p+=2,*(p++)B.P+=2,*++pC.P+=3,*p++D.P+=2,++*p
52.若w、x、y、z、m均为int型变量,则执行下列的语句后m的值是()。w=2,x=3,y=4,z=5;m=(w<x)?w:x;m=(m<z)?m:z;m=(m<y)?m:y;
A.2B.3C.5D.4
53.数据存储和数据流都是______,仅仅是所处的状态不同。
A.分析结果B.事件C.动作D.数据
54.已知字母a的ASCII码为十进制数97,下面程序的输出结果是()。#include<stdio.h>main(){charc1,c2;c1='a'+'6'-'0';c2='a'+'3'-'0';printf("%c,%c\n",c1,c2);}
A.输出无定值B.d,eC.e,fD.g,d
55.下列能正确进行字符串赋值的是()。
A.chars[5]={"ABCDE"};
B.chars[5]={'A','B','C','D','E'};
C.char*s;s="ABCDE";
D.char*s;printf("%s",s);
56.下列叙述中正确的是______。
A.数据库是一个独立的系统,不需要操作系统的支持
B.数据库设计是指设计数据库管理系统
C.数据库技术的根本目标是要解决数据共享的问题
D.数据库系统中,数据的物理结构必须与逻辑结构一致
57.不能与do…while(exp)语句中的(exp)等价的表达式是()。
A.(!exp==0)B.(exp>0‖exp<0)C.(exp==0)D.(exp!=0)
58.下列叙述中,不属于测试的特征的是
A.测试的挑剔性B.完全测试的不可能性C.测试的可靠性D.测试的经济性
59.以下程序的输出结果是intf(){staticinti=0;ints=1;s+=i;i++;retumS;}main(){inti,a=0;for(i=0;i<5;i++)a+=f();printf("%d\n",a);}
A.20B.24C.25D.15
60.设有定义:intk=1,m=2;noatf=7;则下列选项中错误的表达式是()。
A.k=k>=kB.-k++C.k%int(f)D.k>=f>=m
四、选择题(20题)61.
62.
63.在下述程序中,判断条件“i>j”共执行的次数是
main()
{inti=0,j=10,k=2,s=0;
for(;;)
{i+=k;
if(i>j)
{printf("%d",s);
break;
}s+=i;
}
}
A.4B.7
C.5D.6
64.结构化程序设计的3种结构是()。
A.顺序结构、选择结构、转移结构
B.分支结构、等价结构、循环结构
C.多分支结构、赋值结构、等价结构
D.顺序结构、选择结构、循环结构
65.下列叙述中正确的是()。A.循环队列有队头和队尾两个指针,因此,循环队列是非线性结构
B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况
C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况
D.循环队列中元素的个数是由队头指针和队尾指针共同决定
66.设有定义:
则a和b的值分别是()。
A.87和6.0B.876和543.0C.87和543.0D.76和543.0
67.以下选项中正确的定义语句是()。
68.面向对象的设计方法与传统的面向过程的方法有本质不同,它的基本原理是()。
A.模拟现实世界中不同事物之间的联系
B.强调模拟现实世界中的算法而不强调概念
C.使用现实世界的概念抽象地思考问题从而自然地解决问题
D.不强调模拟现实世界中的算法而强调概念
69.以下程序的输出结果是()。
A.20B.24C.25D.15
70.设有定义:charp[]={1,2,3),*q=p;,以下不能计算出一个char型数据所占字节数的表达式是()。
A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p[0])
71.
72.有以下程序:
程序执行后的输出结果是()。
A.y=OS)y=一1B.0C.y=1D.while构成无限循环
73.
74.有以下程序
main()
{inti=10,j=1;
printf("%d,%d\n",i--,++j);
}
执行后的输出结果是
A.9,2B.10,2
C.9,1D.10,1
75.程序中若有如下说明和定义语句
charfun(char*);
main()
{
char*s="one",a[5]={0},(*f1)()=fun,ch;
……
}
以下选项中对函数fun的正确调用语句是
A.(*f1)(A);B.*f1(*s);C.fun(&A);D.ch=*f1(s);
76.
77.以下叙述中正确的是()。
A)C程序中的#include和#define行均是C语句,只是语法不同
B)除赋值运算符外,逗号运算符的优先级最低
C)C程序中,j++;是赋值语句
D)C程序中,+、-、*、/、%号是算数运算符,可用于整型和实型数的运算
78.有以下程序:
程序运行后的输出结果是()。
A.0B.1C.4D.8
79.若二维数组a有m列,则在a[i][j]前的元素个数为()。
A.i*m+j-1B.i*m+jC.J*m+iD.i*m+j+1
80.
五、程序改错题(1题)81.下列给定程序中,proc()函数的功能是:根据形参n。计算下列公式的值:t=1-1/2+1/3-1/4+…+(-1)(n+1)/n例如,若输入6,则应输出0.616667。请修改程序中的错误,使它能得到正确结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.编写函数fun,其功能是:实现两个字符串的连接(不要使用库函数strcat),即把p2所指的字符串连接到
pl所指的字符串的后面。
例如,分别输入下面两个字符串:
程序输出:
注意:部分源程序在文件PROGl.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
参考答案
1.D
2.AC语言规定定义数组时,数组的长度必须是整型常量,数组说明符的方括号中表达式只要是常量即合法,因此选项B错误。C语言规定,数组元素下标必须是非负整数,因此选项C错误。选项D中,“chararray[4]”数组的长度为4,“army[“3”]”中“3”是常量字符串,与C语言规定数组的下标必须是非负整数不符。故本题答案为A选项。
3.D解析:本题考查给二维数组元素赋值。给二维数组元素赋值时应注意下列两点:①在对二维数组元素赋初值时,可以只对部分元素赋初值,未赋初值的元素自动取0。②二维数组第一维的大小由下列规则确定;当初值的个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小;当初值的个数不能被第二维的常量表达式的值除尽时,第一维的大小等于所得商数加1。
4.A
5.B\n本题考查了强制类型转换。9/2为double型,所以结果为4.5,又强制转换为整型,所以结果为4。9%2为取余运算,结果为1。最终结果4-1=3。
\n
6.C
试题2分析
结点的存储顺序和逻辑顺序不一定一致,存储空间也不一定连续。插入和删除元素的时候,不需要移动表中的元素。
试题2答案
C
7.D
8.B解析:C语言中注释可以放在任何位置,选项A错误;C语言中的变量只要在使用之前定义即可,位置可以是使用前的任何位置,故选项B正确;C语言中两侧数据类型可以不一致,系统可进行强制类型转换,选项C错误;C语言数值常量中不允许存在空格,选项D错误。
9.C解析:数据结构是指数据以及他们之间的相互联系。其中数据的逻辑结构是指数据元素之间的逻辑关系,它与所使用的计算机无关:数据的物理结构,又称存储结构,是指数据结构在计算机中的表示,它包括数据元素的表示和元素的表示,其中数据元素之间的关系在计算机中有顺序存储结构和链式存储结构两种。因此C是正确答案。
10.A解析:在函数体内定义一字符型指针并指向形参,然后遍历其中各字符直到NULL,最后返回字符串首尾地址的差值,即字符串的长度。
11.B
12.D
13.Dmain函数首先定义整型变量S,初值为1;定义float类型的n、t、Pai,其中n初值为1.0,t初值为1,pai初值为0。while循环判断t的绝对值(fabs为求float类型值的绝对值的函数)是否大于1.0×10-6,若t的绝对值大于1.0×10-6,那么,执行语句“pai+=t;n+=2;s=-s;t=s/n;”,所以每轮循环pai累加“s/n”(其中s是上一轮s的相反数,n是上一轮n累加2的值)。第1轮循环时,pai被赋值为1,s是正数,所以最终pai的计算结果是:1-1/3+1/5-1/7+1/9-…。故本题答案为D选项。
14.C
15.B解析:在主函数中,第—次调用fun函数,将变量b,c的值传给形参x,y,在fun()函数中执行if语句,判断b和c的值是否相等,由于在主函数中赋初值b=5,c=6,所以判断条件不满足,执行else语句,返回表达式(x+y)/2的值,即:(5+6)/2,因为参数的类型都为int型,所以结果也为整型:5,第二次调用时8和5也不相等,所以返回值为6,因此,选项B是正确的。
16.B在C语言中,数组名类似于一个指向数组首地址的指针常量,一旦定义就不能修改其内容。所以本题中的“s+=2;”语句让数组名S的内容加2是错误的,编译无法通过。故本题答案为B选项。
17.C
18.A本题考查的是格式输)ki$i数,即按用户指定的格式从键盘上把数据输入到指定的变量之中,其中的格式命令可以说明最大域宽。在百分号(%)与格式码之间的整数用于限制从对应域读入的最大字符数。因此j的值为55,y的值为566.0,字符数组nanle的值为7777123。故本题答案为A)。
19.D解析:C语言规定,字符常量在程序中要用单引号括起来。判断c1是否为小写字母的充要条件c1>='a'和c1<='z',用逻辑与(&&)来表示。A选项的这种形式在C语言中没有,所以选项D)正确.
20.C
21.0。0。解析:表达式中将实型常量2.5和算术表达式1.25*(3.7+2.3)的值强制转换为整型后参与运算。
22.时间复杂度时间复杂度解析:在算法正确的前提下,评价一个算法的两个标准是空间复杂度和时间复杂度。算法的时间复杂度,是指执行算法所需要的计算工作量。算法的空间复杂度是指执行这个算法所需要的内存空间。
23.11解析:字符空格的ASCII码不为0,所以本题中表达式\ue008!c\ue009的值为0,b=0&&1的结果显然为0。
24.66解析:本题中,i,j分别为外循环和内循环的循环控制变量,外层循环共执行了4次。当i=1时,由于内层循
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安徽省淮南市西部地区联考2025-2026学年七年级上学期12月月考语文试题(含答案)(含解析)
- 2026年南充科技职业学院单招综合素质考试题库附参考答案详解(b卷)
- 2026年信阳职业技术学院单招职业倾向性考试题库有答案详解
- 2026年兰州石化职业技术学院单招职业倾向性考试题库附参考答案详解(预热题)
- 2026年内蒙古丰州职业学院单招综合素质考试题库附参考答案详解(满分必刷)
- 2026年内蒙古体育职业学院单招职业倾向性考试题库附参考答案详解(模拟题)
- 2026年南京城市职业学院单招职业技能考试题库附答案详解(a卷)
- 2026年内蒙古能源职业学院单招职业技能测试题库附答案详解(培优b卷)
- 2026年南通科技职业学院单招职业适应性考试题库及参考答案详解一套
- 2026年六盘水职业技术学院单招职业适应性测试题库带答案详解(培优b卷)
- 《力与大地:重力、摩擦力的科学透视与地理联结》-初中科学(八年级)单元复习课教学设计
- 2025年宁波职业技术学院单招职业技能考试题库附答案解析
- 宁德新能源VERIFY测评题
- 中国传媒大学毕业论文报告基本规范及格式要求
- 备战2026年高考英语考试易错题(新高考)易错点18 应用文写作(解析版)
- 方言传承的代际差异-洞察及研究
- 企业开工第一课安全培训
- 新能源科技有限公司商业计划书
- 中医埋线课件
- 近五年宁夏中考物理真题及答案2024
- 个人借款合同范本(担保方式)
评论
0/150
提交评论