




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021-2022年四川省广安市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.在如下结构定义中,不正确的是()。A.
B.
C.
D.
2.有以下程序:main(){char*p[10]={"abc","aabdfg","dcdbe","abbcf',"cd"};printf("%d\n",strlen(p[4]));}执行后的输出结果是______。
A.2B.3C.4D.5
3.以下不能作为合法常量的是()。
A.'cd'B.1.234e04C.”\a”D.'\011'
4.树是结点的集合,它的根结点数目是()。
A.有且只有1B.1或多于1C.0或1D.至少2
5.
6.有以下程序:
程序执行后的输出结果是()。
A.357B.753C.369D.751
7.数据流图(DFD)的作用是()。
A.描述软件系统的控制流B.支持软件系统的功能建模C.支持软件系统的面向对象分析D.描述软件系统的数据结构
8.链栈与顺序栈相比,比较明显的优点是()。
A.插入操作更加方便B.删除操作更加方便C.不会出现下溢的情况D.不会出现上溢的情况
9.有以下程序:#include<stdio.h>point(char*p){p+=3;}main()charb[4]={'a','b','c','d'},*p=b;point(p);printf("%c\n",*p);
A.aB.bC.cD.d
10.下列程序的输出结果是()
main()
{inta,b,d=25;
a=d/10%9;
b=a&&(-1);
printf("%d,%d\n",a,b);}
A.6,1B.2,1C.6,0D.2,0
11.
12.若有函数内部说明:inta[3][4];则数组a中各元素
A.可在程序的运行阶段得到初值0
B.可在程序的编译阶段得到初值0
C.不能得到确定的初值
D.可在程序的编译或运行阶段得到初值0
13.有以下程序
#include<stdio.h>
#include<stdlib.h>
main()
{int*a,*b,*c;
a=b=c=(int*)malloc(sizeof(int));
*a=1;*b=2,*c=3;
a=b
printf(”%d,%d,%d\n”,*a,*b,*c);
}
程序运行后的输出结果是()。A.3,3,3B.2,2,3C.1,2,3D.1,1,3
14.下列程序的输出结果是()。char*point(char*pt):main{charb[4]={a,c,s,f),*pt=b;pt=point(pt);printf("%c\n",*pt);}point(char*p){p+=3;returnp;}A.sB.cC.fD.a
15.下列叙述中错误的是()。
A.C语言程序必须由一个或一个以上的函数组成
B.函数调用可以作为一个独立的语句存在
C.若函数有返回值,必须通过return语句返回
D.函数形参的值也可以传回给对应的实参
16.一棵二叉树共有25个结点,其中5个是叶子结点,则度为l的结点数为()。
A.16B.10C.6D.4
17.有下列程序:程序执行后的输出结果是()。A.2,14,3,18,4,18
B.1,14,2,18,3,18
C.2,14,3,18,4,22
D.1,14,2,18,3,18,4,18
18.
19.下列叙述错误的是()。
A.函数名是属于用户标识符,需符合C语言对标识符的规定
B.形参只能是变量
C.为保证程序的正常运行,函数中定义的变量不能与其他函数中的变量同名
D.函数中定义的变量可以与其他函数中的变量同名
20.已知函数的调用形式为fread(buf,size,count,fp),参数buf的含义是
A.一个整型变量,代表要读入的数据项总数
B.一个文件指针,指向要读的文件
C.一个指针;指向要读入数据的存放地址
D.一个存储区,存放要读的数据项
二、2.填空题(20题)21.以下程序运行后,若输入:3,abcde<回车>,则输出结果是【】。
#include<stdio.h>
#include<string.h>
move(char*str,intn)
{chartemp;inti;
temp=str[n-1];
for(i=n-1;i>0;i--)str[i]=str[i-1];
str[0]=temp;
}
main()
{chars[50];intn,i,z;
scanf("%d,%s",&n,s);
z=strlen(s);
for(i=1;i<=n;i++)move(s,z);
printf("%s\n",s);
}
22.以下程序的运行结果是______。
#include<stdio.h>
main()
{FILE*fp;inta[10]={1,2,3,0,0},i;
fp=fopen("d2.dat","wbt");
fwtite(a,sizeof(int),5,fp);
fwlite(a,sizeof(int),5,fp);
fclose(fp);
fp=fopen("d2.dat","rb");
fread(a,sizeof(int),10,fp);
fclose(fp);
for(i=0;i
23.下列程序的输出结果是______。
#include<stdio.h>
sb(ints[].intb)
{staticintn=3;
b=s[n];
n--;
return(b);
}
main()
{ints[]={1,5,6,8);
inti,x=0;
for(i=0;i<4;i++)
{x=sb(s,x);
printf(:%d",x);
}
printf("\n");
}
24.下面程序的运行结果是()。#definePOW(r)r*rmain(){intx=2,y=3,t;t=POW(x+y);printf("%d\n",t);}
25.下列程序的运行结果是______。
main()
{ints=0,i=1;
while(s<=10)
{s=s+i*i;
i++;
}
printf("%d",-i);
}
26.以下程序调用函数swap_p将指针s和t所指单元(a和b)中的内容交换,请填空。
main()
{inta=10,b=20,*s,*t;
s=&a;t=&b;
swap_p(【】);
printf("%d%d,a,b");}
swap_p(int**ss,int**tt)
{intterm;
term=**ss;
**ss=**tt;
**tt=term;}
27.以下程序运行后的输出结果是______。
fun(inta)
{intb=0;staticintc=3;
b++;c++;
return(a+b+c);
}
main()
{inti,a=5;
for(i=0;i<3;i++)printf("%d%d",i,fun(a));
printf("\n");
}
28.在算法的4个特性中,算法必须能在执行有限个步骤之后终止指的是算法的______特性。
29.数据库设计分为以下6个设计阶段:需求分析阶段、______、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。
30.在C语言中,可以利用【】,将一个表达式的值转换成指定的类型。
31.下面函数用来求两个单精度数之和,并通过形参将结果传回,请填空。
voidsub(floatx,floaty,【】z)
{【】=x+y;}
32.下面程序的输出是【】。
main()
{enumem{em1=3,em2=l,em3};
char*aa[]={"AA","BB","CC","DD"};
printf("%s%s\n",aa[eml],aa[em2],aa[em3]);
}
33.设有下列宏定义:
#defineA2
#defineB(A+3)
则执行赋值语句"k=B*20;"(k为int型变量)后,k的值是______。
34.以下程序的输出结果是【】。
main()
{
intarr[]={30,25,20,15,10,5},*p=arr;
p++;
printf("%d\n",*(p+3));
}
35.近年来形成了软件开发的多种模式,大致有3种类型:基于瀑布模型的结构化生命周期方法、基于动态定义需求的【】方法和基于结构的面向对象的软件开发方法。
36.以下程序的输出结果是【】。
#include<stdio.h>
main()
{intn=12345,d;
while(n!=0){d=n%10;printf("%d",D);n/=10;}
}
37.Fibonacci数列中的头两个数是1和1,从第3个数开始,每个数等于前两个数之和。下述程序计算此数列的前20个数,且每行输出5个数,请填空。
#include<stdio.h>
main()
{intf,f1=1,f2=1;
inti;
printf("%6d%6d",f1,f2);
for(i=3;i<=20;i++)
{f=【】;
printf("%6d",f);
if(【】)
printf("\n");
f1=f2;
【】;
}
}
38.C语言程序的注释可以出现在程序中的任何地方,一个注释以【】分别作为开始和结束。
39.有以下程序:
#include<stclio.h>
main()
{charc;
while((c=getchar())!='?')putchar(--c);
}
程序运行时,如果从键盘输入:Y?N?<回车>,则输出结果为【】。
40.面向对象的程序设计方法中涉及的对象是系统中用来描述客观事物的一个______。
三、1.选择题(20题)41.微机显示器一般有两组引线,它们是()
A.电源线与信号线B.电源线与控制线C.电源线与地线D.控制线与地线
42.现代计算机之所以能自动地连续进行数据处理,主要是因为()
A.采用了开关电路B.采用了半导体器件C.具有存储程序的功能D.采用了二进制
43.设intb=2;,则表达式(b<<2)/(b>>1)的值是______。
A.0B.2C.4D.8
44.以下程序的输出结果是()enumweekday{sun=7,mon=1,tue,wed,thu,fri,sat};main(){enumweekdayworkday,week_end;inti,a[8];workday=tue;weekend=sun;pritnf("\ntuesday=%dsunday=%d",wotkday,week_end);workday=sun+tue;week_end=(enumweekday)3;printf("tuesday=%dsunday=%d",workdayweek_end);a[sun]=sun;a[mon]=mona[tue]=tue;a[wed]=wed;a[thu]=thu;a[fri]=fr;a[sat]=sat;for(i=1;i<7;i++)printf("%d",a[i]);}
A.tuesday=2sunday=7;tuesday=2sunday=7;1234567
B.tuesday=2sunday=7;tuesday=9sunday=3;1234567
C.tuesday=0sunday=7;tuesday=2sunday=3;1234567
D.tuesday=1sunday=2;tuesday=3sunday=4;1234567
45.以下程序的输出结果是
main()
{inta,i;a=0;
for(i=1;i<5;i++)
{switch(i)
{case0:
case3:a+=2;
case1:
case2:a+=3;
default:a+=5;}
}printf("%d\n",a);}
A.31B.13C.10D.20
46.设有如下说明typedefstructST{longa;intb;charc[2];}NEW;则下面叙述中正确的是______。A.以上的说明形式非法B.ST是一个结构体类型C.NEW是一个结构体类型D.NEW是一个结构体变量
47.以下程序的结果是()
main()
{unsignedinta=3,b=10;
printf("%d\n",a<<2|b>>1);
}
A.1B.5C.12D.13
48.下列程序的运行结果是()。#include<stdio.h>#include<string.h>main(){char*s1="abDuj";char*s2="ABdUG";intt;t=strcmp(s1,s2);printf("%d",t);}
A.正数B.负数C.零D.不确定的值
49.检查软件产品是否符合需求定义的过程称为()。
A.确认测试B.集成测试C.验证测试D.验收测试
50.有以下程序main(){inti:10,j=1;printf("%d,%d\n",i--,++j);}执行后输出结果是
A.9,2B.10,2C.9,1,D.10,1
51.以下有4组用户标识符,其中合法的一组是()。
A.FOr-subCase
B.4dDOSize
C.f2_G3IFabc
D.WORDvoiddefine
52.设x,y和z都是血型变量,且x=3,y=4,z=5,则下面表达式中,值为0的表达式是
A.x&&y
B.x<=y
C.x‖++y&&y-z
D.!(x<y&&!z‖1)
53.若变量已正确说明为float型,要通过语句scanf("%f%f%f",&a,&b,&c);给a赋予10,0,b赋予22.0,c赋予33.0,下列不正确的输入形式是
A.10<回车>22<回车>33<回车>
B.10.0,22.0,33.0<回车>
C.10.0<回车>22.033.0<回车>
D.1022<回车>33<回车>
54.有以下程序
#include<stdio.h>
main()
{inta[]={1,2,3,4},y,*p=&a[3];
--p;y=*p;printf("y=%d\n",y);
}
程序的运行结果是
A.y=0B.y=1C.y=2D.y=3
55.以下程序的输出结果是______。main(){chara[10]={'1','2','3','4','5','6','7','8','9'},*p;inti;i=8;p=a+i;printf("%s\n",p-2);}
A.6B.789C.'6'D.6789
56.函数的值通过return语句返回,下面关于return语句的形式描述错误的是
A.return表达式;
B.return(表达式);
C.一个return语句可以返回多个函数值
D.一个return语句只能返回一个函数值
57.在数据流图(DFD)中,带有名字的箭头表示______。
A.控制程序的执行顺序B.模块之间的调用关系C.数据的流向D.程序的组成成分
58.下列程序的输出结果是#include"stdio.h"main(){inti,a=0,b=0;for(i=1;i<10;i++){if(i%2==0){a++;continue;}b++;}printf("a=%d,b=%d",a,b);}
A.a=4,b=4B.a=4,b=5C.a=5,b=4D.a=5,b=5
59.数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是()。
A.DB包含DBS和DBMSB.DBMS包含DB和DBSC.DBS包含DB和DBMSD.没有任何关系
60.有以下程序main(){intaa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};inti,s=0;for(i=0;i<4;i++)s+=aa[i][1];printf("%d\n",s);}程序运行后的输出结果是()
A.11B.19C.13D.20
四、选择题(20题)61.
62.
63.设有定义:
inta=1,b=2,C=3;
以下语句中执行效果与其他三个不同的是()。
A.if(a>B.C=a,a=b,b=C;
B.if(a>B.{C=a,a=b,b=C;}
C.if(a>B.C=a;a=b;b=c;
D.if(a>B.{C=a;a=b;b=c;}
64.冒泡排序的时间复杂度为
A.O(n)B.O(n2)C.O(log2n)D.O(nlog2n)
65.下述程序的输出结果是()。#include<stdio.h>voidmain{intb[6]={2,4,6,8,10,12);int*p=b,**q=&p;printf("%d,",*(p++));printf("%d,",**q);}A.4,4B.2,2C.4,5D.2,4
66.若有定义和语句:
int*(*pp),*P,a=20,b=10;
pp=&p;p=&a;p=&b;printf("%d,%d\n",*P,**PP);
则输出结果是()。A.A.20,10B.20,20C.10,20D.10,10
67.有以下程序:
程序执行后的输出结果是()。
A.PrphsbnB.ProhsbnC.ProgsbnD.Program
68.以下选项中能表示合法常量的是()。
A.1,200B.1.5E2.0C.”\”D.”\007”
69.在“文件包含,预处理语句的使用形式中,当#include后面的文件名用(双引号)括时,寻找被包含文件的方式是()。
A.直接按系统设定的标准方式搜索目录
B.先在源程序所在的目录搜索,如没找到,再按系统设定的标准方式搜索
C.仅仅搜索源程序所在目录
D.仅仅搜索当前目录
70.数据库设计中反映用户对数据要求的模式是()。
A.内模式B.概念模式C.外模式D.设计模式
71.设文件指针fp已定义,执行语句fp=fopen(”61e”,”W”);后,以下针对文本文件file操作叙述的选项中正确的是()。
A.只能写不能读B.写操作结束后可以从头开始读C.可以在原有内容后追加写D.可以随意读和写
72.
73.下列关于栈的描述错误的是()。
A.栈按“先进后出”组织数据B.栈是特殊的线性表,只能在一端插入或删除数据C.栈具有记忆功能D.栈只能顺序存储
74.有下列程序:intfun(intx[],intn){staticintsum=0,i;for(i=0;i<n;i++)sum+=x[i]:returnsum;}main(){inta[3]={1,2,3,4,5),b[3]={6,7,8,9),s=0;s=fun(a,5)+fun(b,4);printf(“%d\n”,s);}程序执行后的输出结果是()。A.45B.50C.60D.55
75.
76.表达式“~0x11”的值是()。
A.0xFFEEB.0x71C.0x0071D.0xFFF1
77.
78.若执行以下程序时从键盘上输入9,则输出结果是()。main(){intn;scanf(”%d”,&n);if(n++<10)printf(”/%d\n”,n);elseprintf(”%d\n”,n--);}A.11B.10C.9D.8
79.有以下函数定义:
voidfun(intn,doublex){……}
若以下选项中的变量都已正确定义并赋值,则对函数fun正确调用的语句是
A.fun(inty,doublem);B.k=fun(10,12.5);
C.fun(x,n);D.voidfun(n,x);
80.当用“#defineF37.5f”定义后,下列叙述正确的是()。
A.F是float型数B.F是Char型数C.F无类型D.F是字符串
五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:将字符串str中的所有字符复制到字符串b中,要求在每复制3个字符之后插入1个空格。例如,在调用proc()函数之前给字符
串str输入abcdefghijk,调用函数之后,字符串b中的内容则为abcdefghijk。
请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
六、程序设计题(1题)82.使用VC++2010打开考生文件夹下析prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写函数fun(),它的功能是计算下列级数和,和值由函数值返回。例如,当n=10,x=0.3时,函数值为1.349859。注意:部分源程序在文件prog1.c中。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:
参考答案
1.B
2.A解析:本题中p[4]='cd',所以strlen(p[4])=2。
3.A字符常量是使用单引号标注的单个字符,选项A错误;选项B属于浮点数常量,正确;选项C属于转义字符常量,正确;选项D属于转义字符,代表八进制数011的ASCII值的字符,正确。本题答案为A选项。
4.A树形结构是一类重要的非线性数据结构。树是n(n≥0)个结点的集合,对应任意一棵非空树,它具有以下几点重要的性质。
①有且仅有一个特定的称为根的结点。
②当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1,T2,…,TM,其中每一个集合本身又是一棵树,称为子树。
因此,本题的正确答案有且只有一个。
5.A
6.A本题考查的是for循环与二维数组的定义和引用。当定义二维数组的初始化列表只使用一重花括号时,其中的每个值依次代表从第l行的第1个元素起,直到第l行满,接着代表第2行、第3行……的每一个元素。程序中的循环将循环3次,循环变量i的值分别是0、1、2,所以3次循环中输出的数分别是:t[2一O][D]、t[2-1][1]、t[2~2]121,即t[2][0]、t[1][l]、t[0][2],所以最后输出的结果为357。故应该选择A)。
7.B数据流图是系统逻辑模型的图形表示,从数据传递和加工的角度,来刻画数据流从输入到输出的移动变化过程,它直接支持系统的功能建模。本题答案为B选项。
8.D
9.A解析:C函数的参数传递方式采用按值传递,不能通过调用函数改变形参指针本身的值,只能改变指针所指变量的值。调用point函数时,将实参指针p的值(b数组的首地址)传给了形参指针P,P+=3运算使形参指针指向字符d,但并不能改变main函数中p的值,所以本题正确答案应该是选项A)。
10.B解析:算术运行符“/”、“%”的优先级处于同一级,并且两者的结合性都是从左到右。所以算术表达式运算过程为:a=25/10%9=2%9=2:当逻辑运算符“&&”两边的值都是非零时,逻辑表达式的值才为真(即为1)。所以b=2&&(-1)=1。
11.D
12.C本题主要考查数组的定义及初始化。在对数组进行定义和初始化时,需要注意以下事项。
(1)数组的内存空间在编译时确定,定义数组时的n值只能使用常量,不能使用变量。
(2)定义数组时可以不标明数组元素的个数,而是通过赋初值的方式确定,编译系统将自动计算花括号内的数据数量作为数组的元素个数。
(3)数组初始化时,当初值的个数小于整型常量n时,编译系统会自动补0。一旦给定初值数超过n,编译系统将报错。
(4)初始化数组的元素类型,必须与定义数组时的类型一致。
(5)数组名记录了数组在内存中的首地址,其值不能更改。
(6)除字符数组外,不能直接用数组名对数组进行整体输入或输出。
本题中定义了一个3行4列的数组,但没有对其进行赋初值操作,可能我们会想在系统编译时会自动补0,这只是在初值个数小于数组定义大小的情况下的操作,如果没有进行赋初值操作,数组中的元素值是不能被确定的。因此,本题答案选C。
13.A解析:本题中,首先创建开辟一个动态内存,然后将地址分别存入指针a、b、c中,即a、b、c都指向相同的变量。分别给a、b、C所指的变量赋值,最终a、b、c所指的变量中的值为3,最后打印a、b、c所指的变量的值,即3,3,3。所以选A。
14.C本题考查函数的调用及参数传递,当执行函数point时,刚开始指针P指向“a”,经过+3,指针p指向“f”,所以最后的输出结果是f。
15.D形参是定义函数时由用户定义的。实参是函数调用时,主调函数为被调函数提供的原始数据。在C语言中,实参向形参传送数据的方式是“值传递'是单向传递。故本题答案为D选项。
16.A根据二叉树的性质,n=n0+n1+n2(n表示总结点数,n0表示叶子结点数,nl表示度数为1的结点数,n2表示度数为2的结点数),而叶子结点数总是比度数为2的结点数多1,所以n2=n1-1=5-1=4,而n=25,所以nl=n-n0-n2=25-5-4=16。
17.A程序定义整型变量a和i,其中a的初值为7。for循环中,循环变量i的取值为1,2,3。循环体中判断a的取值,当a>14时,执行break跳出循环;当a取值为奇数时,a%2==1,a自增3,执行continue继续执行循环体;当a取值为偶数时,a%2==0,a自增4,输出i和a的值。i取值为1时,a取值为7,自增3后a的值为10,执行下一个循环。i取值为2时,a取值为10,自增4后a的值为14,输出2,14。i取值为3时,a取值为14,自增4后a的值为18,输出3,18。i取值为4时,a取值为18,循环终止,输出4,18。综上,程序输出:2,14,3,18,4,18。本题答案为A选项。
18.C
19.C解析:本题考查函数调用时参数的作用域。在函数调用时,函数体内定义的变量的作用域连函数体内,因而在不同函数体内定义的变量可以相同,不影响各个变量的使用。
20.C解析:这是一道考查fread函数的题。buf是一个指针,fread是读入数据的存放地址;fwrite是输出数据的地址(以上指的是起始地址)。
21.cdeabcdeab解析:程序中的move函数的作用是保存输入数组中的最后一个元素,然后从最后一个数组元素开始,依次向后移动一个位置,再把保存的最后一个元素置于首位,循环次数由n控制。输入3,abcde<回车>后主函数开始执行,其中n=3,s[50]={'abcde'},z=5。第一次循环,i=1时,调用move(s,5)函数,temp=str[4]语句把数组中最后一个元素\'e\'保存在temp中,然后i从4开始循环,将str[3](字符\'d\')赋给str[4],str[2](字符\'c\')赋给str[3],……,循环结束时str所指字符串为'aabcd',再将保存在temp中的\'e\'置于首位,字符串变为'eabcd';i=2时,调用move函数,字符串为'deabc';i=3时,调用move函数,字符串为'cdeab'。最后输出结果为'cdeab'。
22.解析:本题考查文件读写函数fread和fwrite的用法。fwrite函数将数组a的前5个元素输出到文件fp中两次,共10个字节,再调用fread函数从文件fp中读取这10个字节的数据到数组a中,此时数组a的内容就变为{1,2,3,0,0,1,2,3,0,)},最后的输出结果为“1,2,3,0,0,1,2,3,0,0,”。
23.86518651解析:主程序中,第一次循环时,i=0,调用sb(s,x)子函数,此时n=3,x=s[n]=s[3]=8,然后将n减1变为2;第二次循环时,i=1,调用sb(s,x)子函数,因为将n定义为了静态变量,所以此时n=2,返回x=s[n]=s[2]=6;第三次循环时,i=2,调用sb(s,x)子函数,此时n=1,返回x=s[n]=s[1]=5;第四次循环时,i=3,调用sb(s,x)子函数,此时n=0,返回x=s[n]=s[0]=1。此程序实际上是将数组s逆序输出。
24.11
25.33解析:分析程序运行过程,第1次循环:s=s+i*i=0+1*1=1,i=2;第2次循环:s=s+i*i=1+2*2=5,i=3;第3次循环:s=s+i*i=5+3*3=14,i=4;循环条件不成立输出i,--i使i的值减1,轴出结果为3。
26.&s&t&s,&t解析:指针做函数参数时,形参和实参指向同一个数据,所以函数中对形参所指向的数据的改变也能影响到实参。本题中函数swap_p的形参为指向指针的指针,即双重指针,原理跟普通的指针是一样的。注意:通过指针来引用一个存储单元。
27.010111212010111212解析:本题考查的是静态局部变量的运用。静态局部变量的作用域与普通局部变量一样,但它的生存期将延长到程序运行结束。本题的主函数中使用一个for循环输出循环变量i和fun(a)的值,由于a的值一直没被修改过,所以三次调用的都是fun(5)。第1次调用,b=0,c=3,所以返回值为5+1+4=10;第2次调用,因为c是静态局部变量,它仍然保存着上次调用结束时的值4,而b重新被创建和初始化为0,所以返回值为5+1+5=11;同理,第3次调用返回的是12。所以,程序最终输出为:010111212。
28.有穷性有穷性解析:算法的4个基本特性包括:可靠性、确定性、有穷性和拥有足够的情报,其中,算法的有穷性指的是算法必须在有限的时间内完成,即算法必须在执行有限个步骤之后终止。
29.概念设计阶段(数据库概念设计阶段)概念设计阶段(数据库概念设计阶段)
30.强制类型转换强制类型转换
31.float**zfloat*\r\n*z解析:C程序中可以通过传送地址的方式在被调用函数中直接改变被调用函数中变量的值,从而达到函数之间数据的传递。
32.DDBBCCDDBBCC解析:C语言对枚举的定义规定:在枚举中声明的各个枚举元素,如果没有明确指出某个枚举元素的值,它的上一个元素存在并有明确值的情况下,这个枚举元素的值为其上一个元素的值+1。在本题中,没有明确说明枚举元素em3的值,则em3=em2+1=1+1=2,进而可知,在printf()打印函数中,要打印的数组元素是aa[3],aa[1]、aa[2],因此最后的打印结果应当为“DDBBCC”。
33.100100解析:本题考查带参数的宏定义及相关运算。运算过程为:k=B*20=(A+3)*20=(2+3)*20=100。
34.1010解析:整型指针最初被赋的值是数组arr的头指针,即指向数组的第一个元素30,p++后,指针指向数组的下一个元素,即*p=arr[1]=25,在执行*(p+3)时,则相当于a[1+3],即10。因此,输出应为100。
35.原型化原型化
36.5432154321解析:在while循环中,d=n%10;语句每次求得的结果是n个位上的数值,例如12345÷10所得的余数就是个位上的5。接下来输出得到的个位数字d,然后执行n/=10;语句,该语句等价于n=n/10;。在C语言中,如果/运算的两个运算分量都是整数,那所得的结果也截尾取整,所以12345/10=1234,即n-=n/10;语句的作用是让n截去个位上的数字。由此可知,随着while循环的继续,n依次为12345、1234、123、12、1,而每次输出n的个位数字将为5、4、3、2、1。故本题应填543210。
37.f1+f2i%5==0f2=ff1+f2\r\ni%5==0\r\nf2=f解析:f用来保存前两个数之和,并作为第三个数,计算后把第二个数(f2)赋给f1,第三个数(f)赋给f2,再执行for循环。
38./**//**/解析:C语言程序的注释可以出现在程序基本单词之间的任何地方,C语言程序的注释以“/*”作为开始标记,并以“*/”作为结束标记。
39.XX解析:主函数中首先定义了一个字符型变量c,接着执行下面while语句,在while循环中,首先从键盘上读入一个字符Y并给赋给字符变量c,赋值表达式的值不为'?',执行输出语句,输出字符X。接着判断while中的循环条件,读入一个字符'?'并赋值给c,赋值表达式的值为'?'循环条件不再满足,退出循环。
40.实体实体
41.A
42.C
43.D
44.B
45.A解析:本题考查用于多分支选择的switch语句,其一般形式为:
switch(表达式)
{
case常量表达式1:语句1;
case常量表达式2:语句2;
…
case常量表达式n:语句n;
default:语句n+1;
}
其语义是:计算表达式的值,并逐个与其后的常量表达式值进行比较,当表达式的值与某个常量表达式的值相等时,即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句;如表达式的值与所有case后的常量表达式均不相等时,则执行default后的语句。
46.C解析:将题目中的定义语句去掉前面的typedef和后面的NEW(分号保留),就是一条完整的结构体定义语句,其中struct是说明符,ST是结构体名,大括号里面的是结构体成员的定义。此时要声明该结构体变量时需要使用struct加结构体名一起来声明,struetST一起构成一个结构体类型,就好像字符类型char.若只去掉前面的typedef,就是一条结构体定义同时声明一个结构体变量NEW的语句,因为NEW的前面部分是structST的完整写法。可以看作是structST.C语言允许用typedef说明一种新类型名,其语法格式为:
typedef类型名标识符;
以后就可以用该标识符来代替被说明的类型名了。因此,当前面存在typedef时,该语句就变成了给stmctST的完整写法定义一个新的名称NEW。所以,此时的NEW是一个结构体类型,它相当于structST,即可以和char一样单独用来声明该结构体变量,而ST只是一个结构体名,不能单独用来声明变量。所以,4个选项中C符合题意。
47.D
48.A解析:本题考查字符串比较函数和两个字符串比较的原则两个知识点,①原则是依次比较两个字符串同一位置的对字符,若它们的ASCII码值相同,则继续比较下一对字符,若它们的ASCII码值不同,则ASCII码值较大的字符所在的字符串较大;若所有字符相同,则两个字符串相等;若一个字符串全部i个字符与另一个字符串的前i个字符相同,则字符串较长的较大。②strcmp(s1,s2)的返回值,当str1<str2时,返回值<0;当str1=str2时,返回值为0;当str1>str2,返回值>0。
49.A本题主要考查软件测试的基本知识。软件测试的步骤可分为单元测试(模块测试)、集成测试、确认测试和系统测试。
(1)单元测试是针对每个模块进行的测试,它可从程序的内部结构出发设计测试用例,多个模块可以平行、对立地测试。单元测试主要用于发现详细设计和编程时犯下的错误。单元测试多采用白盒测试,辅之以黑盒测试。
(2)集成测试是在单元测试的基础上,根据模块结构图将各个模块连接起来,必须精心计划,应提交集成测试计划、集成测试规格说明和集成测试分析报告。主要目标是发现与接口有关的问题。集成测试可以发现概要设计时犯的错误。
(3)确认测试用于验证软件的功能和性能及其他特性是否与用户的要求一致。确认测试主要用于发现需求分析时犯下的错误,一般使用黑盒法测试,以表明软件符合需求说明书的要求,应该仔细设计测试用例和测试过程。确认测试必须有用户参加,或以用户为主,用户应参与设计测试用例,通常情况下,主要使用生产中的实际数据进行测试,测试数据通过用户接口输入。
(4)系统测试是将已经通过确认测试的软件,作为整个计算机系统的元素与计算机硬件、外设和网络等其他因素结合在一起,进行一系列的组装测试和确认测试。系统测试的目的是通过与系统的需求定义做比较,发现软件与系统的定义不符合的地方。系统测试可以发现问题定义时犯下的错误。
50.B解析:++、--运算符在变量之前是先使变量的值加1或减1,然后再使用变量的值;如果在变量之后则先使用变量之前的值,再把变量的值加1或减1。显然,程序中表达式“i--”的值为10,“++j”的值为2,所以最后输出的值为10和2。
51.C解析:选项A中for和case为C语言中的保留字,不能作为用户标志符,故A错误。选项B中的4d其开头的第一个为数字,而在C语言中规定,第一个字符必须为字母或者下划线,故B错误;选项D中void为C语言中的保留字,不能作为用户标志符,故D错误。所以,4个选项中选项C符合题意。
52.D解析:该题考查逻辑与“&&”和逻辑或“‖”以及逻辑非“!”符号的用法。选项A)即3&&4为真;选项B)即3<=4为真;选项C)是一个逻辑或与逻辑与的混合运算,只要执行了逻辑或左半部分,程序将直接停止执行逻辑或右半部分程序,因为x的值为真;此时选项C)变为1&&-1为真。选项D)不用计算,括号内逻辑或右边的值为1,因而括号内的值为1,再进行逻辑非运算得0。
53.B解析:在C语言中,当一次输入多个数据的时候,数据之间要用间隔符,合法的间隔符可以是空格、制表符和回车符。逗号不是合法的间隔符。
54.D解析:在程序中指针变量p初始指向a[3],执行p减1后,p指向a[2],语句y=*p的作用是把a[2]的值赋给变量y,所以输出为y=3。
55.B解析:p-2=a+8-2=a+5,则p指向a[6],则p指向7,所以输出如B所示结果。
56.C解析:return语句中的表达式的值就是所求的函数值,此表达式值的类型必须与函数首部所说明的类型一致。如果类型不一致,则以函数值的类型为准,由系统自动进行转换。一个return语句只能返回一个值。
57.C解析:数据流相当于一条管道,并有一级数据(信息)流经它。在数据流图中,用标有名字的箭头表示数据流。数据流可以从加工流向加工,也可以从加工流向文件或从文件流向加工,并且可以从外部实体流向系统或从系统流向外部实体。
58.B解析:continue语句的作用是跳过本次循环体中余下尚未执行的语句,接着再一次进行循环条件的判定。当能被2整除时,a就会增1,之后执行continue语句,直接执行到for循环体的结尾,进行i++,判断循环条件。
59.C(10)C)解析:DB即数据库(Database),是统一管理的相关数据的集合;DBMS即数据库管理系统(DatabaseManagementSystem),是位于用户与操作系统之间的一层数据管理软件,为用户或应用程序提供访问DB的方法;DBS即数据库系统(DatabaseSystem)由如下5部分组成,数据库(数据)、数据库管理系统(软件)、数据库管理员(人员)、系统平台之一——硬件平台(硬件)、系统平台之二——软件平台(软件)。
60.B解析:C语言规定,数组元素的下标是从零开始的.本题首先定义了一个二维数组aa并按行赋初值,定义了一个变量s用于求和。for循环执行4次分别把数组元素aa[0][1]、aa[1)[1)、oa[2][1]和aa[2][1]的值(2,6,9,2)加到变量s中,s的值为19,所以最后输出的s的值为19.所以4个选项中B正确。
61.C
62.A
63.C由于a小于b,所以所有选项中的条件都为假,c选项中实际执行了a=b;b=c;两个操作。而A、B、D选项由于条件不成立,所以什么也没有做,所以选择c选项。
64.B冒泡排序的基本概念是:以升序为例,依次比较相邻的两个数,将小数放在前面,大数放在后面。第一趟排序过程是这样的,首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。这样一次排序后,最后一个数为所有数中的最大数。第二趟排序重复以上过程,仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到最大数前的一对相邻数,将小数放前,大数放后,第二趟结束,在倒数第二个数中得到一个新的最大数。如此下去,直至最终完成排序。
冒泡排序的时间复杂度是指执行冒泡排序算法所需要的时间。冒泡排序算法最好的时间复杂度为所要排序的数列为正序,即在执行排列算法之前就已经达到目标的顺序。这样只需要执行一次排序算法,算法所需要进行数据比较的次数为n-1次。冒泡排序算法最差的时间复杂度为当前所要进行排列的数列顺序与目标数列的顺序相反。算法所需要进行数据比较的次数为n(n-1)/2=O(n2)。算法的平均时间复杂度为O(n2)。
65.D首先定义了一个指向一维数组b的指针P,一个指向指针P的指针变量q;输出*(p++)是先输出*p,即b[O]的值,再将指针P指向数组的下一个元素b[1];输出**q是输出指针P所指单元的内容。
66.D本题考查指针变量的赋值。**PP是定义一个指针变量,语句pp=&p是将pp指向指针P,*P和**PP都是指针P所指的内存空间的内容,即b的值。
67.B(*q)++是q所指的字符加l,q++就是指针移到下一个字符。因此B选项正确。
68.DA选项中整型常量应表示为1200,不能包含“。”。B选项中E后面的指数必须为整数。C选项中转义字符以“、”开始,若要表示字符“、”,应写为“、、”。
69.B#include”文件名”,预处理程序首先在引用被包含文件的源文件所在的目录下搜索指定的文件,如没找到,再按系统指定的标准目录搜索。
70.C数据库系统的三级模式是概念模式、外模式和内模式。概念模式是数据库系统中全局数据逻辑结构的描述,是全体用户公共数据视图。外模式也称子模式或用户模式,它是用户的数据视图,给出了每个用户的局部数据描述,所以选择C。内模式又称物理模式,它给出了数据库物理存储结构与物理存取方法。
71.A考查文件操作函数fopen的基础知识,以”W”方式打开文件,只能写不能读。选项A正确。
72.B
73.B\n栈是限定在一端进行插入与删除的线性表,允许插入和删除元素的一端称为栈顶,另一端为栈底。栈顶元素是最后被插入的元素,也是最先被删除的元素,即栈是按照”先进后出”的原则组织数据的。栈具有记忆功能,带链的栈的结点存储顺序与其逻辑顺序可以不一致。
\n
74.C在函数intfun(intx[],intn)的定义中,变量sum为一个静态局部变量。由于在整个程序运行期间,静态局部变量在内存中的静态存储中占据着永久的存储单元。函数intfun(intx[],intn)的功能是求出数组x[]各个元素的和,所以在主函数中,调用函数fun(a,5)后,变量sum=1+2+3+4+5=15,当再次调用fun(b,4)后,变量sum=15+6+7+8+9=45,所以s=15+45=60。
75.D
76.A本题主要考查按位求反运算:十六进制整型常量的形式是以数字Ox开头的十六进制字符串;位求反运算的规则是:将二进制表示的运算对象按位取反,即将1变0,将0变1。
77.A
78.B当n为9时,此时if语句成立,执行n++后,n为10,因此输出n的值为10,故选择B选项。
79.C选项A中,fun(inty,doublem);中变量y和m前不需要类型说明;因为函数fun(10,12.5)没有返回值,所以选项B错误;调用函数fun时,不需要在函数前面加上void,所以选项D错误。故本题的正确答案是选项C。
80.D解析:字符替换定义格式为:#define标识符(形参表)形参表达式。题中F是代表形参表达式的标识符(字符串)。
81.
82.1doublefun(doublex,intn)2{3inti;4doubles=1.0,sl=1.0;5for(i=1/i<=n;i++)6{si=si*i;/*各项中的阶乘*/?s=s+pow(x,i)/si;/*按公式求出*/}Returns;10}程序定义了变量Sl和s,sl表示每项的分母(即各项的阶乘),S存放累加和。循环语句控制累加的次数,在循环体中进行阶乘和累加操作,将累加的结果存入S中。此处使用了求乘方函数pow(X,i),其含义是求X的i次方的值。2021-2022年四川省广安市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.在如下结构定义中,不正确的是()。A.
B.
C.
D.
2.有以下程序:main(){char*p[10]={"abc","aabdfg","dcdbe","abbcf',"cd"};printf("%d\n",strlen(p[4]));}执行后的输出结果是______。
A.2B.3C.4D.5
3.以下不能作为合法常量的是()。
A.'cd'B.1.234e04C.”\a”D.'\011'
4.树是结点的集合,它的根结点数目是()。
A.有且只有1B.1或多于1C.0或1D.至少2
5.
6.有以下程序:
程序执行后的输出结果是()。
A.357B.753C.369D.751
7.数据流图(DFD)的作用是()。
A.描述软件系统的控制流B.支持软件系统的功能建模C.支持软件系统的面向对象分析D.描述软件系统的数据结构
8.链栈与顺序栈相比,比较明显的优点是()。
A.插入操作更加方便B.删除操作更加方便C.不会出现下溢的情况D.不会出现上溢的情况
9.有以下程序:#include<stdio.h>point(char*p){p+=3;}main()charb[4]={'a','b','c','d'},*p=b;point(p);printf("%c\n",*p);
A.aB.bC.cD.d
10.下列程序的输出结果是()
main()
{inta,b,d=25;
a=d/10%9;
b=a&&(-1);
printf("%d,%d\n",a,b);}
A.6,1B.2,1C.6,0D.2,0
11.
12.若有函数内部说明:inta[3][4];则数组a中各元素
A.可在程序的运行阶段得到初值0
B.可在程序的编译阶段得到初值0
C.不能得到确定的初值
D.可在程序的编译或运行阶段得到初值0
13.有以下程序
#include<stdio.h>
#include<stdlib.h>
main()
{int*a,*b,*c;
a=b=c=(int*)malloc(sizeof(int));
*a=1;*b=2,*c=3;
a=b
printf(”%d,%d,%d\n”,*a,*b,*c);
}
程序运行后的输出结果是()。A.3,3,3B.2,2,3C.1,2,3D.1,1,3
14.下列程序的输出结果是()。char*point(char*pt):main{charb[4]={a,c,s,f),*pt=b;pt=point(pt);printf("%c\n",*pt);}point(char*p){p+=3;returnp;}A.sB.cC.fD.a
15.下列叙述中错误的是()。
A.C语言程序必须由一个或一个以上的函数组成
B.函数调用可以作为一个独立的语句存在
C.若函数有返回值,必须通过return语句返回
D.函数形参的值也可以传回给对应的实参
16.一棵二叉树共有25个结点,其中5个是叶子结点,则度为l的结点数为()。
A.16B.10C.6D.4
17.有下列程序:程序执行后的输出结果是()。A.2,14,3,18,4,18
B.1,14,2,18,3,18
C.2,14,3,18,4,22
D.1,14,2,18,3,18,4,18
18.
19.下列叙述错误的是()。
A.函数名是属于用户标识符,需符合C语言对标识符的规定
B.形参只能是变量
C.为保证程序的正常运行,函数中定义的变量不能与其他函数中的变量同名
D.函数中定义的变量可以与其他函数中的变量同名
20.已知函数的调用形式为fread(buf,size,count,fp),参数buf的含义是
A.一个整型变量,代表要读入的数据项总数
B.一个文件指针,指向要读的文件
C.一个指针;指向要读入数据的存放地址
D.一个存储区,存放要读的数据项
二、2.填空题(20题)21.以下程序运行后,若输入:3,abcde<回车>,则输出结果是【】。
#include<stdio.h>
#include<string.h>
move(char*str,intn)
{chartemp;inti;
temp=str[n-1];
for(i=n-1;i>0;i--)str[i]=str[i-1];
str[0]=temp;
}
main()
{chars[50];intn,i,z;
scanf("%d,%s",&n,s);
z=strlen(s);
for(i=1;i<=n;i++)move(s,z);
printf("%s\n",s);
}
22.以下程序的运行结果是______。
#include<stdio.h>
main()
{FILE*fp;inta[10]={1,2,3,0,0},i;
fp=fopen("d2.dat","wbt");
fwtite(a,sizeof(int),5,fp);
fwlite(a,sizeof(int),5,fp);
fclose(fp);
fp=fopen("d2.dat","rb");
fread(a,sizeof(int),10,fp);
fclose(fp);
for(i=0;i
23.下列程序的输出结果是______。
#include<stdio.h>
sb(ints[].intb)
{staticintn=3;
b=s[n];
n--;
return(b);
}
main()
{ints[]={1,5,6,8);
inti,x=0;
for(i=0;i<4;i++)
{x=sb(s,x);
printf(:%d",x);
}
printf("\n");
}
24.下面程序的运行结果是()。#definePOW(r)r*rmain(){intx=2,y=3,t;t=POW(x+y);printf("%d\n",t);}
25.下列程序的运行结果是______。
main()
{ints=0,i=1;
while(s<=10)
{s=s+i*i;
i++;
}
printf("%d",-i);
}
26.以下程序调用函数swap_p将指针s和t所指单元(a和b)中的内容交换,请填空。
main()
{inta=10,b=20,*s,*t;
s=&a;t=&b;
swap_p(【】);
printf("%d%d,a,b");}
swap_p(int**ss,int**tt)
{intterm;
term=**ss;
**ss=**tt;
**tt=term;}
27.以下程序运行后的输出结果是______。
fun(inta)
{intb=0;staticintc=3;
b++;c++;
return(a+b+c);
}
main()
{inti,a=5;
for(i=0;i<3;i++)printf("%d%d",i,fun(a));
printf("\n");
}
28.在算法的4个特性中,算法必须能在执行有限个步骤之后终止指的是算法的______特性。
29.数据库设计分为以下6个设计阶段:需求分析阶段、______、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。
30.在C语言中,可以利用【】,将一个表达式的值转换成指定的类型。
31.下面函数用来求两个单精度数之和,并通过形参将结果传回,请填空。
voidsub(floatx,floaty,【】z)
{【】=x+y;}
32.下面程序的输出是【】。
main()
{enumem{em1=3,em2=l,em3};
char*aa[]={"AA","BB","CC","DD"};
printf("%s%s\n",aa[eml],aa[em2],aa[em3]);
}
33.设有下列宏定义:
#defineA2
#defineB(A+3)
则执行赋值语句"k=B*20;"(k为int型变量)后,k的值是______。
34.以下程序的输出结果是【】。
main()
{
intarr[]={30,25,20,15,10,5},*p=arr;
p++;
printf("%d\n",*(p+3));
}
35.近年来形成了软件开发的多种模式,大致有3种类型:基于瀑布模型的结构化生命周期方法、基于动态定义需求的【】方法和基于结构的面向对象的软件开发方法。
36.以下程序的输出结果是【】。
#include<stdio.h>
main()
{intn=12345,d;
while(n!=0){d=n%10;printf("%d",D);n/=10;}
}
37.Fibonacci数列中的头两个数是1和1,从第3个数开始,每个数等于前两个数之和。下述程序计算此数列的前20个数,且每行输出5个数,请填空。
#include<stdio.h>
main()
{intf,f1=1,f2=1;
inti;
printf("%6d%6d",f1,f2);
for(i=3;i<=20;i++)
{f=【】;
printf("%6d",f);
if(【】)
printf("\n");
f1=f2;
【】;
}
}
38.C语言程序的注释可以出现在程序中的任何地方,一个注释以【】分别作为开始和结束。
39.有以下程序:
#include<stclio.h>
main()
{charc;
while((c=getchar())!='?')putchar(--c);
}
程序运行时,如果从键盘输入:Y?N?<回车>,则输出结果为【】。
40.面向对象的程序设计方法中涉及的对象是系统中用来描述客观事物的一个______。
三、1.选择题(20题)41.微机显示器一般有两组引线,它们是()
A.电源线与信号线B.电源线与控制线C.电源线与地线D.控制线与地线
42.现代计算机之所以能自动地连续进行数据处理,主要是因为()
A.采用了开关电路B.采用了半导体器件C.具有存储程序的功能D.采用了二进制
43.设intb=2;,则表达式(b<<2)/(b>>1)的值是______。
A.0B.2C.4D.8
44.以下程序的输出结果是()enumweekday{sun=7,mon=1,tue,wed,thu,fri,sat};main(){enumweekdayworkday,week_end;inti,a[8];workday=tue;weekend=sun;pritnf("\ntuesday=%dsunday=%d",wotkday,week_end);workday=sun+tue;week_end=(enumweekday)3;printf("tuesday=%dsunday=%d",workdayweek_end);a[sun]=sun;a[mon]=mona[tue]=tue;a[wed]=wed;a[thu]=thu;a[fri]=fr;a[sat]=sat;for(i=1;i<7;i++)printf("%d",a[i]);}
A.tuesday=2sunday=7;tuesday=2sunday=7;1234567
B.tuesday=2sunday=7;tuesday=9sunday=3;1234567
C.tuesday=0sunday=7;tuesday=2sunday=3;1234567
D.tuesday=1sunday=2;tuesday=3sunday=4;1234567
45.以下程序的输出结果是
main()
{inta,i;a=0;
for(i=1;i<5;i++)
{switch(i)
{case0:
case3:a+=2;
case1:
case2:a+=3;
default:a+=5;}
}printf("%d\n",a);}
A.31B.13C.10D.20
46.设有如下说明typedefstructST{longa;intb;charc[2];}NEW;则下面叙述中正确的是______。A.以上的说明形式非法B.ST是一个结构体类型C.NEW是一个结构体类型D.NEW是一个结构体变量
47.以下程序的结果是()
main()
{unsignedinta=3,b=10;
printf("%d\n",a<<2|b>>1);
}
A.1B.5C.12D.13
48.下列程序的运行结果是()。#include<stdio.h>#include<string.h>main(){char*s1="abDuj";char*s2="ABdUG";intt;t=strcmp(s1,s2);printf("%d",t);}
A.正数B.负数C.零D.不确定的值
49.检查软件产品是否符合需求定义的过程称为()。
A.确认测试B.集成测试C.验证测试D.验收测试
50.有以下程序main(){inti:10,j=1;printf("%d,%d\n",i--,++j);}执行后输出结果是
A.9,2B.10,2C.9,1,D.10,1
51.以下有4组用户标识符,其中合法的一组是()。
A.FOr-subCase
B.4dDOSize
C.f2_G3IFabc
D.WORDvoiddefine
52.设x,y和z都是血型变量,且x=3,y=4,z=5,则下面表达式中,值为0的表达式是
A.x&&y
B.x<=y
C.x‖++y&&y-z
D.!(x<y&&!z‖1)
53.若变量已正确说明为float型,要通过语句scanf("%f%f%f",&a,&b,&c);给a赋予10,0,b赋予22.0,c赋予33.0,下列不正确的输入形式是
A.10<回车>22<回车>33<回车>
B.10.0,22.0,33.0<回车>
C.10.0<回车>22.033.0<回车>
D.1022<回车>33<回车>
54.有以下程序
#include<stdio.h>
main()
{inta[]={1,2,3,4},y,*p=&a[3];
--p;y=*p;printf("y=%d\n",y);
}
程序的运行结果是
A.y=0B.y=1C.y=2D.y=3
55.以下程序的输出结果是______。main(){chara[10]={'1','2','3','4','5','6','7','8','9'},*p;inti;i=8;p=a+i;printf("%s\n",p-2);}
A.6B.789C.'6'D.6789
56.函数的值通过return语句返回,下面关于return语句的形式描述错误的是
A.return表达式;
B.return(表达式);
C.一个return语句可以返回多个函数值
D.一个return语句只能返回一个函数值
57.在数据流图(DFD)中,带有名字的箭头表示______。
A.控制程序的执行顺序B.模块之间的调用关系C.数据的流向D.程序的组成成分
58.下列程序的输出结果是#include"stdio.h"main(){inti,a=0,b=0;for(i=1;i<10;i++){if(i%2==0){a++;continue;}b++;}printf("a=%d,b=%d",a,b);}
A.a=4,b=4B.a=4,b=5C.a=5,b=4D.a=5,b=5
59.数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是()。
A.DB包含DBS和DBMSB.DBMS包含DB和DBSC.DBS包含DB和DBMSD.没有任何关系
60.有以下程序main(){intaa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};inti,s=0;for(i=0;i<4;i++)s+=aa[i][1];printf("%d\n",s);}程序运行后的输出结果是()
A.11B.19C.13D.20
四、选择题(20题)61.
62.
63.设有定义:
inta=1,b=2,C=3;
以下语句中执行效果与其他三个不同的是()。
A.if(a>B.C=a,a=b,b=C;
B.if(a>B.{C=a,a=b,b=C;}
C.if(a>B.C=a;a=b;b=c;
D.if(a>B.{C=a;a=b;b=c;}
64.冒泡排序的时间复杂度为
A.O(n)B.O(n2)C.O(log2n)D.O(nlog2n)
65.下述程序的输出结果是()。#include<stdio.h>voidmain{intb[6]={2,4,6,8,10,12);int*p=b,**q=&p;printf("%d,",*(p++));printf("%d,",**q);}A.4,4B.2,2C.4,5D.2,4
66.若有定义和语句:
int*(*pp),*P,a=20,b=10;
pp=&p;p=&a;p=&b;printf("%d,%d\n",*P,**PP);
则输出结果是()。A.A.20,10B.20,20C.10,20D.10,10
67.有以下程序:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 学校艺术团体活动的丰富与管理计划
- 业务流程管理的马工学视角试题及答案
- 小米13新品发布会策划方案
- 电子技能实训 教案全套-教学设计
- 物流信息系统的架构分析试题及答案
- 2024监理工程师考试模拟题试题及答案
- 黑龙江民族职业学院《数据挖掘综合实践》2023-2024学年第二学期期末试卷
- 黑龙江省伊春市乌伊岭区2024-2025学年数学三下期末达标检测试题含解析
- 黑龙江省克东县玉岗镇第二中学2024-2025学年六年级下学期5月模拟预测数学试题含解析
- 黑龙江省哈尔滨市69中学2024-2025学年初三高中毕业生第二次复习统一检测试题物理试题含解析
- 教育家的师德情怀(终稿)课件
- 复变函数与积分变换全套课件
- 厂内机动车辆课件
- 四川方言词典(教你说一口地道的四川话)
- 学校食堂餐厨具操作规程
- DB32T 3916-2020 建筑地基基础检测规程
- 公务员登记表
- 自动控制原理全套课件
- 质量部KPI考核指标
- 肩关节镜下肩袖修补术的护理查房ppt
- 菠菜色素提取和分离
评论
0/150
提交评论