版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021-2022年内蒙古自治区巴彦淖尔市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.在一个链式队列中,假设f和r分别为队头和队尾指针,则插入S所指结点的运算是()。
A.f->next=s;f=s;
B.r->next=s;r=s;
C.S->next=rr=s;
D.r->next=f;f=s;
2.
3.
4.若二维数组a有m列,则在a[i][j]前的元素个数为()。
A.i*m+j-1B.i*m+jC.J*m+iD.i*m+j+1
5.当调用函数时,实参是一个数组名,则向函数传送的是______。
A.数组的长度B.数组的首地址C.数组每一个元素的地址D.数组每个元素中的值
6.在C语言中,退格符是
A.\nB.\tC.\fD.\b
7.若有以下定义;chara;intb;floatc;doubled;则表达式“a*b+d-c”值的类型为()
A.floatB.intC.charD.double
8.设有定义intn=0,*p=&n,**q=&p;,则下列选项中正确的赋值语句是
A.p=1;B.*q=2;C.q=p;D.*p=5;
9.
10.有以下程序main(){union{charch[2];intd;}s;s.d=0x4321;printf("%x,%x\n",s.ch[0],s.ch[1]);}在16位编译系统上,程序执行后的输出结果是______。A.21,43B.43,21C.43,00D.21,00
11.若i、j已定义成mt型,则下列程序段中内循环体的总执行次数是()。for(i=6;i>0;i--)for(j=0;j<4;j++){…}A.20B.24C.25D.30
12.下列对队列的叙述正确的是A.队列属于非线性表B.队列按“先进后出”原则组织数据C.队列在队尾删除数据D.队列按“先进先出”原则组织数据
13.二叉树的第三层最少有________个结点。
A.0B.1C.2D.3
14.下列程序的运行结果是()。
#include<stdio.h>
main()
{intx=5,a=1,b=2,C=5,d=0;
if(a<B)
if(b!=3)
if(!C)
x=1;
else
if(D)x=1;
elsex=-1;
printf("%d",x);
}
A.-1B.0C.1D.不确定的值
15.若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是()A.1B.2C.2.0D.2.5
16.有以下程序main(){intnum[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j;for(i=0;i<4;i++){for(j=0;j<=i;j++)printf("%4c",");for(j=______;j<4;j++)printf("%4d",num[i][j]);prrintf("\n");}}若要按以下形式输出数组右上半三角1234678111216则在程序下划线处应填入的是
A.i-1B.iC.i+1D.4-i
17.设有以下语句:charstr1[]="string",str2[8],*str3,*str4=="string;则______不是对库函数的正确调用。
A.strcpy(str1,"HELLO1");
B.strcpy(str2,"HELLO2");
C.strcpy(str3,"HELLO3");
D.strcpy(str4,"HELLO4")
18.
19.设有以下定义uniondata{intd1;floatd2;}demo;则下面叙述中错误的是A.变量demo与成员d2所占的内存字节数相同
B.变量demo中各成员的地址相同
C.变量demo和各成员的地址相同
D.若给demo.d1赋99后,demo.d2中的值是99.0
20.有以下程序:intfun(intn){if(n==l)returnl;elsereturn(n+fun(n一1)):}main{intx;scanf("%d",&x);x=fun(x);printf("%d\n",x):}执行程序时,给变量X输入10,程序的输出结果是()。A.55B.54C.65D.45
二、2.填空题(20题)21.如果一个工人可管理多个设施,而一个设施只被一个工人管理,则实体“工人”与实体“设备”之间存在______联系。
22.以下sum函数的功能是计算下列级数之和。请给函数中的各变量正确赋初值。
doublesum(doublex,intn)
{inti;doublea,b,s;
for(i=1;i<=n;i++)
{a=a*x;b=b*i;s=s+a/b;}
returns;
}
23.下列程序用来输出结构体变量ex所占存储单元的字节数。
structst
{charname[20];doublescore;};
main()
{structstex;
printf("exsize:%d\n",sizeof(【】));
}
24.以下sstrcpy()函数实现字符串复制,即将t所指字符串复制到s所指向内存空间中,形成一个新的字符串s。请填空。
voidsstrcpy(char*s,char*t)
{while(*s++=______);}
main()
{charstr1[100],str2[]="abcdefgh";
sstrcpy(str1,str2);
printf("%s\n",str1);
}
25.若fp已正确定义为一个文件指针,d1.dat为二进制文件,请填空,以便为“读”而打开此文件:
fp=fopen(【】);。
26.数据字典是各类数据描述的集合,它通常包括五个部分,即数据项、数据结构、数据流、【】和处理过程。
27.有以下定义和语句,则sizeof(a)的值是【】,而sizeof(a.share)的值是【】。
structdate
{intday;
intmouth;
intyear;
union{intshare1;
floatshare2;
}share;
}a;
28.在关系数据库中把数据表示成二维表,每一个二维表称为【】。
29.下面函数的功能是:找出一维数组元素中最大的值和它所在的下标,最大的值和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。请填空。
#include<stdlib.h>
#include<stdio.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);}
30.以下程序通过函数SunFun求这里f(x)=x2+1,由F函数实现。请填空。
main()
{printf("Thesum=%d\n",SunFun(10));}
SunFun(intn)
{intx,s=0;
for(x=0;x<=n;x++)s+=F(【】);
returns;
}
F(intx)
{return(【】);}
31.以下程序的运行结果为【】。
main()
{staticintnumber[6]={1,2,3,4,5,6};
intm=4,j;
move(number,6,m);
for(j=0;i<5;j++)
printf("%d,",number[j]);
printf("%d",number[5]);
}
move(array,n,m)
intn,m,array[6];
{int*p,array_end;
array_end=*(array+n-1);
for(p=array+n-1;p>array;p--)
*p=*(p-1);
*array=array_end;
m--;
if(m>0)move(array,n,m);
}
32.以下程序的运行结果是【】。
#include<stdio.h>
longfib(intg)
{switch(g)
{case0:return0;
case1:
case2:return1;}
return(fib(g-1)+fib(g-2));}
main()
{longk;
k=fib(5);
printf("k=%5ld\n",k);}
33.函数pi的功能是根据以下近似公式求π值:
(π*π)/6=1+1/(2*2)+1/(3*3)+…+1(n*n)
现在请你在下面的函数中填空,完成求π的功能。
#include"math.h"
{doubles=0.0;longi;
for(i=1;i<=n;i++)s=s+【】;
return(sqrt(6*3));
}
34.若a=1,b=2,则表达式!(x=A)‖(y=B)&&0的值是______。
35.设有chara,b;,若要通过a&b运算屏蔽掉a中的其他位,只保留第2位和笫8位(右起为第1位),则b的二进制是【】。
36.若有以下定义:
chara;intb;
floatc;doubled;
则表达式a*b+d-c值的类型为【】。
37.语句:x++;、++x;、x=x+1;、x=1+x;,执行后都使变量x中的值增1,请写出一条同一功能的赋值语句(不得与列举的相同)【】。
38.Jackson方法是一种面向【】的结构化方法。
39.下列程序输出的结果是______。
intm=17;
intfun(intx,inty)
{intm=3;
return(x*Y-m);
}
main()
{inta=5,b=7;
printf("%d\n",fun(a,B)/m);
}
40.设有定义:
struct{inta;floatb;charc;}abc;*p_abc=&abc;
则对结构体成员a的引用方法可以是abc.a和p_abc【】a。
三、1.选择题(20题)41.在软件开发过程中,软件结构设计是描述______。
A.数据存储结构B.软件体系结构C.软件结构测试D.软件控制过程
42.下列叙述中正确的是A.break语句只能用于switch语句
B.在switch语句中必须使用default
C.break语句必须与switch语句中的case配对使用
D.在switch语句中,不一定使用break语句
43.请选出以下程序的输出结果()。#include<stdio.h>#defineMIN(x,y)(x<y)?x:ymain(){inti,j,k;i=10;j=15;k=10*MIN(i,j);printf("%d\n",k);}
A.15B.100C.10D.150
44.数据库系统的核心是()。
A.数据模型B.数据库管理系统C.数据库D.数据库管理员
45.设变量a是int型,f是float型,i是double型,则表达式10+′a′+i*f值的数据类型为
A.intB.floatC.doubleD.不确定
46.若有语句:char*line[5];,以下叙述中正确的是
A.定义line是一个数组,每个数组元素是一个基类型为char为指针变量
B.定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组
C.定义line是一个指针数组,语句中的*号称为间址运算符
D.定义line是一个指向字符型函数的指针
47.下面函数调用语句含有实参的个数为func((exp1,exp2),(exp3,exp4,exp5));
A.1B.2C.4D.5
48.软件工程的出现是由于()。A.A.程序设计方法学的影响B.软件产业化的需要C.软件危机的出现D.计算机的发展
49.一个良好的算法由下面的基本结构组成,但不包括______。
A.顺序结构B.选择结构C.循环结构D.跳转结构
50.有以下程序:intfun(intn){if(n==1)return1;elsereturn(n+fun(n-1));}main(){intx;scanf("%if",&x);x=fun(x);printf("%d\n",x);}执行程序时,给变量X输入10,程序的输出结果是()。A.55B.54C.65D.45
51.下列叙述中不正确的是()。
A.在C语言中调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参
B.在C的函数中,最好使用全局变量
C.外部变量可以在函数之间传递数据
D.自动变量实质上是一个函数内部的局部变量
52.设变量a、b、c、d和y都已正确定义并赋值。若有以下if语句
if(a<b)
if(c==d)y=0;
elsey=1;
该语句所表示的含义是
A.0a<b且c=dy={1a>=b
B.0a<b且c=dy={1a>=b且c≠d
C.0a<b且c=dy={1a<b且c≠d
D.0a<b且c=dy={1c≠d
53.已定义以下函数
fun(int*p)
{return*p;}
该函数的返回值是()
A.不确定的值
B.形参p中存放的值
C.形参p所指存储单元中的值
D.形参p的地址值
54.下面程序的运行结果是include<stdio.h>main(){inta=28,b;chars[10],*p;p=s;do{b=a%16;if(b<10)*p=b+48;else*p=b+55;p++;a=a/5;}while(a>0);*p='\0';puts(s);}
A.10B.C2C.C51D.\0
55.设x,y和z都是int型变量,且x=3,y=4,z=5,则下面表达式中,值为0的表达式是
A.x&&y
B.x<=y
C.x||++y&&y-z
D.!(x<y&&!z||1)
56.下列程序是将一个十进制正整数转化为一个八进制数,在程序的空白处应填入的语句是_______。#include<stdio.h>main(){inti=9,a,b[10]={0};scanf("%d",&A);sub(a,B);for(;i>=0;i--)printf("%d",b[i]);}sub(intc,intd[]){inte,i=0;while(c!=0){e=c%8;d[i]=e;________.i++;}return;}
A.c=e/8B.c=c%8C.c=c/8D.c=e%8
57.对如下二叉树:ABDECF进行后序遍历的结果为()。
A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA
58.以下程序的运行结果是
intk=0;
voidfun(intm)
{m+=k;k+=m;printf("m=%dk=%d",m,k++);}
main()
{inti=4;
fun(i++);
printf("i=%dk=%d\n",i,k);
}
A.m=4k=5i=5k=5
B.m=4k=4i=5k=5
C.m=4k=4i=4k=5
D.m=4k=5i=4k=5
59.数据字典是对数据定义信息的集合,它所定义的对象都包含于______。
A.程序框图B.软件结构C.数据流图D.方框图
60.结构化程序设计的3种基本结构是()。
A.过程、子程序和分程序B.顺序、选择和重复C.递归、堆栈和队列D.调用、返回和转移
四、选择题(20题)61.
62.若有以下程序:inta=1,b=2:a=a^b:b=b^a:则执行以上语句后a和b的值分别是()。
A.a=1,b=2B.a=3,b=lC.a=3,b=2D.a=2.b=1
63.有以下程序:
程序执行后的输出结果是()。
A.y=OS)y=一1B.0C.y=1D.while构成无限循环
64.(52)栈和队列的共同点是()
A.都是先进后出B.都是先进先出
C.只允许在端点处插入和删除元素
D.没有共同点
65.
下面程序的运行结果是()。
#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.1B.2C.3D.4
66.在c语言中,只有在使用时才占用内存单元的变量,其存储类型是()。A.aut0和Iegister
B.extern和register
C.aut0和static
D.static和register
67.
68.下列函数的功能是()。
A.将a所指字符串赋给b所指空间
B.使指针b指向a所指字符串
C.将a所指字符串和b所指字符串进行比较
D.检查a和b所指字符串中是否有‘、O’
69.
70.(27)程序流程图(PFD)中的箭头代表的是()
A.数据流
B.控制流
C.调用关系
D.组成关系
71.(60)视图设计一般有3种设计次序,下列不属于视图设计的是()
A.自顶向下
B.由外向内
C.由内向外
D.自底向上
72.有如下程序段
#include"stdio.h"
typedefstructaa
{inta;
structaa*next;
}M;
voidset(M*k,inti,int*b)
{intj,d=0;
for(j=1;j<i;j++)
{k[j-1].next=&k[j];
k[j-1].a=b[d++];
}
k[j].a=b[d];
}
main()
{Mk[5],*p;
intd[5]={23,34,45,56,67};
set(k,5,d);
p=k+1;
printf("%d\n",________);
}
要输出45,则在下画线处应填入的选项是
A.p->next->aB.++p->a
C.(*p).a++D.p++->a
73.
74.有以下程序:
#include<stdio.h>
intfun(intX,inty)
{if(X!=y)return((x+y)/2);
elsereturn(x);
}
main()
{inta=4,b=5,c=6;
printf("%d/n",fun(2*a,fun(b,c)));
}
程序运行后的输入结果是()。
A.3
B.6
C.8
D.12
75.阅读以下程序:
#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的值
76.
下列程序的输出结果是()。
#include<stdio.h>
main
{inti;
for(i=1;i<=10,i++)
{if((i*i>=20)&&(i*i<=100))
break;
}
printf("%d\n",i*i;
}
A.49B.36C.25D.64
77.
78.有以下程序程序执行后的输出结果是()
A.60B.50C.45D.55
79.
80.某系统总体结构图如下图所示:
该系统总体结构图的深度是()。
A.7B.6C.3D.2
五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:依次取出字符串中所有的字母字符,形成新的字符串,并取代原字符串。例如,若输入的字符串是:“ab232bd34bkw”,则输出结果是:“abbdbkw”。请修改程序中的错误,使它能得到正确结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.编写函数proc,它的功能是:计算和输出下列级数的和。S=1/(12)+1/(23)+…+1/(n(n+1))例如,当n=20时,函数值为0.952381。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:
参考答案
1.B
2.A
3.D
4.B解析:二维数组的元素可以看成是按矩阵形式存放的,总是先存放第一行的元素,再存放第二行的元素。数组第一维的下标是i,说明它前面还有i行,有i*m个元素,数组第二维的下标是j,说明它前面还有j列,有j个元素,所以共有i*m+j个元素。
5.B解析:当调用函数时,实参是一个数组名,则向函数传送的是数组的首地址,函数中的形参可定义成以下三种形式:
①形参定义成数组;
②形参定义成可变长数组:
③形参定义为指针变量。
6.D解析:在C++语言中退格符表示为\\b退格。注意:其他转义字符的意义:\\n表示回车换行,\\t表示横向跳到下一制表位置,\\v表示竖向跳格,\\r表示回车,\\f表示走纸换页,\\\\表示反斜线符,\\a表示鸣铃,\\ddd1~3位表示八进制数所代表的字符,\\xhh1~2位表示十六进制数所代表的字符。
7.D解析:参加运算的数据类型不同,要转换为统一的数据类型,double在数据类型转换中的级别最高,其他数据类型都要转化为double,因此表达式值的类型为double。
8.D解析:选项A),B),C)的指针赋值表达方式都不正确,*p=5表达整数5放到指针p所指向的存储单元中。注意:通过指针引用一个存储单。
9.C
10.A结构体和共用体;在“联合”中,各成员共享一段内存空间,一个联合变量的长度等于各成员中最长的长度。应该说明的是,这里所谓的共享不是指把多个成员同时装入一个联合变量内,而是指该联合变量可被赋予任一成员值,但每次只能赋一种值,赋入新值则冲去旧值
11.B本题考查for循环的使用。对于第1个for循环,任何一个i,内层j的循环都要使j~0到3,j=4时不符合,所以退出j循环;然后i减1,J仍然要从0~3,j=4时退出J循环直到i变成0,退出i循环。第一条for语句执行6次,第二条for语句执行4次,所以内循环体执行6*4=24次。
12.D解析:本题考查数据结构中队列的基本知识。队列是一种限定性的线性表,它只允许在表的一端插入元素,而在另一端删除元素,所以队列具有先进先出的特性。在队列中,允许插入元素的一端叫做队尾,允许删除的一端则称为队头。这与日常生活中的排队是一致的,最早进入队列的人最早离开,新来的人总是加入到队尾。因此,本题中只有选项D的说法是正确的。
13.B
14.A解析:本题考查ifelse语句。第1个if语句,先判断条件,发现a<b条件成立,执行下列的语句;第2个if语句,先判断条件,发现b!=3条件成立,执行下列的语句:第3个if语句,先判断条件,c=5,则!c条件不成立,执行与其配对的else语句:第4个if语句,先判断条件,d=0,条件不成立,则x=-1,结束循环。
15.C解析:这是一个逗号表达式,它的值应为表达式y=x+3/2的值,而前一个表达式已给x赋值1,在没有进行类型转换的情况下,3/2的值为1,所以x+3/2的值应为2.0。
16.B解析:本题考查循环嵌套,外层循环控制每一行的输出,内层循环的第一个for循环控制空格的输出,第二个for循环控制的输出。而在第i行,输出的第一个元素是num[i][i],所以下划线处应填i。
17.C解析:C语言中:strcpy(st1,st2);,其两个参数均为字符指针或字符数组,选项C中的目的中指针str3没有指向具体有效的存储单元,故是错误的调用。
18.C
19.D解析:联合体的所有成员共占同一段内存,所以联合体变量的长度与它的最长成员所占长度…致,本题中float所占内存字节数为4,而\u3000int类型在TurboC\u30002.0中是占2字节、在VisualC++6.0中占4字节,所以int类型所占内存字节数不会超过float,那demo就与成员d2所占字节数是相同的,选项A的说法正确。联合体的所有成员的首地址都是相同的,和联合体变量的地址一致。故选项B和C都是正确的。由于int类型数据和float类型数据在内存中的存放格式是不一样的,所以给d1赋99后,d2中不会得到99.0这个值。故选项D不正确,答案应该选择D。
20.A函数intfun(intn)的功能是求1+2+…+n的值并返回。所以执行程序时,给变量x输入10后,执行语句“x=fun(x);”,X的值将变为1到10中10个整数的累加和,即55。
21.一对多(或1:N)一对多(或1:N)
22.a=1;b=1;s=1;或a=b=s=1;或a=1.b=1s=1或给abs赋1或1.0或1.a=1;b=1;s=1;或a=b=s=1;或a=1.b=1,s=1或给a,b,s赋1或1.0或1.解析:sum函数的功能是求表达式s的级数之和,该函数的大致思路是:在该函数中,定义了—个整型变量i用作循环计数器,定义一个变量a用来表示各个子项的分子,初始为第一个子项的分子,故为1,定义了一个变量b用来表示各个子项大分母,初始为第一个子项的分母,故为1,定义一个变量s存放累加和,初始为第一个子项的值即为1,然后给各个定义的变量初始化,然后通过一个for循环将题目中的数学表达式的各个子项求出来并累加到s中,所以说,在该题的空格处应该填写将a、b和s赋初值的语句,即为a=1;b=1;s=1:(说明:语句的顺序可任意)或a=b=s=1;(说明:变量的顺序可任意)或a=1,b=1,s=1(说明:赋值表达式的顺序可任意)给a,b,s赋1或1.0或1都可以。
23.ex或structstex或structst
24.*t++或*(t++)*t++或*(t++)解析:主函数中定义了两个字符型数组st1l和str2,并且给str2赋初值“abcdefgh”,接着调用函数sstrcpy(str1,str2),将字符串str2的值赋给str1.在函数sstrcpy(*s,*t)中,用了一个while循环,每循环一次将形参指针t所指的字符赋给形参指针s所指向的存储空间,然后指针s和指针t都下移到下一个元素。所以空格处应该填*t++或*(t++)。
25.d1.dat"rb"d1.dat,'rb'解析:打开文件的函数为fopen('文件名','mode'),其中'mode'表示文件的打开方式。如果打开的是二进制文件,其mode字符串可以是:'rb'、'wb'、'ab'、'rb+'、'wb+'、'ab+'。'r'表示以只读方式打开。'w'表示以写方式打开,如果已存在该文件名的文件,文件中的内容将被清空。若文件名不存在,则将创建该文件。'a'为追加方式打开。若文件存在时,将打开这个文件并且在文件的末尾进行追加。当文件不存在,将创建新文件。'r+'打开一个已存在文件用于更新(可读可写)。\'w+'创建一个新文件用于更新,如果文件存在,文件被重写(可读可写)。'a+'打开用于追加,当文件不存在时,创建新文件,并在文件末尾进行追加(可读可写)。根据题意,应该填'd1.dat','rb'。
26.数据存储数据存储
27.10410\r\n4解析:结构体变量所占内存长度是各成员占的内存长度之和。每个成员分别占有其自己的内存单元。int占2个字节,float占4个字节,共用体变量所占的内存长度等于最长的成员的长度。所以,sizeof(a.share)的值是4,sizeof(a)的值是2+2+2+4=10。
28.关系或一个关系关系或一个关系解析:在关系数据库中,把数据表示成二维表,而一个二维表就是一个关系。
29.I<na[I]I<n,a[I]解析:该程序直接使用形参max和d,由于它们都是指针变量,所以要引用它们所指向的变量时,要对它们进行指针运算,即*号运算。
30.xx*x+1或1+x*xx\r\nx*x+1或1+x*x解析:题目中要求从x=0开始将f(x)的值累加起来,直到x=10。在SunFun()函数中用了一个for循环,每循环一次将f(x)累加到s中,所以在本题的第一个空格处我们应该填x,然后x+1,共循环10次。F()函数的功能应该是求数学表达式f(x)的值,所以其返回值应该为x*x+1。
31.345612
32.k=5k=5解析:本题主要考查了函数的递归调用方法。g=0或\ue008g=1\ue009或g=2是递归的终止条件,然后用回代的方法从一个已知值推出下一个值,直到计算出最终结果。
33.1.0/(i*i)或(double)1/(i*i)1.0/(i*i)或(double)1/(i*i)解析:表达式1+1/(2*2)+1/(3*3)+…+1(n*n)可写为1/(1*1)+1/(2*2)+1/(3*3)+…+1(n*n)
n
即;∑1÷(i×i)
i=1
对应的C语言的表达式s=s+1.0/(i*i)。注:必须要写成1.0的形式,否则1/(i*i)返回值为其值截尾取整,即恒为0。
34.00解析:根据运算符的运算顺序可知,该表达式最后运算的是与(&&)运算,而任何表达式与“0”进行“与”运算,结果都为0。
35.1000001010000010解析:运算“&”的,的规则是只有当两个相应的二进制位都为1时,该位的结果才为1。要保留第2、8位,只要将其与二进制数10000010相与。
36.double或双精度型double或双精度型解析:C语言中,如果运算符两边的数据类型不同,将进行类型转换,根据转换规则,短整型转为长整型;整型转换为实型。注意:数据类型的强制转换。
37.x+=1;
38.数据结构数据结构解析:Jackson方法是—‘种面向数据结构的结构化方法。
39.11解析:本题考查局部变量和全局变量的区别:局部变量是指作用域在函数级和块级的变量,全局变量是指作用域在程序级和文件级的变量。本程序首先定义了一个全局变量m=17,m=17的作用域在整个程序内。在fun函数内部定义了一个局部变量m=3,m=3的作用域仅在fun函数内部,通过fun函数返回两个形参的积再减m。在主函数中,输出fun(a,b)/m=(5*7-3)/17=1。
40.->->解析:结构变量abc有成员a,并有指针pabc指向结构变量abc,则引用变量abc成员a的形式有abc.a和p_abc->a。
41.B解析:从工程管理解度来看,软件设计分两步完成:概要设计和详细设计。概要设计(又称结构设计)将软件需求转化为软件体系结构、确定系统级接口、全局数据结构或数据库模式。
42.D解析:break语句除了能用于switch语句外,还可以用于循环语句中,因此选项A不正确。在switch语句中,可以使用default来执行所有case均失配时的分支,也可以不使用default,此时若所有case均失配则跳出switch,因此选项B不正确。在switch语句中,每个case的作用就是标出一个执行的起点,当符合某个case时,程序就从该case所标出的起点处开始执行,若没有break语句中断执行的话,程序会一直执行到switch的最后一条语句,而不是碰到下一个case就跳出switch。虽然break与case的配对使用会让所有case分支互不重叠条理明确,但不配对使用在C语言中也是允许的。因此选项C不正确,应该选择D。
43.C解析:本题考查宏定义。在C语言中,宏是直接替换的,所以表达式k=10*MIN(i,j)被直接替换为k=10*(i<j)?i:j,在这个表达式中,10*(i<j)的值为非零,所以整个表达式的值应为i的值,即为10。
44.B解析:数据库管理系统是数据库系统的核心,是负责数据库的建立、使用和维护的软件。数据库管理系统建立在操作系统之上,实施对数据库的统一管理和控制。用户使用的各种数据库命令以及应用程序的执行,最终都必须通过数据库管理系统。另外,数据库管理系统还承担着数据库的安全保护工作,按照数据库管理员所规定的要求,保证数据库的完整性和安全性。
45.C解析:根据混合运算规则,如果有一个数据是float型或double型,则其他数据类型先转化为double型,运算的结果最终也是double型。
46.A解析:C语言中[]比*优先级高,因此line先与[5]结合,形成line[5]形式,这是数组形式,它有5个元素,然后再与line前面的'*'结合,表示此数组是一个指针数组,每个数组元素都是一个基类型为char的指针变量。
47.B解析:函数调用的一般形式为:函数名(形参表)若函数无形参,调用形式为:函数名(),当所调用的函数用于求出某个值时,函数的调用可作为表达式出现在允许表达式出现的任何地方,本题中调用语句的参数个数为2个。
48.C解析:软件工程的基本概念。软件工程概念的出现源自于软件危机。为了消除软件危机,通过认真研究解决软件危机的方法,认识到软件工程是使计算机软件走向工程科学的途径,逐步形成了软件工程的概念。
49.D解析:1966年,Bohra和Jacopini提出了以下三种结构,用这三咱基本结构作为表示一个良好算法的基本单元:1、顺序结构;2、选择结构;3、循环结构。
50.A函数fun()通过递归调用实现的功能为n+(n-1)+…+1,故程序的输出结果为55。
51.B解析:编译时,编译系统不为局部变量分配内存单元,而是在程序运行中,当局部变量所在的函数被调用时,编译系统根据需要要临时分配内存,调用结束空间释放;全局变量一经定义,编译系统为其分配固定的内存单元,在程序运行的自始至终都占用固定的单元。在考虑内存不定的情况下,最好使用全局变量。
52.C解析:考查if语句的使用。整个语句都是以a<b为假设的,在a<b的情况下,如果c=d,则y=0;否则y=1。所以答案为选项C)。
53.C解析:本题考核的知识点是函数的返回值.函数的返回值应该为return后面的表达式的值,在本题中的表达式为*p,*p指的是形参p所指存储单元中的值,所以,4个选项中选项C符合题意。
54.C解析:语句“p=s;”是使指针p指向字符数组s。*p则引用了p所指位置的数组元素。注意:通过指针来引用一维数组元素。
55.D解析:该题考查逻辑与'&&'和逻辑或'||'以及逻辑非'!'符号的用法。选项A)即3&&4为真;选项B)即3<=4为真;选项C)是一个逻辑或与逻辑与的混合运算,只要执行了逻辑或左半部分,程序将直接停止执行逻辑或右半部分程序,因为x的值为真;此时选项C)变为1&&-1为真。选项D)不用计算,括号内逻辑或右边的值为1,因而括号内的值为1,再进行逻辑非运算得0。
56.C解析:本题主要考查了进制转换的除余取整法。本算法中,是先对数c除8取余作为转换后的8进制数的第1位,然后对c整除以8的商作同样的操作,直到商为0为止,因此本题应选C。
57.D
58.B解析:由于在main()函数中,变量i=4,所以就调用fun(4),则输出“m=4k=4”。然后变量k增1等于5,变量i增1等于5,所以main()函数的“printf('i=%dk=%d\\n',i,k);”语句输出“i=5k=5”。
59.C解析:数据字典是对数据定义的信息的集合,是对数据流图中包含的所有元素定义的集合。数据流图和数据字典共同构成系统的逻辑模型,没有数据流图则数据字典难以发挥作用,没有数据字典则数据流图就不严格。
60.BB。【解析】程序的三种基本控制结构包括:顺序、选择和重复(循环),这三种结构就足以表达出各种其他形式的结构。
61.B
62.B本题考查按位异或的用法。按位异或运算的规则是:两个运算数的相应二进制位相同,则结果为0,相异则结果为1。b=2的二进制为00000010,a=1的二进制为00000001,a=a^b=00000011,转化为十进制后为3,b=b^a=00000010-00000011=00000001,即1。
63.B执行Y一一直到值为0,由于Y一一是先用再减,所以退出循环时,y的值为一1。
64.C注:这一共同点和线性表不一样
65.D
\n本题中del(char*s)函数实现的功能是:逐个读入S数组中的字符,如果遇到数字,则将数字存在s中,遇到非数字字符则跳过。所以最后输出的应该是字符串S中所有的数字的个数。
\n
66.Aaut0:函数中的局部变量动态地分配存储空间,数据存储在动态存储区中,在调用该函数时系统会给它们分配存储空间,在函数调用结束时就自动释放这些存储空间。register:为了提高效率。c语言允许将局部变量的值放在cPu中的寄存器中,这种变量叫“寄存器变量”,只有局部自动变量和形式参数可以作为寄存器变量。extern:外部变量(全局变量)是在函数的外部定义的,它的作用域为从变量定义处开始,到本程序文件的末尾。如果外部变量不在文件的开头定义,其有效的作用范围只限于定义处到文件末尾。static:静态局部变量属于静态存储类别,在静态存储区内分配存储单元,在程序整个运行期间都不释放。根据以上分析可知,故本题答案为A)。
67.C
68.AWhile循环条件为:(_h=}a)f-‘、0’,执行时先把指针a所指向的字符赋给指针b所在内存单元,如果该字符不是结束标识‘\0’,执行循环体a++;b++;,指针a.b分别指向下一个字符单元。再判断循环条件,如果成立,继续把指针a所指向的字符赋给指针b所在内存单元,直到遇到结束标识为止。因此A选项正确。
69.B
70.B
71.B
72.A在本题中,程序首先定义了一个结构体,结构体中有两个成员变量,一个是整型,另一个是指向该结构体的指针。然后程序定义了一无返回值的函数set,该函数带有三个参数,第一个是结构体指针变量k,第二个是整型变量i,第三个是整型指针变量b。在函数体中,首先定义了两个整型变量,然后执行for循环,从循环变量的初始值及循环结束条件我们可以知道,循环执行的次数与形参变量i有关,从循环体中我们可以看出,该循环是将结构体数组中的前一个结构体的指针成员指向后一个结构体的首地址,并用数组b中的值给结构体的成员变量a赋值。
在主函数中,定义了一个大小为5的结构体数组k和一个结构体指针p,然后定义了一个数组d,并给数组d进行了初始化操作,然后调用函数set,实参分别为结构体数组k、5和数组d,结合上面我们对set函数的分析可以知道,此时执行set的for循环,可以是结构体数组中各结构体变量的指针成员next指向下一个结构体变量,并将该结构体变量的成员a赋值为数组d的与之位置相对应的值,如结构体数组中第一个结构体变量的a被赋值为数组d中的第一个元素值,即23。那么函数调用后,结构体数组各元素的成员a的值分别为23、34、45、56、67。
函数调用后,运行p=k+1;语句,该语句的作用是使结构体指针变量p执行结构体数组k的第二个元素,然后执行输出语句,本题要填的空就在输出语句中,根据题目要求,要输出一个45的值,当然,用数组d输出这么一个结果很简单,为d[2],但选项中并没有这项,而是需要我们从结构体数组中输出这个值,从上面的分析我们知道,该值对应结构体数组第三个元素的成员,而当前的p执行第二个元素,从四个选项来分析,只有A选项能完成输出45的任务。
B选项中的++p->a由于运算符优先级问题,首先运行p->a,输出的是34,然后加1,即输出35。
C选项中的(*p).a++等于((*p).a)++,这样的结果是34++,最后的输出结果是34。
D选项中的p++->a等价于(p++)->a,显然是输出第二个结构体的a成员值,即34。
73.C
74.B\n此题考查的是函数fun,fun(b,c)=5,然后fun(2*a,5)=fun(8,5)=6。
\n
75.A\n本题中定义了整形变量case,但case是关键字,关键字不能用做标识符。单精度printF不是关键字,因为标识符区分大小写。所以A不正确。
\n
76.C
\n本题考查for循环及if语句。当执行到第一个满足(i*i>一20)&&(i*i<=100)这个条件的i出现时,break跳出循环,执行下列的printf语句。
\n
77.D
78.A函数fun的功能是求数组的n个元素之和。fun(a,5)=15。由于s岫是静态局部变量,所以保持l5不变,fun(b,4)=45,所以s=fun(a,5)+fun(b,4)=60。
79.A
80.C根据总体结构图可以看出该树的深度为3,比如:XY系统——功能2——功能2.1,就是最深的度数的一个表现。
81.
82.
【解析】首先定义一个变量来表示其和s,通过n次循环求出n项的和,最后将所得到各项的和值返回给主函数。
2021-2022年内蒙古自治区巴彦淖尔市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.在一个链式队列中,假设f和r分别为队头和队尾指针,则插入S所指结点的运算是()。
A.f->next=s;f=s;
B.r->next=s;r=s;
C.S->next=rr=s;
D.r->next=f;f=s;
2.
3.
4.若二维数组a有m列,则在a[i][j]前的元素个数为()。
A.i*m+j-1B.i*m+jC.J*m+iD.i*m+j+1
5.当调用函数时,实参是一个数组名,则向函数传送的是______。
A.数组的长度B.数组的首地址C.数组每一个元素的地址D.数组每个元素中的值
6.在C语言中,退格符是
A.\nB.\tC.\fD.\b
7.若有以下定义;chara;intb;floatc;doubled;则表达式“a*b+d-c”值的类型为()
A.floatB.intC.charD.double
8.设有定义intn=0,*p=&n,**q=&p;,则下列选项中正确的赋值语句是
A.p=1;B.*q=2;C.q=p;D.*p=5;
9.
10.有以下程序main(){union{charch[2];intd;}s;s.d=0x4321;printf("%x,%x\n",s.ch[0],s.ch[1]);}在16位编译系统上,程序执行后的输出结果是______。A.21,43B.43,21C.43,00D.21,00
11.若i、j已定义成mt型,则下列程序段中内循环体的总执行次数是()。for(i=6;i>0;i--)for(j=0;j<4;j++){…}A.20B.24C.25D.30
12.下列对队列的叙述正确的是A.队列属于非线性表B.队列按“先进后出”原则组织数据C.队列在队尾删除数据D.队列按“先进先出”原则组织数据
13.二叉树的第三层最少有________个结点。
A.0B.1C.2D.3
14.下列程序的运行结果是()。
#include<stdio.h>
main()
{intx=5,a=1,b=2,C=5,d=0;
if(a<B)
if(b!=3)
if(!C)
x=1;
else
if(D)x=1;
elsex=-1;
printf("%d",x);
}
A.-1B.0C.1D.不确定的值
15.若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是()A.1B.2C.2.0D.2.5
16.有以下程序main(){intnum[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j;for(i=0;i<4;i++){for(j=0;j<=i;j++)printf("%4c",");for(j=______;j<4;j++)printf("%4d",num[i][j]);prrintf("\n");}}若要按以下形式输出数组右上半三角1234678111216则在程序下划线处应填入的是
A.i-1B.iC.i+1D.4-i
17.设有以下语句:charstr1[]="string",str2[8],*str3,*str4=="string;则______不是对库函数的正确调用。
A.strcpy(str1,"HELLO1");
B.strcpy(str2,"HELLO2");
C.strcpy(str3,"HELLO3");
D.strcpy(str4,"HELLO4")
18.
19.设有以下定义uniondata{intd1;floatd2;}demo;则下面叙述中错误的是A.变量demo与成员d2所占的内存字节数相同
B.变量demo中各成员的地址相同
C.变量demo和各成员的地址相同
D.若给demo.d1赋99后,demo.d2中的值是99.0
20.有以下程序:intfun(intn){if(n==l)returnl;elsereturn(n+fun(n一1)):}main{intx;scanf("%d",&x);x=fun(x);printf("%d\n",x):}执行程序时,给变量X输入10,程序的输出结果是()。A.55B.54C.65D.45
二、2.填空题(20题)21.如果一个工人可管理多个设施,而一个设施只被一个工人管理,则实体“工人”与实体“设备”之间存在______联系。
22.以下sum函数的功能是计算下列级数之和。请给函数中的各变量正确赋初值。
doublesum(doublex,intn)
{inti;doublea,b,s;
for(i=1;i<=n;i++)
{a=a*x;b=b*i;s=s+a/b;}
returns;
}
23.下列程序用来输出结构体变量ex所占存储单元的字节数。
structst
{charname[20];doublescore;};
main()
{structstex;
printf("exsize:%d\n",sizeof(【】));
}
24.以下sstrcpy()函数实现字符串复制,即将t所指字符串复制到s所指向内存空间中,形成一个新的字符串s。请填空。
voidsstrcpy(char*s,char*t)
{while(*s++=______);}
main()
{charstr1[100],str2[]="abcdefgh";
sstrcpy(str1,str2);
printf("%s\n",str1);
}
25.若fp已正确定义为一个文件指针,d1.dat为二进制文件,请填空,以便为“读”而打开此文件:
fp=fopen(【】);。
26.数据字典是各类数据描述的集合,它通常包括五个部分,即数据项、数据结构、数据流、【】和处理过程。
27.有以下定义和语句,则sizeof(a)的值是【】,而sizeof(a.share)的值是【】。
structdate
{intday;
intmouth;
intyear;
union{intshare1;
floatshare2;
}share;
}a;
28.在关系数据库中把数据表示成二维表,每一个二维表称为【】。
29.下面函数的功能是:找出一维数组元素中最大的值和它所在的下标,最大的值和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。请填空。
#include<stdlib.h>
#include<stdio.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);}
30.以下程序通过函数SunFun求这里f(x)=x2+1,由F函数实现。请填空。
main()
{printf("Thesum=%d\n",SunFun(10));}
SunFun(intn)
{intx,s=0;
for(x=0;x<=n;x++)s+=F(【】);
returns;
}
F(intx)
{return(【】);}
31.以下程序的运行结果为【】。
main()
{staticintnumber[6]={1,2,3,4,5,6};
intm=4,j;
move(number,6,m);
for(j=0;i<5;j++)
printf("%d,",number[j]);
printf("%d",number[5]);
}
move(array,n,m)
intn,m,array[6];
{int*p,array_end;
array_end=*(array+n-1);
for(p=array+n-1;p>array;p--)
*p=*(p-1);
*array=array_end;
m--;
if(m>0)move(array,n,m);
}
32.以下程序的运行结果是【】。
#include<stdio.h>
longfib(intg)
{switch(g)
{case0:return0;
case1:
case2:return1;}
return(fib(g-1)+fib(g-2));}
main()
{longk;
k=fib(5);
printf("k=%5ld\n",k);}
33.函数pi的功能是根据以下近似公式求π值:
(π*π)/6=1+1/(2*2)+1/(3*3)+…+1(n*n)
现在请你在下面的函数中填空,完成求π的功能。
#include"math.h"
{doubles=0.0;longi;
for(i=1;i<=n;i++)s=s+【】;
return(sqrt(6*3));
}
34.若a=1,b=2,则表达式!(x=A)‖(y=B)&&0的值是______。
35.设有chara,b;,若要通过a&b运算屏蔽掉a中的其他位,只保留第2位和笫8位(右起为第1位),则b的二进制是【】。
36.若有以下定义:
chara;intb;
floatc;doubled;
则表达式a*b+d-c值的类型为【】。
37.语句:x++;、++x;、x=x+1;、x=1+x;,执行后都使变量x中的值增1,请写出一条同一功能的赋值语句(不得与列举的相同)【】。
38.Jackson方法是一种面向【】的结构化方法。
39.下列程序输出的结果是______。
intm=17;
intfun(intx,inty)
{intm=3;
return(x*Y-m);
}
main()
{inta=5,b=7;
printf("%d\n",fun(a,B)/m);
}
40.设有定义:
struct{inta;floatb;charc;}abc;*p_abc=&abc;
则对结构体成员a的引用方法可以是abc.a和p_abc【】a。
三、1.选择题(20题)41.在软件开发过程中,软件结构设计是描述______。
A.数据存储结构B.软件体系结构C.软件结构测试D.软件控制过程
42.下列叙述中正确的是A.break语句只能用于switch语句
B.在switch语句中必须使用default
C.break语句必须与switch语句中的case配对使用
D.在switch语句中,不一定使用break语句
43.请选出以下程序的输出结果()。#include<stdio.h>#defineMIN(x,y)(x<y)?x:ymain(){inti,j,k;i=10;j=15;k=10*MIN(i,j);printf("%d\n",k);}
A.15B.100C.10D.150
44.数据库系统的核心是()。
A.数据模型B.数据库管理系统C.数据库D.数据库管理员
45.设变量a是int型,f是float型,i是double型,则表达式10+′a′+i*f值的数据类型为
A.intB.floatC.doubleD.不确定
46.若有语句:char*line[5];,以下叙述中正确的是
A.定义line是一个数组,每个数组元素是一个基类型为char为指针变量
B.定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组
C.定义line是一个指针数组,语句中的*号称为间址运算符
D.定义line是一个指向字符型函数的指针
47.下面函数调用语句含有实参的个数为func((exp1,exp2),(exp3,exp4,exp5));
A.1B.2C.4D.5
48.软件工程的出现是由于()。A.A.程序设计方法学的影响B.软件产业化的需要C.软件危机的出现D.计算机的发展
49.一个良好的算法由下面的基本结构组成,但不包括______。
A.顺序结构B.选择结构C.循环结构D.跳转结构
50.有以下程序:intfun(intn){if(n==1)return1;elsereturn(n+fun(n-1));}main(){intx;scanf("%if",&x);x=fun(x);printf("%d\n",x);}执行程序时,给变量X输入10,程序的输出结果是()。A.55B.54C.65D.45
51.下列叙述中不正确的是()。
A.在C语言中调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参
B.在C的函数中,最好使用全局变量
C.外部变量可以在函数之间传递数据
D.自动变量实质上是一个函数内部的局部变量
52.设变量a、b、c、d和y都已正确定义并赋值。若有以下if语句
if(a<b)
if(c==d)y=0;
elsey=1;
该语句所表示的含义是
A.0a<b且c=dy={1a>=b
B.0a<b且c=dy={1a>=b且c≠d
C.0a<b且c=dy={1a<b且c≠d
D.0a<b且c=dy={1c≠d
53.已定义以下函数
fun(int*p)
{return*p;}
该函数的返回值是()
A.不确定的值
B.形参p中存放的值
C.形参p所指存储单元中的值
D.形参p的地址值
54.下面程序的运行结果是include<stdio.h>main(){inta=28,b;chars[10],*p;p=s;do{b=a%16;if(b<10)*p=b+48;else*p=b+55;p++;a=a/5;}while(a>0);*p='\0';puts(s);}
A.10B.C2C.C51D.\0
55.设x,y和z都是int型变量,且x=3,y=4,z=5,则下面表达式中,值为0的表达式是
A.x&&y
B.x<=y
C.x||++y&&y-z
D.!(x<y&&!z||1)
56.下列程序是将一个十进制正整数转化为一个八进制数,在程序的空白处应填入的语句是_______。#include<stdio.h>main(){inti=9,a,b[10]={0};scanf("%d",&A);sub(a,B);for(;i>=0;i--)printf("%d",b[i]);}sub(intc,intd[]){inte,i=0;while(c!=0){e=c%8;d[i]=e;________.i++;}return;}
A.c=e/8B.c=c%8C.c=c/8D.c=e%8
57.对如下二叉树:ABDECF进行后序遍历的结果为()。
A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA
58.以下程序的运行结果是
intk=0;
voidfun(intm)
{m+=k;k+=m;printf("m=%dk=%d",m,k++);}
main()
{inti=4;
fun(i++);
printf("i=%dk=%d\n",i,k);
}
A.m=4k=5i=5k=5
B.m=4k=4i=5k=5
C.m=4k=4i=4k=5
D.m=4k=5i=4k=5
59.数据字典是对数据定义信息的集合,它所定义的对象都包含于______。
A.程序框图B.软件结构C.数据流图D.方框图
60.结构化程序设计的3种基本结构是()。
A.过程、子程序和分程序B.顺序、选择和重复C.递归、堆栈和队列D.调用、返回和转移
四、选择题(20题)61.
62.若有以下程序:inta=1,b=2:a=a^b:b=b^a:则执行以上语句后a和b的值分别是()。
A.a=1,b=2B.a=3,b=lC.a=3,b=2D.a=2.b=1
63.有以下程序:
程序执行后的输出结果是()。
A.y=OS)y=一1B.0C.y=1D.while构成无限循环
64.(52)栈和队列的共同点是()
A.都是先进后出B.都是先进先出
C.只允许在端点处插入和删除元素
D.没有共同点
65.
下面程序的运行结果是()。
#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.1B.2C.3D.4
66.在c语言中,只有在使用时才占用内存单元的变量,其存储类型是()。A.aut0和Iegister
B.extern和register
C.aut0和static
D.static和register
67.
68.下列函数的功能是()。
A.将a所指字符串赋给b所指空间
B.使指针b指向a所指字符串
C.将a所指字符串和b所指字符串进行比较
D.检查a和b所指字符串中是否有‘、O’
69.
70.(27)程序流程图(PFD)中的箭头代表的是()
A.数据流
B.控制流
C.调用关系
D.组成关系
71.(60)视图设计一般有3种设计次序,下列不属于视图设计的是()
A.自顶向下
B.由外向内
C.由内向外
D.自底向上
72.有如下程序段
#include"stdio.h"
typedefstructaa
{inta;
structaa*next;
}M;
voidset(M*k,inti,int*b)
{intj,d=0;
for(j=1;j<i;j++)
{k[j-1].next=&k[j];
k[j-1].a=b[d++];
}
k[j].a=b[d];
}
main()
{Mk[5],*p;
intd[5]={23,34,45,56,67};
set(k,5,d);
p=k+1;
printf("%d\n",________);
}
要输出45,则在下画线处应填入的选项是
A.p->next->aB.++p->a
C.(*p).a++D.p++->a
73.
74.有以下程序:
#include<stdio.h>
intfun(intX,inty)
{if(X!=y)return((x+y)/2);
elsereturn(x);
}
main()
{inta=4,b=5,c=6;
printf("%d/n",fun(2*a,fun(b,c)));
}
程序运行后的输入结果是()。
A.3
B.6
C.8
D.12
75.阅读以下程序:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026 学龄前自闭症公共场所规则课件
- Web安全防护要点
- 软件架构设计实践介绍
- 重庆西南大学附中高2026届高考全真模拟试题历史+答案
- 2025年个人税收递延养老险
- 委托代理采购协议书
- 译林版英语五年级下册Unit 5 Helping our parents第四课时
- 烧伤科护理不良事件分析报告
- 施工安全技术管理制度
- 2026年速冻食品生产安全操作规程及注意事项
- 输油管道初步设计-本科毕业论文
- 突发环境事件应急预案评审会汇报课件-(模板)
- JTS-T-116-2019水运建设工程概算预算编制规定
- 《公路桥涵养护规范》(JTG5120-2021)
- 饲料质量培训课件
- 我的家乡湖南长沙宣传简介
- 高考英语高频词组+短语+固定搭配
- 王慧文清华大学《互联网产品管理课》
- 3206回撤作业规程
- 循证医学课件:临床实践指南的评价与应用
- (4.3.1)-4.3平面问题三角形单元刚度矩阵
评论
0/150
提交评论