版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021-2022年内蒙古自治区乌海市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.有以下程序:#include<stdio.h>voidf1(char*a,charb){charc;c=*a;*a=b;b=c;}voidf2(chara,charb){charc;c=a;a=b;b=c;}voidf3(char*a,char*b){charc;c=*a;*a=*b;*b=c;}main(){chart1,t2;t1=‘A’;t2=‘B’;f3(&t1,&t2);putchar(t1);putchar(t2);t1=‘A’;t2=‘B’;f2(t1,t2);putchar(t1);putchar(t2);t1=‘A’;t2=‘B’;f1(&t1,t2);putchar(t1);putchar(t2);printf(“\n”);}程序运行后的输出结果是()。
A.ABBABBB.BAABBBC.BABABAD.BABAAB
2.以下程序运行后的输出结果是()。
A.2B.1C.3D.O
3.以下能正确定义一维数组的选项是()。
A.inta[5]=(0,1,2,3,4,5);
B.chara[]={0,1,2,3,4,5);
C.chara={'A','B','C'};
D.inta[5]="0123";
4.下列关于字符串的说法中错误的是
A.在C语言中,字符串是借助于字符型一维数组来存放的,并规定以字符'\0'作为字符串结束标志
B.'\0'作为标志占用存储空间,计入串的实际长度
C.在表示字符串常量的时候不需要人为在其末尾加入'\0'
D.在C语言中,字符串常量隐含处理成以'\0'结尾
5.要求当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”,以下不满足要求的表达式是()。A.A%2==1B.!(A%2==0)C.A%2D.!(A%2)
6.以下程序的输出结果是______。main(){inti,k,a[10],p[3];k=5;for(i=0;i<10;i++)a[i]=i;for(i=0;i<3;i++)p[i]=a[i*(i+1)];for(i=0;i<3;i++)k+=p[i]*2;printf("%d\n",k);}
A.20B.21C.22D.23
7.有以下程序:#include<stdio.h>,main(){intS;scanf("%d",&s);while(s>O){switch(s){casel:printf("%d",s+5);case2:printf("%d",s+4);break;case3:printf("%d",s+3);default:("%d",s+1);break;}scanf("%d",&s);}}运行时,若输入123450<回车>,由输出结果是()。A.6566456B.66656C.66666D.6666656
8.以下选项中非法的字符常量是()。
A.\101B.\65C.\xffD.\019
9.
下列程序的输出结果是()。
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
10.设有定义“intx=2;”,以下表达式中,值不为6的是()。
A.2*x,x+=2B.x++,2*xC.x*=(1+x)D.x*=x+1
11.下列程序的输出结果是()。#include<stdio.h>main{structst{inty,x,z;};union{longi;intj;chark;}un;printf("%d,%d\n",sizeof(structst),sizeof(un))}A.6,2B.6,4C.8,4D.8,6
12.设有如下定义:int(*ptr);则以下叙述中正确的是()。
A.ptr是指向一维组数的指针变量
B.ptr是指向int型数据的指针变量
C.ptr是指向函数的指针,该函数返回一个int型数据
D.ptr是一个函数名,该函数的返回值是指int型数据的指针
13.有如下程序intfunc(inta,intb){return(a+b);}main(){intx=2,y=5,z=8,r;r=func(fnnc(x,y),z);printf("%d\n",r);}该程序的输出结果是______。
A.12B.13C.14D.15
14.下列程序的输出结果是()。voidfun(int*X,inty){printf("%d%d",*x,*y);*x=3;*y=1;}main{intx=1,y=2;fun(&y,&x);printf("%d%d",x,y);}A.2143B.1212C.1234D.2112
15.
16.设无向图G中的边的集合E={(a,b),(a,e),(a,c),(b,e),(e,d),(d,f),(f,c)},则从顶点a出发进行深度优先遍历可以得到的一种顶点序列为()。
A.aedfcbB.acfebdC.aebcfdD.aedfbc
17.若有说明:inta[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是
A.2B.3C.4D.无确定值
18.下列程序的输出结果是()。#include<stdio.h>main(){inti,S=0;for(i=1;i<10;i++)if(!(i%2)&&!(i%3))s+=i;printf("%d\n",s);}A.4B.39C.45D.6
19.软件测试的目的是()。
A.评估软件可靠性B.发现并改正程序中的错误C.改正程序中的错误D.发现程序中的错误
20.
二、2.填空题(20题)21.若有如下程序:
voidsub()
{staticintx=6;
x/=2;printf("%d",x);}
main()
{intm;
for(m=0;m<=2;m++)sub();}
则程序运行后的输出结果是【】。
22.数据字典是各类数据描述的集合,它通常包括五个部分,即数据项、数据结构、数据流、【】和处理过程。
23.以下程序的运行结果是【】。
#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);
}
24.以下程序的输出结果是【】。
main()
{unsignedshorta=65536;intb;
printfC%d\n",b=a);
}
25.在链表的运算过程中,能够使空表与非空表的运算统一的结构是______。
26.若输入3、4、5,程序的输出结果为【】。
#include"math.h"
main()
{floata,b,c,s,area;
scanf("%f,%f,%f",&a,&b,&c);
s=1.0/2*(a+b+c);
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2f",a,b,c,s);
printf("area=%7.2f\n",area);
}
27.表达式8/4*(int)2.5/(int)(1.25*(3.7+2.3))的值是______。
28.数据结构分为线性结构和非线性结构,线性表、栈和队列都属于【】。
29.以下程序运行后的输出结果是【】。
main()
{
chara[]="Language",b[]"Programe";
char*p1,*p2;
intk;
p1=a,p2=b;
for(k=0;k<=7;k++)
if(*(p1+k==*(p2+k))printf("%c",*(p1+k));
}
30.下面rotate函数的功能是:将n行n列的矩阵A转置为A',例如:
123415913
5678261014
当A=9101112则A'=371115
13141516481216
请填空。
#defineN4
voidrotate(inta[][NJ)
{
inti,j,t;
for(i=0;i<N;i++)
for(j=0;______;j++)
{
t=a[i][j];
______;
a[j][i]=t;
}
}
31.下面程序的运行结果是【】。
#inelude<stdio.h>
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);
}
32.下列程序运行后的输出的结果是______。
#include<stdio.h>
main()
{chars[20];
scanf("%s",s);
printf("%s",s);
}
运行程序,输入HOWAREYOU。
33.以下程序运行后的输出结果是【】。
main()
{
charc1,c2;
for(c1='0',c2='9';c1<c2;c1++,c2--)
printf("%c%c",c1,c2);
printf("\n");
}
34.以下程序运行后的输出结果是______。
main()
{
inti,n[]={0,0,0,0,0};
for(i=1;i<=4;i++)
n[i]=n[i-1]*2+1;
printf("%d",n[i]);
}
}
35.设在主函数中有以下定义和函数调用语句,且函数fun为void型,请写出函数fun的首部【】。要求形参名为b。
main()
}doubles[10][22];
intn;
┆
fun(s);
┆
}
36.一个项目有一个项目主管,一个项目主管可管理多个项目,则实体“项目主管”与实体“项目”的联系属于【】的联系。
37.判定表和判定树是以图文形式描述数据流图的【】
38.以下程序的运行结果是【】。
#include<stdio.h>
main()
{intfun();fun();}
fun()
{staticinta[3]={0,1,2};
inti;
for(i=0;i<3;i++)a[i]+=a[i];
for(i=0;i<3;i++)printf("%d,",a[i]);
printf("\n");}
39.软件测试是保证软件质量的重要手段,而软件测试的主要和重要的测试方法是通过测试数据和【】的设计来实现。
40.下列程序中的数组a包括10个整数元素,分别将前项和后项之和存入数组b,并按每行4个元素输出数组b。请填空。
#include<stdio.h>
main()
{inta[10],b[10],i;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++)
______;
for(i=0;i<9;i++)
{if(i%4=0)printf("\n");
printf("%3d",b[i]);
}
}
三、1.选择题(20题)41.下列描述错误的是()。
A.继承分为多重继承和单继承
B.对象之间的通信靠传递消息来实现
C.在外面看不到对象的内部特征是基于对象的“模块独立性好”这个特征
D.类是具有共同属性、共同方法的对象的集合
42.若有以下说明和语句:structst{intn;char*ch;};structsta[3]={5,"abc",7,"def",9,"ghk"},*p=a;则值为6的表达式是______。
A.p++->nB.p->n++C.(*p).n++D.++p->n
43.判断char型变量c1是否为小写字母的正确表达式为()。
A.'a'<=c1<='z'
B.(c1>=A)&&(c1<=z)
C.('a'>=c1||('z'<=c1)
D.(c1>='a')&&(c1<='z')
44.若希望下列的程序运行后输出25,程序空白处的正确选项是()。main(){inti,j=50,a[]={7,4,10,5,8};for()j+=a[i];printf("%d",j-40);}
A.i=1;i<4;++iB.i=1;i<3;++iC.i=4;i>2;i--D.i=2;i<4;++i
45.以下程序的功能是:建立一个带有头结点的单向链表,并将存储在数组中的字符依次转存到链表的各个结点中,请填空。#include<stdlib.h>stuctnode{chardata;struetnode*next;};stntctnode*CreatList(char*s){struetnode*h,*p,*q;h=(structnode*)malloc(sizeof(structnode));p=q=h;while(*s!='\0'){p=(structnode*)malloc(sizeof(structnode));p->data=()q->next=p;q=p;a++;p->next='\0';returnh;}main(){charstr[]="linklist";struetnode*head;head=CreatList(str);
A.*sB.sC.*s++D.(*s)++
46.设有下面的程序段:chars[]="china";char*p;p=s;则下列叙述正确的是
A.s和p完全相同
B.数组s中的内容和指针变量p中的内容相同
C.s数组长度和p所指向的字符串长度相等
D.*p与s[0]相等
47.下列叙述错误的是()。
A.在C语言中的保留字必须小写
B.变量的存储类型决定了变量的存储位置及其生存期
C.宏定义以#define开头,行末必须加分号
D.在C语言中的注释行可以出现在程序的任何位置
48.下述函数功能是_______。intfun(char*x){char*y=x;while(*y++);returny-s-1;}
A.求字符串的长度B.求字符串存放的位置C.比较两个字符串的大小D.将字符串x连接到字符串y后面
49.请选出以下程序的输出结果#include<stdio.h>main(){inta[]={1,2,3,4},i;intx=0;for(i=0;i<4;i++){sub(a,x);printf("%d",x);}printf("\n");}sub(s,y)int*s,y;{staticintt=3;y=s[t];t--;}
A.1234B.4321C.0D.4444
50.设变量已正确定义,则下列能正确计算f=n!的程序段是()。
A.f=0;for(i=1;i<=n;i++)f*=i;
B.f=1;for(i=1;i<n;i++)f*=i;
C.f=1;for(i=n;i>1;i++)f*=i;
D.f=1;for(i=n;i>=2;i--)f*=i;
51.阅读下列程序段,则程序的输出结果为#include"stdio.h"#defineM(X,Y)(X)*(Y)#defineN(X,Y)(X)/(Y)main(){inta=5,b=6,c=8,k;k=N(M(a,b),c);printf("%d\n",k);}
A.3B.5C.6D.8
52.若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是A.++x,y=x--B.x+1=yC.x=x+10=x+yD.double(x)/10
53.执行下面程序段的结果是()。intx=23;do{printf("%2d",x--);}while(!x);
A.输出321B.输出23C.不输出任何内容D.陷入死循环
54.已知一个文件中存放若干工人档案记录,其数据结构如下:structa{charnumber[100];intage;floatp[6];};定义一个数组:structanumber[10];假定文件已正确打开,不能正确地从文件中读入10名工人数据到数组b中的是()。
A.fread(b,sizeof(structA),10,fp);
B.for(i=0;i<10;i++)fread(b[i],sizeof(structA),1,fp);
C.for(i=0;i<10;i++)fread(b+i,sizeof(structA),1,fp);
D.for(i=0;i<5;i+=2)fread(b+i,sezeof(structA),2,fp);
55.现有如下程序段#include"stdio.h"main(){intk[30]={12,324,45,6,768,98,21,34,453,456};intcount=0,i=0;while(k[i]){if(k[i]%2==0‖k[i]%5==0)count++;i++;}printf("%d,%d\n",count,i);}则程序段的输出结果为
A.7,8B.8,8C.7,10D.8,10
56.以下程序中函数setup的功能是返回形参指针s1和s2所指字符串中较小字符串的首地址:#include<stdio.h>#include<string.h>char*scmp(char*s1,char*s2){if(strcmp(s1,s2)<0)return(s1);elsereturn(s2);}main(){inti;charstring[20],str[3][20];for(i=0;i<3;i++)gets(str[i]);strcpy(string,scmp(str[0],str[1]));strcpy(string,scmp(string,str[2]));printf("%s\n",string);}若运行时依次输入:abcd、abba和abc3个字符串,则输出结果为______。
A.abcdB.abbaC.abcD.abca
57.字长为32位的计算机是指()
A.该计算机中的CPU有32个寄器
B.该计算机能够处理的最大数不超过232
C.该计算机每秒钟所能执行的指令条数为32MIPS
D.该计算机中的CPU可以相同时处理32位的二进制数
58.下列程序的输出结果是______。main(){chara[10]={1,2,3,4,5,6,7,8,9,0},*p=a+5;printf("%d",*--p);}
A.非法B.a[4]的地址C.5D.7
59.执行以下程序后,test.txt文件的内容是(若文件能正常打开)()。#include<stdio.h>main(){FILE*fp;char*s1="Fortran",*s2="Basic";if((fp=fopen("test.txt","wb"))==NULL){printf("Can'topentest.txtfile\n");exit(1);}fwrite(s1,7,1,fp);/*把从地址s1开始的7个字符写到fp所指文件中*/fseek(fp,0L,SEEK_SET);/*文件位置指针移到文件开头*/fwrite(s2,5,1,fp);fclose(fp);}
A.BasicanB.BasicFortranC.BasicD.FortranBasic
60.若a、b、c1、c2、x、y均是整型变量,则正确的switch语句是()。
A.switch(a+b);{casel:y=a+b;break;case0:y=a-b;break;}
B.switch(a*a+b*b){case3:case1:y=a+b;break;case3:y=b-a;break;}
C.switcha{casec1:y=a-b;break;casec2:x=a*d;break;default:x=a+b;}
D.switch(a-b){default:y=a*b;break;case3:case4:x=a+b;break;case10:case11:y=a—b;break;}
四、选择题(20题)61.在关系数据库系统中,当关系的模型改变时,用户程序可以不变,这是
A.数据的物理独立性B.数据的逻辑独立性C.数据的位置独立性D.数据的存储独立性
62.若有以下说明,则()不是对strcpy库函数正确的调用。strcpy库函数用于复制一个字符串:char*strl="abCd",str2[10],*str3="hijklmn",*str4[2],*str5="aaaa";
A.strcpy(str2,strl)
B.strcpy(str3,strl)
C.strcpy(strl,str2)
D.strcpy(str5,strl)
63.
64.有以下程序程序运行后的输出结果是()。
A.123456B.14C.1234D.12
65.
设有以下定义和语句:
charstr[2O]="Program",*P:
p=str:
则以下叙述中正确的是()。
A.*p与stf[0]的值相等
B.str与P的类型完全相同
C.str数组长度和P所指向的字符串长度相等
D.数组str中存放的内容和指针变量P中存放的内容相同
66.有以下程序(strcat函数用以连接两个字符串)
67.
68.
有以下程序:
main
{inta[]=(2,4,6,8,10},y=0,x,*P;
p=&a[1];
for(x=1;x<3;x++)y+=p[x];
printf("%d\n,y");
}
程序运行后的输出结果是()。
A.10B.11C.14D.15
69.下面四个选项中,均是不合法的用户标识符的选项是()。
A.
B.
C.
D.
70.下列选项不符合良好程序设计风格的是()。
A.源程序要文档化B.数据说明的次序要规范化C.避免滥用goto语句D.模块设计原则是高耦合、高内聚
71.若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
72.以下叙述中错误的是()。
A)C语言是高级语言
B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令
C)C语言产生的目标程序后缀名为OBJ
D)C语言中的函数不可以单独进行编译
73.
74.
75.
76.若某二叉树的前序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbaechf,则其后序遍历的结点访问顺序是()。
A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca
77.
78.
79.
80.以下正确的字符串常量是()。
A."\\\"B.abcC.OlympicGamesD.""
五、程序改错题(1题)81.已知一个数列从0项开始的前3项为0,0,1,以后的各项都是其相邻的前3项之和。下列给定的程序中,函数proc的功能是:计算并输出该数列前n项的和sum。n的值通过形参传人。例如,当n=20时,程序的输出结果应为42762.000000。请修改程序中的错误,使它能得到正确结果。注意:不要改动maiil函数,不得增行或删行,也不得更改程序的结构。试题程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>doubleproc(intn){doublesum,s0,s1,s2,s;intk;sum=1.0;if(n<=2)sum=0.0;s0=0.0;s1=0.0;s2=1.0;//****found****for(k=4;k<n;k++)}{s=s0+s1+s2;sum+=S:s0=s1;s1=s2;//****found****s2=s;returnsum;}voidmain{intn;system("CLS");printf("InputN=");scanf("%d",&nJ;printf("%f\n",proc(n));}
六、程序设计题(1题)82.请编写函数fun(),其功能是计算并输出下列多项式的值:F=1+1/1!+1/21+1/31+1/41+…+1/m!例如,若主函数从键盘给m输入5,则输出为F=2.716667。注意:m的值要求大于1但不大于100。部分源程序给出如下。请勿改动main()函数与其他函数中的任何内容,仅在函数fun()的花括号中填入所编写的若干语句。试题程序:
参考答案
1.B函数f1(*a,b),*a为地址传递,b为值传递,将b值传给*a,则f1(&t1,t2)调用后输出t1、t2为BB。f2(a,b)为值传递,传入的只是a、b的值,不实现交换,则f2(t1,t2)调用后输出t1、t2为AB。f3(*a,*b)为地址传递,可以实现a、b值的交换,则f3(&t1,&t2)调用后输出t1、t2为BA。因此结果为BAABBB。故本题答案为B选项。
2.A参数r的传递是地址传递,函数调用会改变其值。函数f的功能是:判断n是否为3或5的倍数,如果是,则将指针r所指的内存空间赋值为n除以3或5的商;否则n递减,直到它可以被3或5整除。初始时调用函数f(7,&r);n=7,执行else子句,调用f(6,&r1);后n=6,执行语句if(n%3==0)r1=n/3;,此后执行语句*r=rl;。所以r=6/3=2。
3.B数组1标从0开始,A选项中所赋值的个数超过了数组的长度;C选项中定义a为字符型变量,而不是数组,赋值错误;D选项中,整型数组不能赋字符串。
4.B解析:'\\0'作为标志占用存储空间,但是不计入串的实际长度。当给一个字符型指针赋值时,赋给这个指针的是这个字符串的地址。
5.D
6.B解析:第1个循环对数组a进行赋值:第2个循环对数组p进行赋值;第3个循环对k进行累加,k的初值等于5,第1次循环,k=k+p[0]*2=5+0*2=5,第2次循环,k=k+p[1]*2=5+2*2=9,第3次循环,k=k+p[2]*2=9+6*2=21并输出。
7.A根据题意,当s=1时,输出65;当s=2时,输出6;当S=3时,则输出64;当S=4时,输出5;当s=5时,输出6;当s=0时,程序直接退出。所以最后答案为6566456,A选项正确。
8.D在选项中,\\019,以0开头的数都为八进制数,而八进制的表示数字是0~7,所以答案选择D。
9.B
\n当逻辑运算符“&&”两边的值是非零时,逻辑表达式的值为真(即为1)。所以b=2&&(-1)=1,2%9=2,故a=2,故先算a/10=25/10=2。
\n
10.AA选项中先计算逗号表达式的第1个表达式“2*x”,然后计算第2个表达式“x+=2”,即“x=x+2=4”,整个逗号表达式为第2个表达式的值4。所以A选项正确。B选项中首先计算逗号表达式的第1个表达式“x++”,此时x为3;再计算第2个表达式“2*x=2*3=6”,所以逗号表达式为第2个表达式的值6。C选项中的表达式可以表示为“x=x*(1+x)=2*(1+2)=6”。D选项中的表达式可以表示为“x=x*(x+1)=2*3=6”。故本题答案为A选项。
11.B本题主要考查结构和联合内存使用的一些区别:结构中每个成员相互独立,一个结构所占内存空间的大小是结构中每个成员所占内存空间大小的总和;联合所占用内存空间是指最长的成员占用的空间。
12.C本题中int(*ptr)的含义是指向函数的指针变量,其为指向函数的指针变量,该函数返回一个int型数据,故选择C选项。
13.D
14.C当执行fun函数时,因为参数传递时是地址传递,因此形参值的改变会影响实参中的数,在执行fun函数时先输出12,接着把*X赋3,*y赋4,此时带回主函数中,输出的值为34。
15.B
16.B
17.B解析:本题考查二维数组的定义方式。第一维的大小由以下方法判断:①当初值的个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小;2)当初值的个数不能被第二维的常量表达式的值除尽时,则第一维的划、:所得的商数+1。
18.Dif语句的条件是当i既是3的倍数又是2的倍数时成立,所以此程序实现的功能是将10以内既是3的倍数又是2的倍数的数相加。
19.D软件测试是为了发现错误而执行程序的过程,测试要以查找错误为中心,而不是为了演示软件的正确功能,也不是为了评估软件或改正错误,因此本题答案为D)。
20.B
21.310
22.数据存储数据存储
23.a=2b=1a=2,b=1解析:本题考查了switch结构的内容。C语言中,程序执行完一个case标号的内容后,如果没有break语句,控制结构会转移到下一个case继续执行,因为case常量表达式只是起语句标号作用,并不是在该处进行条件判断。本题程序在执行完内部switch结构后,继续执行了外部switch结构的case2分支,最后a和b的值分别为2和1。
24.00解析:对于一个unsignedshort来说,它能取的最大值是65535。这里给a赋值65536,已经超出了它的取值范围,这样它的高位将被截掉,只把低位赋给它(全零)。所以a的值实际为0。
25.循环链表循环链表解析:在循环链表中,由于设置了一个头结点,因此在任何情况下,循环链表中至少有一个结点存在,从而使空表与非空表的运算统一。
26.a=3.00b=4.00c=5.00s=6.00area=6.00
27.0。0。解析:表达式中将实型常量2.5和算术表达式1.25*(3.7+2.3)的值强制转换为整型后参与运算。
28.线性结构线性结构解析:本题考查了数据结构的基本概念。与栈类似,队列也是线性表,可以采用链式存储结构,所以带链的队列属于线性结构。
29.gaegae解析:本题定义了两个字符串数组a[],b[],字符型指针变量p1和p2,且分别指向字符串数组a和b,执行for循环,当if(*p1+k)=*(p2+k))条件为真,执打输出*(p1+k)对应的字符。即当k=0时,*(p1+k)对应的字符串数组a中的字符L,*(p2+k)对应的字符串数组b中的字符P,因此if(*(p1+k)=*(p2+k))条件为假,不执行printf语句,依此类推,将字符串数组a和b中对应位置上的字符一一比较,如果对应位置上的字符相同,则输出该字符。
30.j<ia[i][j]=a[j][i]j<ia[i][j]=a[j][i]解析:本题中要求将n行n列的矩阵A转置,即让数组中行上的元素变成对应列上的元素。即把对角线两边的元素对换,所以本题的第一个空格处应该填写1<i,第二个空格处填写交换对角线两边的元素的语句a[i][j]=a[j][i]。
31.66解析:已知aa[3]={1,2,3},n=3,调用函数f,n>1成立,执行a[0]+f(&a[1],n-1);即1+f(&a[1],2),递归调用函数f,将a[1]的地址作为参数传给数组a,使数组a的首地址变为&a[1],数组中的元素只有2,3;2传给n,这时n=2,n>1仍然成立,继续调用a[0]+f(&a[1],n-1);即执行1+2+f(&a[1],1),因为上次递归调用函数f后数组中的元素为2,3,所以此次的a[1]为3,调用后的a[0]为3。所以最后结果为1+2+3=6。
32.HOWHOW解析:在scanf()函数中,使用空格作为分隔符,如果输入含有空格的字符串,则不能使用scanf()函数,所以本题中输入空格就返回了'\\0',s数组也就确定了,后面的输入就不再读入数组s中。
33.09182736450918273645解析:题目中为for循环定义了两个字符型循环变量c1和c2,循环开始时分别初始化为字符‘0’和‘9’,然后每次循环结束给c1增1、c2减l,循环条件为c1<c2,即让c1的值依次为‘0’、‘1’、‘2’…,c2的值依次为‘9’、‘8’、‘7’…,直到两个数相遇时结束循环。又因为该循环的循环体每次按字符形式输出c1和c2的值。所以最终的输出结果为:0918273645。
34.1371513715解析:本题中,定义了一个整型数组n并初始化,在for循环语句中,再对数组中各元素重新赋值。循环执行第一次时,n[1]=n[0]*2+1=0+1=1,pnntf函数输出1,然后i的值加1,比较i<4成立,继续执行循环体语句,相应输出3、7、15,直至i<=4不成立,退出循环。所以最后输出为1、3、7、15。
35.voidfun(double*b)或voidfun(doubleb[10][12])voidfun(double*b)或voidfun(doubleb[10][12])解析:本题考查数组名作函数参数。程序中被调用函数fun(s)的实参s是数组名,而s为double型数组名,所以函数fun的形参类型为double*。
36.一对多或1:N一对多或1:N解析:两个实体集间的联系实际上是实体集间的函数关系,这种函数关系可以有三种,即一对一(1:1)的联系、一对多(1:N)或多对一(N:1)的联系和多对多(N:N)的联系。
37.判定树、判定表判定树、判定表
38.0240480,2,4\r\n0,4,8解析:本题主要考查for循环语句的使用以及静态局部变量的特点。
39.测试实例测试实例解析:进行软件测试时,应精心设计测试实例和选择测试数据,以对系统进行全面测试。
40.b[i]=a[i]+a[i+1]b[i]=a[i]+a[i+1]解析:将数组a中元素a[i]与a[j+1]值相加后的值赋予数组b中元素b[i],即可实现将一个数组的前项和后项之和存入另一数组。
41.C解析:对象的封装性是指从外面看只能看到对象的外部特性;而对象的内部,其处理能力的实行和内部状态对外是不可见的,是隐蔽的。
42.D解析:根据结构变量的存储特点,p+1意味着增加地址值为结构体数组a的一个元素所占的字节数,即p++使p由a[0]指向a[1]起始地址。本题++p->n得到p指向的结构体变量中成员n的值使之加1。因为p指向数组a起始地址,p->n的值为5,再掏打自加1运行,结果为6。
43.D
44.D解析:要想使程序输出是25,则j-40=25,j=65,而j初值是50,所以填入for循环中的语句,使引用的数组元素累加为65-50=15即可。
45.A本题要求建立一个stmctnode类型的数据链表,函数CreatList将字符串"linklist"的首地址传给指针变量s,可以推断建立的链表一定与"linklist",有关,由CreatList(char*s)函数中所定义的变量及其他语句可知,h,p,q用于建立的链表,h表示头指针,p用于记录开辟的新结点,而q用作将新结点与已建立的链表相连的中间变量,所建立链表各个结点的data依次存放的是”linklist",中的各个字符,所以应填空*s。
46.D解析:考查的是字符指针和字符数组的区别。选项A)中,s为数组名,是一个常量地址,而指针p为一个字符变量,不能说两者完全相同,所以选项A)错误。选项B)和C)的说法都不严谨,只有选项D)的说法正确。
47.C解析:本题涉及C语言最基本的4个知识点:①C语言的保留字必须小写;②变量的存储类型不同,其存储位置和生存期也不一样:③C语言允许其注释部分出现在程序中的任何位置;④宏定义以#define开头,行末不需要加分号。
48.A解析:在函数体内定义一字符型指针并指向形参,然后遍历其中各字符直到NULL,最后返回字符串首尾地址的差值,即字符串的长度。
49.C解析:若指针s指向数组a,则s[t]可以引用数组a中下标为t的元素。注意:通过数组的首地址引用数组元素。
50.D解析:要正确计算函数f=n!,由n!的数学定义可知n!=n*(n-1)*(n-2)*……*1。在选项A)中,由于f的初值为0,在for循环语句中,f依次乘以1,2,3,……,n。最后计算f=n!=O,所以选项A)不正确。在选项B)中,f的初值为1,在for循环语句中,f依次乘以1,2,3,……,(n-1)。最后计算得到f=(n-1)!,所以选项B)不正确。在选项C)中,f的初值为1,在for循环语句中,f依次乘以n,n+1,n+2,……,所以选项C)不正确。在选项D)中,f的初值为1,在for循环语句中,f依次乘以n,n-1,n-2,……,2。最后计算f=n!,所以选项D)正确。
51.A解析:带参数的宏定义命令行形式如下:#define宏名(形参表)替换文本。首先进行M的宏替换,之后再进行N的宏替换,替换后的表达式为(a)*(b)/(C)。
52.A解析:在C语言的赋值表达式中,赋值对象必须是一个变量,而在选项B中其子表达式x+1代表的是一个临时常量,因此不能将y赋给x+1,选项B错误。而选项C中由于“=”运算符是从右至左运算的,即原表达式相当于x=(x+10=x+y),所以也犯了对一个临时常量赋值的错误。选项D中,将x强制转换为double类型的表达式应该为(double)x,所以选项D也不正确。故本题的正确答案为选项A。
53.B解析:x--是先使用x的值,后进行自减运算,所以输出的结果应当为23。
54.B
55.D
56.B解析:函数scmp的功能是比较两个符号串的大小,返回值较小的那个符号串。str[0]中存放'abcd'、str[1]中存放'abba'、str[2]中存放'abc',执行完语句strcpy(string,scmp(sty[0],sir[1]));后string中存放'abba',执行完语句strcpy(string,scmp(string,str[2]));后string中存放'abba'。
57.D
58.C解析:p是一个指向字符的指针,在定义时,指向a[5]。执行--p时,p就指向了a[4],那么*--p就是5。
59.A
60.D解析:switch语句后不能有分号,故选项A错误;switch语句中的常量不能在分支重复出现,故选项B错误;选项C中,switch后的表达式必须要加括号,case后的表达式必须是常量,故选项C错误;因此只有选项D正确。
61.B数据独立性是数据库系统的一个最重要的目标之一。它能使数据独立于应用程序。数据库的数据独立性主要包括数据的物理独立性和逻辑独立性。
物理独立性是指用户的应用程序与存储在磁盘上的数据库中的数据是相互独立的,即数据在磁盘上怎样存储由DBMS管理,用户程序不需要了解,应用程序要处理的只是数据的逻辑结构。这样,当数据的物理存储改变了,应用程序不用改变。
逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的,即当数据的逻辑结构改变时,用户程序也可以不变。
本题中说的关系的模型
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人教版四年级上册数学第六单元《除数是两位数的除法》测试卷附参考答案【b卷】
- 湖南省岳阳市2023-2024学年高一上学期期末考试化学试题(含答案)
- 诚信售后权益声明
- 询价合同协议书模板
- 语文课件探索婴宁
- 货物订购协议
- 购房合同补充协议的撰写技巧
- 购车合同范本样本样本图片地质
- 购销合同协议格式
- 购销涂料协议文本
- 预防校园欺凌主题班会课件(共36张课件)
- 碳汇经济与美丽中国智慧树知到期末考试答案2024年
- 24春国家开放大学《教育心理学》终结性考核参考答案
- 求职能力展示
- 2023年中国风能太阳能资源年景公报
- 软件工程生涯发展展示
- 医院保安服务方案(技术方案)
- 2021 国家开放大学《经济学基础》形考任务1-4
- 离婚登记申请受理回执单(民法典版)
- 售后服务部部门组织架构
- 1烟酒购销合同
评论
0/150
提交评论