




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2021-2022年河北省承德市全國計算機(jī)等級考試C語言程序設(shè)計學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.下列數(shù)據(jù)結(jié)構(gòu)中,按先進(jìn)后出原則組織數(shù)據(jù)的是
A.線性鏈表B.棧C.循環(huán)鏈表D.順序表
2.語句int(*ptr)的含義是()。A.A.ptr是一個返回值為int的函數(shù)
B.ptr是指向int型數(shù)據(jù)的指針變量
C.ptr是指向函數(shù)的指針,該函數(shù)返回一個int型數(shù)據(jù)
D.ptr是一個函數(shù)名,該函數(shù)的返回值是指向int型數(shù)據(jù)的指針
3.以下敘述中錯誤的是()。
A.C語言的可執(zhí)行程序是由一系列機(jī)器指令構(gòu)成的
B.用C語言編寫的源程序不能直接在計算機(jī)上運(yùn)行
C.通過編譯得到的二進(jìn)制目標(biāo)程序需要連接才可以運(yùn)行
D.在沒有安裝C語言集成開發(fā)環(huán)境的機(jī)器上不能運(yùn)行C源程序生成的.exe文件
4.設(shè)x、y、z、t均為int型變量,則執(zhí)行以下語句后,t的值是()x=y(tǒng)=z=l;t=++x||++y&&++z;
A.不定值B.2C.1D.0
5.下述程序的輸出結(jié)果是()。#include<stdio.h>main(){inti;for(i=1;i<=10;i++){if(i*i>=20)(i*i<=lOO))break;}printf("%d\n",i*i);}A.49B.36C.25D.64
6.設(shè)inta=12,則執(zhí)行完語句a+=a-=a*a后,a的值是()。
A.552B.264C.144D.-264
7.現(xiàn)在有16枚外形相同的硬幣,其中一枚是假幣,且已知假幣比真幣重量輕。先給定一架沒有砝碼的天平,問至少需要多少次稱量才能找到這枚假幣?
A.3B.4C.5D.6
8.若有定義語句:inta[3][6];,按在內(nèi)存中的存放順序,a數(shù)組的第10個元素是A.a[0][4]B.a[1][3]C.a[0][3]D.a[1][4]
9.設(shè)有定義:inta,*pa=&a;以下scanf語句中能正確為變量a讀入數(shù)據(jù)的是()
A.scanf(“%d”,pa);
B.scanf(“%d”,a);
C.scanf(“%d”,&pa);
D.scanf(“%d”,*pa);
10.有以下程序段chareh;intk;ch='a';k=12;printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);已知字符a的ASCII碼值為97,則執(zhí)行上述程序段后輸出結(jié)果是
A.因變量類型與格式描述符的類型不匹配輸出無定值
B.輸出項與格式描述符個數(shù)不符,輸出為零值或不定值
C.a,97,12k=12
D.a,97,k=12
11.有如下程序:main{intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++.b++;}printf("a=%d,b=%d\n",a,b);}該程序的輸出結(jié)果是()。A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2
12.假設(shè)在程序中a、b、c均被定義成整型,所賦的值都大于1,則下列能正確表示代數(shù)式1/abc的表達(dá)式是()。A.1.0/a*b*cB.1/(a*b*c)C.1/a/b/(float)cD.1.0/a/b/c
13.有以下程序:#include<stdio,h>main(){charc1='1',c2='2';c1=getchar();c2=getchar();putchar(c1);putchar(c2);}當(dāng)運(yùn)行時輸入:a<回車>后,以下敘述正確的是()。
A.變量c1被賦予字符a,c2被賦予回車符
B.程序?qū)⒌却脩糨斎氲诙€字符
C.變量c1被賦予字符a,c2中仍是原有字符2
D.變量c1被賦予字符a,c2中將無確定值
14.已知有如下結(jié)構(gòu)體:structsk{inta;floatb;}data,*p;若有P=&data,則對data的成員a引用正確的是()。A.(*p).data.a(chǎn)B.(*p).a(chǎn);C.p->data.a(chǎn)D.p.data.a(chǎn)
15.
16.設(shè)有定義“intk=0;”,以下選項的4個表達(dá)式中與其他3個表達(dá)式的值不相同的是()。
A.++kB.k+=1C.k++D.k+1
17.當(dāng)很頻繁的對序列中部進(jìn)行插入和刪除操作時,應(yīng)該選擇使用的容器是()
A.vectorB.listC.dequeD.stack
18.下列敘述中,不屬于軟件需求規(guī)格說明書的作用的是()
A.便于用戶,開發(fā)人員進(jìn)行理解和交流
B.反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù)
C.作為確認(rèn)測試和驗(yàn)收的依據(jù)
D.便于開發(fā)人員進(jìn)行需求分析
19.
20.設(shè)有定義“intk=3,i=2;”,以下選項中,變量k的值與其他3個不同的是()。
A.k-=i;B.k=--i;C.k=i-1;D.k=i--;
二、2.填空題(20題)21.下面程序是把從終端讀入的20個字符作為字符串放在字符數(shù)組中,然后利用指針變量輸出上述字符串,請?zhí)羁铡?/p>
#include<stdio.h>
main()
{inti;chars[21],*p;
for(i=0;i<20;i++)
s[i]=getchar();
s[i]=【】;
p=【】;
while(*p)putchar(【】);
}
22.執(zhí)行以下程序時,若輸入end<回車>,則輸出結(jié)果是【】。
main()
{charch[10]="Begin";
gets(&ch[1]);puts(ch);
}
23.定義inta=5,b;,則執(zhí)行表達(dá)式b=++a*--a之后,變量b的值為【】。
24.設(shè)y為血型變量,請寫出描述“y是偶數(shù)”的表達(dá)式______。
25.下面程序的運(yùn)行結(jié)果是______。
#include<stdio.h>
main()
{inty,a;
y=2,a=1;
while(y--!=-1)
{do{a*=y;a++;}while(y--);}
printf("%d,%d",a,y);}
26.數(shù)據(jù)庫系統(tǒng)其內(nèi)部分為三級模式,即概念模式、內(nèi)模式和外模式。其中,______是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式。
27.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
voidswap(int*a,int*b)
{int*t;
t=a;a=b;b=t;
}
main()
{inti=3,j=5,*p=&i,*q=&j;
swap(p,q);printf("%d%d\n",*p,*q);
}
28.下面的程序可對指定字符串中的字符串進(jìn)行從大到小排序,請將程序填完整。(注:程序采用了冒泡排序算法)
#include<stdio.h>
#include<string.h>
main()
{char*str="ABCDabcd",temp;
intn,i;
n=strlen(str);
while(n->1)
for(i=0;i<n;i++)
if(str[i]<str[i+1])
{temp=【】;
str[i]=str[i+1];
【】=temp;
}
printf(【】);
}
29.軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。
30.以下程序的功能是:利用指針向三個整型變量,并通過指針運(yùn)算找出三個數(shù)中最大值,輸出到屏幕上。請?zhí)羁?/p>
main()
{intx,y,z,max,*px,*py,*pz,*pmax;
scanf("%d%d%d",&x,&y,&z);
px=&x;py=&y;pz=&z;pmax=&max;
if(*pmax<*py)*pmax=*py;
if(*pmax<*pz)*pmax二*pz;
printf("max=%d\n",max);}
31.當(dāng)運(yùn)行以下程序時,輸入abcd,程序的輸出結(jié)果是:()。
insert(charstr[])
{inti;
i=strlen(str);
while(i>0)
{str[2*i]=str[i];str[2*i-1]='*';i--;}
printf("%s\n",str);
}
main()
{charstr[40];
scanf("%s",str);insert(str);
}
32.當(dāng)運(yùn)行以下程序時,輸入abed,程序的輸出結(jié)果是:【】。
insert(charstr[])
{inti
i=strlen(str);
while(i>0)
{str[2*i]=str[i];str[2*-1]='*';i--;}
printf("%s\n",str);
}
main()
{charstr[40];
scanf("%s",sB);insert(str);
}
33.設(shè)有以下程序,為使之正確運(yùn)行,請在橫線中填入應(yīng)包含的命令行。(注:try_me()函數(shù)在a:\myfile.txt中有定義。)
______
main()
{printf("\n");
try_me();
printf("\n");}
34.若有以下程序
main()
{chara;
a='H'-'A'+'0';
printf("%c\n",a);
}
執(zhí)行后輸出的結(jié)果是______。
35.一棵二叉樹第六層(根節(jié)點(diǎn)為第一層)的節(jié)點(diǎn)數(shù)最多為______。
36.已定義charch="$";inti=1,j;執(zhí)行j=!ch&&i++以后,i的值為()。
37.注釋一般分為序言性注釋和______注釋。
38.若a是血型變量,且a的初值為4,則計算a+=a-=a*a表達(dá)式后a的值為______。
39.若有如下程序:
main()
{ints=8,a=3,b=5,c=6;
if(a>b)s=a;a=b;b=s;
if(a>c){s=a;a=c;b=s);
if(b>c)s=b;b=c;c=s;
printf("%d,%d,%d\n",a,b,c);
}
則程序運(yùn)行后的輸出結(jié)果是【】。
40.下列程序的輸出結(jié)果是______。
10ngfun5(intn)
{longs;
if((n==1)‖(n==2))
s=2;
else
s=n+fun5(n-1);
return(s);
}
main()
{longx;
x=fun5(4);
printf("%1d\n",x);}
三、1.選擇題(20題)41.以下程序的輸出結(jié)果是#include<stdio.h>structst{intx;int*y;}*p;intdt[4]={10,20,30,40};structstaa[4]={50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0],};main(){p=aa;printf("%d\n",++(p->x));}
A.10B.11C.51D.60
42.下面程序的輸出結(jié)果是______。unsignedfun(unsignednum){unsignedk=1;do{k*=num%10;num/=10;}while(num);return(k);}main(){unsignedn=26;printf("%d\n",fun(n));}
A.0B.4C.12D.無限次循環(huán)
43.關(guān)系數(shù)據(jù)庫的概念模型是______的集合。
A.關(guān)系模型B.關(guān)系模式C.關(guān)系子模式D.存儲模式
44.定義下列結(jié)構(gòu)體(聯(lián)合)數(shù)組:structst{charname[15];intage;}a[10]={"ZHAO",14,"WANG",15,"LIU",16,"ZHANG",17};執(zhí)行語句printf["%d,%c",a[2].age,*(a[3].name+2))的輸出結(jié)果為()。
A.15,AB.16,HC.16,AD.17,H
45.對于下列定義,不正確的敘述是()。uniondata{inta;charb;doublec;}x=y;
A.變量x所占內(nèi)存的長度等于成員c的長度
B.變量x的地址和它的各成員地址都是相同的
C.可以在定義時對x初始化
D.不能對變量x賦值,故x=y非法
46.有以下程序main(){inta=3,b=4,c=5,d=2;if(a>B)if(b>C)printf("%d",d+++1);elseprintf("%d",++d+1);printf("%d\n",D);}程序運(yùn)行后的輸出結(jié)果是
A.2B.3C.43D.44
47.以下程序段的輸出結(jié)果是()。inta=1234;floatb=123.456;doublec=12345.54321;printf("%2d,%2.1f,%2.1f",a,b,c);
A.無輸出
B.12,123.5,12345.5
C.1234,123.5,12345.5
D.1234,123.4,1234.5
48.計算機(jī)軟件系統(tǒng)包括______。
A.計算機(jī)與外部設(shè)備B.硬件系統(tǒng)與軟件系統(tǒng)C.系統(tǒng)軟件與應(yīng)用軟件D.CPU與外部設(shè)備
49.數(shù)據(jù)存儲和數(shù)據(jù)流都是______,僅僅是所處的狀態(tài)不同。
A.分析結(jié)果B.事件C.動作D.數(shù)據(jù)
50.有以下程序main(){chars[]="Yse\n/No",*ps=s;puts(ps+4);*(ps+4)=0;puts(s);}程序運(yùn)行后的輸出結(jié)果是(選項D中的第一行是空行)
A.n/NoYes/NoB./NoYesC.n/Noyes/NoD./NoYes
51.有以下程序main(){char*p[10]={"abc",aabdfg","dedbe","abbd","cd"};printf("%d\n",stxlen(p[4]));}執(zhí)行后輸出結(jié)果是
A.2B.3C.4D.5
52.下列程序執(zhí)行后的輸出結(jié)果是()。#include<stdio.h>voidfunc1(inti);voidfunc2(inti);charst[]="hello,friend!";voidfuncl(inti){printf("%c",st[i]);if(i<3){i+=2;func2(i);}}voidfunc2(inti){printf("%c",st[i]);if(i<3){i+=2;funcl(i);}}main(){inti=0;funcl(i);printf("\n");}
A.helloB.helC.hloD.hlm
53.關(guān)系代數(shù)運(yùn)算是以______為基礎(chǔ)的運(yùn)算。
A.關(guān)系運(yùn)算B.謂詞運(yùn)算C.集合運(yùn)算D.代數(shù)運(yùn)算
54.下列關(guān)于“數(shù)據(jù)庫系統(tǒng)(DBS)”的敘述中,正確的一條是______。
A.DBS是指在計算機(jī)系統(tǒng)中引入數(shù)據(jù)庫后的系統(tǒng)構(gòu)成
B.DBS是幫助用戶建立、使用和管理數(shù)據(jù)庫的一種計算機(jī)軟件
C.DBS是用戶建立的若干數(shù)據(jù)庫文件的集合
D.DBS是一種新穎的關(guān)系數(shù)據(jù)庫管理系統(tǒng)
55.設(shè)x=061,y=016,則z=x|y的值是()。
A.1111B.1.11111e+007C.111111D.1.1e+007
56.以下敘述不正確的是
A.一個C源程序可由一個或多個函數(shù)組成
B.一個C源程序必須包含一個main函數(shù)
C.C程序的基本組成單位是函數(shù)
D.在C程序中,注釋說明只能位于一條語句的后面
57.分析下面函數(shù)swap(int*p1,*p2){int*p;*p=*p1;*p1=*p2;*p2=*p;}則該程序功能為()
A.交換*p1和*p2的值
B.正確,但無法改變*p1和*p2的值
C.交換*p1和*p2的地址
D.可能造成系統(tǒng)故障,因?yàn)槭褂昧丝罩羔?/p>
58.下列程序執(zhí)行后的輸出結(jié)果是voidfunc(int*a,intb[]){b[0]=*a+6;}main(){inta,b[5];a=0;b[0]=3;func(&a,b);printf("%d\n",b[0]);}
A.6B.7C.8D.9
59.當(dāng)a的值為0時,在下列選項中能正確將a的值賦給變量x、y的是()。
A.(x=a)&&(y=a)B.x=a=yC.(y=a)||(x=a)D.a=x=y
60.下列程序的輸出結(jié)果是()。#include<stdio.h>f(intA){intb=0;staticintc=4;a=c++;b++;return(A);}main(){inta=2,i,c;for(i=0;i<2;i++)c=f(a++);printf("%d\n",C);}
A.4B.7C.6D.5
四、選擇題(20題)61.有如下程序
#include"stdio.h"
main()
{inta,b,m;
for(a=5;a>=1;a--)
{m=0;
for(b=a;b<=5;b++)
m=m+a*b;
}
printf("%d\n",m);
}
上述程序的運(yùn)行結(jié)果是
A.30B.15
C.20D.10
62.數(shù)據(jù)庫設(shè)計中,用E—R圖來描述信息結(jié)構(gòu)但不涉及信息在計算機(jī)中的表示,它屬于數(shù)據(jù)庫設(shè)計的()。
A.需求分析階段B.邏輯設(shè)計階段C.概念設(shè)計階段D.物理設(shè)計階段
63.若有以下說明和語句:
sturctst
{intn;char*ch;};
structsta[3]={5,"abc",7,"def",9,"ghk"},*p=a;
則值為6的表達(dá)式是()。
A)p++->nB)p->n++
C)(*p).n++D)++p->n
64.C語言可執(zhí)行程序的開始執(zhí)行點(diǎn)是()。
A.包含文件中的第一個函數(shù)B.程序中第一個函數(shù)C.程序中的main()函數(shù)D.程序中第一條語句
65.當(dāng)變量c的值不為2、4、6時,值也為”真”的表達(dá)式是()。
A.
B.
C.
D.
66.
67.有以下程序程序的運(yùn)行結(jié)果是()。
68.下面屬于黑盒測試方法的是()。
A.邊界值分析B.路徑覆蓋C.語句覆蓋D.邏輯覆蓋
69.
70.
71.
有以下程序段:
intx=3;
do
{printf("%d",x-=2);)
while(!(--x));
其輸出結(jié)果是()。
A.1B.30C.1-2D.死循環(huán)
72.有以下程序若想通過鍵盤輸入,使得al的值為12,a2的值為34,el的值為字符a,c2的值為字符b,程序輸出結(jié)果是:12,a,34,b則正確的輸入格式是()。
73.在調(diào)用函數(shù)時,如果實(shí)參是簡單的變量,它與對應(yīng)形參之間的數(shù)據(jù)傳遞方式是
A.地址傳遞B.單向值傳遞
C.由實(shí)參傳形參,再由形參傳實(shí)參D.傳遞方式由用戶指定
74.下列關(guān)于棧的敘述中,正確的是()。
A.棧底元素一定是最后入棧的元素B.棧操作遵循先進(jìn)后出的原則C.棧頂元素一定是最先入棧的元素D.以上三種說法都不對
75.對兩個數(shù)組a和b進(jìn)行下列初始化:
charm[]1="l234567":
charn[]={'1','2','3','4','5','6','7');
則下列敘述正確的是()。A.A.數(shù)組m與數(shù)組n完全相同
B.數(shù)組m與數(shù)組n長度相同
C.數(shù)組m比數(shù)組n長1
D.數(shù)組m與數(shù)組n中都存放字符串
76.
77.有三個關(guān)系R,S和T如下:
其中關(guān)系T由關(guān)系R和S通過某種操作得到,該操作為()。A.選擇B.投影C.交D.并
78.
有以下程序
#include<stdio.h>
main
{inty=9;
for(;y>0;y--)
if(y%3==0)printf("%d",--y);
}
程序的運(yùn)行結(jié)果是()。
A.741B.963C.852D.875421
79.以下選項中合法的表達(dá)式是()。
A.a(chǎn)=a+7=c+b
B.(3+x)++
C.3+x++
D.x+1=x+1
80.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.2B.0C.元素ch[5]的地址D.字符y的地址
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc的功能是:讀入一個字符串(長度<20),將該字符串中的所有字符按ASCIl碼升序排序后輸出。例如,輸入opdye,則應(yīng)輸出deopy。請修改程序中的錯誤,使它能得到正確結(jié)果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include%string.h>#include%stdlib.h>#include<conio.h>#include<stdio.h>//****found****intproc(charstr[]){charC;unsignedi,j;for(i=0;i<strlen(str)-1;i++)for(j=i+1;j<strlen(str);j4-+)if(str[i]>str[j]){c=str[j]://****found****str[j]=str[i++];str[i]=C;}}voidmain{charst/[81];system("CLS");printf("\nPleaseenteracharacterstring:");gets(str);printf("\nknBeforesorting:\n%s",str);proc(str);printf("\nAftersortingdecendingly:\n%S",str);}
六、程序設(shè)計題(1題)82.請編一個函數(shù)intfun(inta),它的功能是:判斷a是否是素數(shù),若a是素數(shù),返回1;若不是素數(shù),返回0。A的值由主函數(shù)從鍵盤讀入。
參考答案
1.B解析:棧是限定在二端進(jìn)行插入與刪除的線性表。在棧中,允許插入與刪除的一端稱為棧頂,而不允許插入與刪除的另一端稱為棧底。棧頂元素總是最后被插入的元素,從而也是最先能被刪除的元素;棧底元素總是最先被插入的元素,從而也是最后才能被刪除的元素,即棧是按照“先進(jìn)后出”或“后進(jìn)先出”的原則組織數(shù)據(jù)的。注意:隊列組織數(shù)據(jù)的原則是“先進(jìn)先出”或“后進(jìn)后出”。注意:數(shù)據(jù)結(jié)構(gòu)中,棧和隊列組織數(shù)據(jù)的原則。
2.C本題考查的是指向函數(shù)的指針。函數(shù)指針定義的基本格式為:類型標(biāo)識符(*指針變量名)()?!邦愋蜆?biāo)識符”為函數(shù)返回值的類型。
3.Dc語言的可執(zhí)行程序是由一系列機(jī)器指令組成的。用C語言編寫的源程序必須經(jīng)過編譯生成二進(jìn)制目標(biāo)代碼,再經(jīng)過連接才能運(yùn)行,并且可以脫離c語言集成開發(fā)環(huán)境。故答案為D)。
4.C
5.C當(dāng)if執(zhí)行到第一個滿足(i*i>=20)(i*i<=100)這個條件的i出現(xiàn)時,通過break語句跳出循環(huán),執(zhí)行下面的prinlf語句。
6.D
7.A
8.B解析:二維數(shù)組的元素在內(nèi)存中是按行列順序連續(xù)存放的。以本題的二維數(shù)組a[3][6]為例,它的元素在內(nèi)存中的存放順序是:a[0][0]、a[0][1]、a[0][2]…a[0][5]、a[1][0]、\u3000a[1][1]…a[1][5]、a[2][0]…a[2][5]。由此可見,第10個元素就是第2行第4個元素,即a[1][3]。故應(yīng)該選擇B。
9.A
10.D解析:輸出格式控制符%c表示將變量以字符的形式輸出;輸出格式控制符%d表示將變量以帶符號的十進(jìn)制整型數(shù)輸出,所以第一個輸出語句輸出的結(jié)果為a,97;第二個輸出語句輸出的結(jié)果為k=12。
11.A當(dāng)x為1時,執(zhí)行case1,a自加等于1,因?yàn)閏ase1后沒有break,接著執(zhí)行case2,此時a的值為2,b自加為1,故選擇A選項。
12.D
13.A解析:函數(shù)getchar()的作用是從終端(或系統(tǒng)隱含指定的輸入設(shè)備)輸入一個字符,且只能接受一個字符(回車符也是一個字符)。故本題中變量c1被賦予字符a,c2被賦予回車符。
14.B本題主要考查結(jié)構(gòu)指針:P=&data,訪問結(jié)構(gòu)體的成員。它可以通過結(jié)構(gòu)變量訪問,即data,可以用等價的指針形式:(*p).a(chǎn)和P->a來訪問結(jié)構(gòu)體變量中的成員。
15.C
16.C表達(dá)式“++k”是先使得k的值自增1后再使用。表達(dá)式“k++”是先取得k的值再將k的值自增1。所以C選項中表達(dá)式的值為0,而其他3個選項中表達(dá)式的值均為1。故本題答案為C選項。
17.B
18.D解析:軟件需求規(guī)格說明書SRS,SoftwareRequirementSpecification)是需求分析階段的最后成果,是軟件開發(fā)中的重要文檔之一。它有以下幾個方面的作用,①便于用戶、開發(fā)人員進(jìn)行理解和交流;②反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù);③作為確認(rèn)測試和驗(yàn)收的依據(jù)。
19.D
20.D選項A是復(fù)合的賦值運(yùn)算符,等價于“k=k-i”,所以k的值為1;選項B中前綴自減運(yùn)算符首先將i的值自減1,然后將自減后的值賦給k,所以k和i的值都是1;選項C中k的值為1;選項D中后綴自減運(yùn)算符將i的值先賦給k,然后i自減1,所以k的值為2。故本題答案為D選項。
21.\0's*p++\\0'\r\ns\r\n*p++解析:本題先通過for循環(huán)從鍵盤接收20個字符,然后在串尾賦一空值'\\0'作為串結(jié)束標(biāo)志。再使指針p指向串的首地址。最后通過while循環(huán)對字符串進(jìn)行掃描并輸出。
22.Bend
23.2525解析:#NAME?
24.(y%2)==0(y%2)==0解析:因符合偶數(shù)的條件是對2取余為0,所以要描述y是偶數(shù)的表達(dá)式是(y%2)==0。
25.
26.外模式外模式解析:數(shù)據(jù)庫系統(tǒng)的三級模式分別是內(nèi)模式、概念模式和外模式。其中,物理模式給出了數(shù)據(jù)庫的物理存儲結(jié)構(gòu)和存取方法;概念模式是數(shù)據(jù)庫系統(tǒng)中全局?jǐn)?shù)據(jù)邏輯結(jié)構(gòu)的描述;外模式是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式。
27.3535解析:函數(shù)swap(int*a,int*b)的功能是實(shí)現(xiàn)*a和*b中兩個數(shù)據(jù)的交換,在主函數(shù)中調(diào)用swap(p,q)后,形參指針變量a和b分別指向i和j,在swap(int*a,int*b)執(zhí)行完后,指針變量a和b分別指向j和i,而指針變量p,q所指向變量的值沒有發(fā)生變化,所以輸出結(jié)果為35。
28.str[i]str[i+1]"%s"strstr[i]\r\nstr[i+1]\r\n'%s',str解析:本題要求將字符串str中的字符用冒泡排序算法從大到小排列,其實(shí)現(xiàn)過程是將相鄰兩個字符進(jìn)行比較,如果當(dāng)前字符小于下—個字符,則通過中間變量temp將字符兩兩交換,所以第一空應(yīng)填:str[i],第二空應(yīng)填:str[i+1]。最終打印輸出得到的字符串str,所以第三空應(yīng)填:'%s',str。
29.軟件開發(fā)
30.
31.a*b*c*d*a*b*c*d*解析:字符處理函數(shù)strlen()測試字符串常量的長度,不包括‘\\0’在內(nèi)。因此,函數(shù)insert()實(shí)現(xiàn)了將字符數(shù)組中每個非‘\\0’的字符后插入字符‘*’的功能。故輸出結(jié)果是a*b*c*d*。
32.a*b*c*da*b*c*d,解析:在insert()函數(shù),因?yàn)轭}目要求輸入的字符串為abed,所以執(zhí)行完“i=strlen(str);”后,i中存放的是字符串a(chǎn)bcd的長度值4。所以接F來的while循環(huán)會循環(huán)4次,每次讓i減1,故4次循環(huán)中i的值依次為4、3、2、1。每次循環(huán)會執(zhí)行兩條語句str[2*i]=str[i];str[2*i-1]='*',當(dāng)i=4時為:str[8]=str[4];str[7=='*';。執(zhí)行結(jié)果是將字符串a(chǎn)bed末尾的結(jié)束符'\\0'復(fù)制到其下標(biāo)值2倍的位置,并在其前1位插入—個'*'哼符。接下來i=3,執(zhí)行str[6]=str[3];str[5]='*'。執(zhí)行后會將字符串a(chǎn)bcd最后一個字符,d復(fù)制到其下標(biāo)值2倍的位置,并在其前1位插入一個'*'字符。依次類推,直到i=1,執(zhí)行str[2]=str[1];str[1]='*',將字符tb,往后移動了1位,并在原位置插入'*'字符。所以,循環(huán)結(jié)束后,字符串str會變?yōu)閍*b*c*d*。這就是程序的輸出結(jié)果。
33.#include<a:\myfile.txt>#include<a:\\myfile.txt>解析:本題考查了函數(shù)的存儲分類的概念。如果沒有特別說明,函數(shù)的存儲范圍是從定義函數(shù)的位置到文件的結(jié)尾,如果其他文件想使用這個函數(shù),需要用ginclude文件包含命令將定義函數(shù)的文件包含進(jìn)來。
34.77解析:本題考核的知識點(diǎn)是字符類型變量的運(yùn)算。字符型數(shù)據(jù)可作為整型參加算術(shù)運(yùn)算,其值為其對應(yīng)的ASCII碼。'H'-'A'的結(jié)果是7,加'0'后是'7'的ASCII碼,所以輸出的是字符'7'。
35.在二叉樹的第k層上,最多有2k-1(k>1)個結(jié)點(diǎn)。
36.11解析:用“&&”連接兩個表達(dá)式時,若第1個表達(dá)式的值為“假”,則運(yùn)算結(jié)果與第2個表達(dá)式無關(guān),此時第2個表達(dá)式將不再進(jìn)行計算。本題中第1個表達(dá)式“j=!ch”值為0,所以第2個表達(dá)式i++將不再進(jìn)行計算,i的值為1。
37.功能性功能性解析:注釋一般分為序言性注釋和功能性注釋。序言性注釋通常位于每個程序的開頭部分,給出程序的整體說明;功能性注釋一般嵌在源程序體之中,主要描述其后的語句或程序做什么,
38.-24-24解析:本題考查賦值運(yùn)算符a+=b等價于a=a+b;a-=a*a等價于a-a-a*a=4-4*4=-12:a+=a,即a=a+a=-24。
39.5685,6,8解析:首先要清楚當(dāng)滿足第1個if的判斷條件時只執(zhí)行一條語句“s=a;”,當(dāng)滿足第2個if的判斷條件時執(zhí)行一條復(fù)合語句“{s=a;a=c;b=s};”,當(dāng)滿足第3個if的判斷條件時只執(zhí)行一條語句“s=b;”。執(zhí)行程序:判斷a>b,由于a=3,b=5則3>5為假,不執(zhí)行“s=a;”,執(zhí)行“a=b;”和“b=s;”,則a=5,b=8。判斷a>c,由于a=5,c=6則5>6為假,不執(zhí)行“{s=a;a=c;b=s};”。判斷b>c,由于b=5,c=6則5>6為假,不執(zhí)行“s=b;”,執(zhí)行“b=c;”和“c=s;”,則b=6,c=8。最后輸出5,6,8。
40.99解析:考查ifelse語句,n==4不滿足條件,所以fun5(4)=4+fun5(3),n==3也不滿足條件,fun5(3)=3+fun5(2),n==2滿足條件fun5(2)=2,故x=4+3+2=9。
41.C解析:由于數(shù)組名保存了數(shù)組的首地址,即數(shù)組中第一個元素的地址,執(zhí)行p=aa;后,p指向aa[0],p->x相當(dāng)于aa[0].x,也就是50,經(jīng)過自增運(yùn)算后,顯示結(jié)果為51。
42.C解析:本題定義了一個fun函數(shù),用于num求和,具體執(zhí)行過程如下:
num=26:k=k*(num%10)=1*(26%10),所以k=6,num=num/10=2;
num=2:k=k*(num%10)=6*(2%10),所以k=12,num=num/10=0);
num=O:while條件不成立,所以返回k的值12。
43.B解析:本題考核關(guān)系數(shù)據(jù)庫的概念模型。數(shù)據(jù)庫的概念模型體現(xiàn)了數(shù)據(jù)之間的關(guān)系,它是各種數(shù)據(jù)之間相互關(guān)系的集合。關(guān)系數(shù)據(jù)庫的概念模型是關(guān)系模式的集合。關(guān)系子模式是指關(guān)系數(shù)據(jù)庫模式中用戶所見到的那部分?jǐn)?shù)據(jù)模式描述。
44.C解析:本題主要考查結(jié)構(gòu)體數(shù)組。a[2].age為結(jié)構(gòu)體a[2]的age成員,即16。a[3].name為指向結(jié)構(gòu)體a[3]的name成員的第一個元素的指針,即指向“Z”,(a[3].name+2)將指針后移兩位指向第三個元素“A”,*(a[3].name+2))是取指針?biāo)赶虻刂返膬?nèi)容。
45.C解析:本題主要考查的知識點(diǎn)是聯(lián)合體的內(nèi)存使用。聯(lián)合體所占用的內(nèi)存空間為最長的成員所占用的空間,各個成員分量全部是從低地址方向開始使用內(nèi)存單元。不能在定義共用體變量時對它初始化。
46.A解析:本題考核的知識點(diǎn)是if-else語句的程序分析。我們首先看程序中if-else的匹配,由于C語言中規(guī)定else總是與最近的if搭配,因此程序中else與第二個訂搭配,即該if-else語句為第一個if語句的執(zhí)行部分,接著判斷第一個if后面括號里的表達(dá)式的值“a>b”為假('3>4'為假),因此不執(zhí)行后面if-else語句,程序?qū)?zhí)行下面的輸出語句輸出d,而d一直未被改變故為原來的值2,所以,4個選項中選項A符合題意。
47.C解析:以%mf或%mlf格式輸出浮點(diǎn)數(shù)時,如果指定寬度大于實(shí)際數(shù)據(jù)寬度,則按指定寬度輸出,且多余數(shù)補(bǔ)以空格;如果指定寬度小于實(shí)際數(shù)據(jù)寬度,浮點(diǎn)數(shù)的整數(shù)部分將以實(shí)際位數(shù)輸出,小數(shù)部分按指定位數(shù)輸出,且對數(shù)據(jù)做四舍五入處理。而輸出整型數(shù)時,沒有寬度限制的整數(shù)按原數(shù)輸出;在寬度限制小于數(shù)的實(shí)際位數(shù)時,寬度說明無效,按數(shù)的實(shí)際位數(shù)輸出。
48.C
49.D解析:數(shù)據(jù)流圖有4種成分:源點(diǎn)或終點(diǎn)、處理、數(shù)據(jù)存儲和哦數(shù)據(jù)流。數(shù)據(jù)存儲是處于靜止?fàn)顟B(tài)的數(shù)據(jù),數(shù)據(jù)流是處于運(yùn)動中的數(shù)據(jù)。
50.B解析:主函數(shù)中定義了一個字符數(shù)組,并賦初值,一個字符串指針變量ps并讓它指向s。程序中p+4的地址為數(shù)組第5個元素的地址,而調(diào)用put(str_adr)函數(shù)時,將從sb_adr這一地址開始,依次輸出存儲單元中的字符,遇到第一個“\\0”時結(jié)束輸出,并自動輸出一個換行符。所以put(p+4)將輸出n/No,put(s)將從a第一個元素開始輸出到第3個元素結(jié)束(因?yàn)閳?zhí)行*(p+4)=0語句后s中的第5個元素的值為0,而s中的第4個元素為“\\”,puts將遇到“\\0”,結(jié)束輸出),即輸出yes。
51.A解析:本題中首先定義了一個長度為10的指針數(shù)組,并賦初值,因此執(zhí)行strlen(p[4])后的返回值為字符串“cd”的長度為2。
52.C解析:本題首先調(diào)用函數(shù)funcl(0),輸出st[0]=h,i值變?yōu)?,再調(diào)用函數(shù)func2(2),輸出st[2]=1,此時i<3,執(zhí)行i+=2,i值變?yōu)?,然后再調(diào)用函數(shù)funcl(4),輸出st[4]=o,此時i值大于3,函數(shù)調(diào)用結(jié)束。因此,輸出結(jié)果為hlo。
53.C解析:關(guān)系代數(shù)是以集合代數(shù)為基礎(chǔ)女發(fā)展起來的,它是以關(guān)系代數(shù)作為運(yùn)算對象的一組高級運(yùn)算的集合。它的基本操作是并、交、差、笛卡爾積,另外還包括針對數(shù)據(jù)庫環(huán)境專門設(shè)計的操作,包括對關(guān)系進(jìn)行垂直分割(投影)、水平分割(選擇)、關(guān)系的結(jié)合(連接)等。
54.A解析:數(shù)據(jù)庫系統(tǒng)DBS是指在計算機(jī)系統(tǒng)中引入數(shù)據(jù)庫后的系統(tǒng)構(gòu)成。數(shù)據(jù)庫系統(tǒng)是一種帶有數(shù)據(jù)庫的綜合系統(tǒng),它包括硬件、軟件(如操作系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)、編譯系統(tǒng)及應(yīng)用開發(fā)工具軟件等)、數(shù)據(jù)庫以及開發(fā)者和使用者。
55.C解析:本題主要考查按位或運(yùn)算,x=061(二進(jìn)制為00110001),y=016(二進(jìn)制為00001110),進(jìn)行或運(yùn)算后結(jié)果為00111111。
56.D解析:本題考查C語言的基本基礎(chǔ)知識。在C程序中,注釋用符號“/*”開始,而以符號“*/”結(jié)束。程序的注釋可以放在程序的任何位置。通常將注釋放在程序的開始,以說明本程序的功能;或者放在程序的某個語句后面,以對此語句的功能進(jìn)行描述。無論將注釋放有何處,在程序進(jìn)行編譯時,編譯程序不會處理注釋的內(nèi)容;且注釋內(nèi)容也不會出現(xiàn)在目標(biāo)程序中。
57.D
58.A解析:函數(shù)的參數(shù)不僅可以是整型、實(shí)型、字符型等數(shù)據(jù),還可以是指針型。它的作用是將一個變量的地址傳遞到另一個函數(shù)中。當(dāng)數(shù)組名作參數(shù)時,如果形參數(shù)組中的各元素的值發(fā)生變化,實(shí)參數(shù)組元素的值也將隨之發(fā)生變化。
59.C解析:選項A先執(zhí)行x=a,x的值為0,不再執(zhí)行y=a,因此y未被賦值。選項B是將y的值賦給a和x,而未能實(shí)現(xiàn)將a的值賦給變量x、y。選項C先執(zhí)行y=a,將a的值賦給y;再執(zhí)行x=a,將a的值賦給x。選項D同B。所以選項C符合題意。
60.D解析:本題考查靜態(tài)變量的使用方法和for循環(huán)。在函數(shù)調(diào)用時,static變量在函數(shù)調(diào)用結(jié)束后所作的所有變化均不保持,所以當(dāng)i=1時,第2次進(jìn)入f函數(shù)時c=5,所以最終main函數(shù)中c的值為5。
61.B在本題中,程序首先定義了三個整型變量,然后執(zhí)行for循環(huán),從循環(huán)的結(jié)構(gòu)條件我們可以知道,循環(huán)執(zhí)行了5次,循環(huán)變量a的值分別為5,4,3,2,1。
當(dāng)a=5時,m=0,執(zhí)行第二層循環(huán),循環(huán)開始時,是變量a的值賦給循環(huán)變量b,而且只要循環(huán)變量b的值小于等5,循環(huán)繼續(xù),循環(huán)變量b的值每經(jīng)過一次循環(huán)后自加1,這時由于b=a=5,循環(huán)只執(zhí)行一次,m=m+a*b可描述為m=0+5*5=25。如果我們一直這樣分析下去,由于循環(huán)的次數(shù)太多,那么費(fèi)時肯定也很多,而且還容易出錯,因此,我們需要找到新的解決問題的辦法。
從我們對上一次循環(huán)執(zhí)行過程的分析可以看出,第一層循環(huán),每次在最前面執(zhí)行語句m=0操作,即將我們前面執(zhí)行的m結(jié)果值進(jìn)行清0操作,使其不影響后面m的值,程序最終要輸出的m是當(dāng)a=1時那次循環(huán)計算到的m的值。
當(dāng)a=1時,b的初值為1,第二層循環(huán)執(zhí)行5次,第一次計算到的m=0+1*1=1;第二次計算到的m=1+1*2=3;第三次計算到的m=3+1*3=6;第四次計算到的m=6+1*4=10;第五次計算到的m=10+1*5=15。整個過程其實(shí)相當(dāng)于求1~5的和。
因此,程序最終的輸出結(jié)果為15,答案選B。
62.CC。【解析】E—R(Entity—Relationship)圖為實(shí)體一聯(lián)系圖,提供了表示實(shí)體型、屬性和聯(lián)系的方法,用來描述現(xiàn)實(shí)世界的概念模型。
63.D*p=a,使p指向a的首地址,p->n的值為5,++5的值為6.
64.C解析:每個C程序有且只有一個主函數(shù)main(),且程序必須從main函數(shù)開始執(zhí)行,并在main()函數(shù)中結(jié)束。
65.B滿足表達(dá)式,(C>=2&&c<=6)的整型變量C的值是2,3,4,5,6。當(dāng)變量C的值不為2,4,6時,其值只能為3或5,所以表達(dá)式C!=3和C!=5中至少有一個為真,即不論C為何值,表達(dá)式B)都為”真”。
66.B
67.A本題主要考查的是函數(shù)。在fun函數(shù)中,首先將形參nl和n2分別賦給局部變量i和j,然后使用]while循環(huán),交換s[i]和s[j]的內(nèi)容,并使i增1、j減1,直到i不小于j為止。所以該函數(shù)實(shí)現(xiàn)的功能是:對形參指針s所指的一系列元素,從第nl位到第n2位進(jìn)行逆序。主函數(shù)中,連續(xù)調(diào)用T3次fun函數(shù)依次對數(shù)組a的第0-3位、第4~9位和第0~9位進(jìn)行了逆序。對0~3位逆序后,數(shù)組。的內(nèi)容是{4,3,2,1,5,6,7,8,9,0};再對4~9位逆序后是I4,3,2,l,0,9,8.7,6,5};最后對0~9位逆序后是I5,6。’7,8,9,0,l,2。3,4}。
68.A黑盒測試方法主要有等價類劃分、邊界值分析、因果圖、錯誤推測等。白盒測試的主要方法有邏輯驅(qū)動、路徑測試等,主要用于軟件驗(yàn)證。
69.A
70.D
71.C
\n本題考查do-while循環(huán),先執(zhí)行d0輸出的x的值為1,接著執(zhí)行while語句,此時--x的值為0,x也為0,而非0為1,循環(huán)成立,接著執(zhí)行do輸出X值為-2,執(zhí)行--x后,表達(dá)式為-2,而!(--x)為0,退出循環(huán)。
\n
72.A在輸入多個數(shù)據(jù)時,如果格式控制串中沒有非格式字符,則認(rèn)為所有輸入的字符均為有效字符。因此應(yīng)按選項A)的順序輸人數(shù)據(jù)。
73.B函數(shù)調(diào)用時,在主調(diào)函數(shù)和被調(diào)函數(shù)之間,存在著數(shù)據(jù)的傳遞,利用參數(shù)傳遞數(shù)據(jù)和利用返回值傳遞數(shù)據(jù)是常用的兩種方法。
函數(shù)調(diào)用時的參數(shù)叫做實(shí)參,函數(shù)執(zhí)行時的參數(shù)叫做形參,利用參數(shù)傳遞數(shù)據(jù)實(shí)質(zhì)是指函數(shù)實(shí)參和形參之間的數(shù)據(jù)傳遞過程。存在兩種數(shù)據(jù)傳遞的方式:傳值和傳地址。
在函數(shù)調(diào)用時,系統(tǒng)為形參準(zhǔn)備空間,并把實(shí)參的值賦值到形參空間中,在調(diào)用結(jié)束后,形參空間將被釋放,而實(shí)參的值保持不變,這就是傳值傳遞方式。傳值傳遞方式中實(shí)參與形參之間的數(shù)據(jù)傳遞是單向的,只能由實(shí)參傳遞給形參。因而,即使形參的值在函數(shù)執(zhí)行過程中發(fā)生了變化,也不會影響到實(shí)參值。在C語言中,當(dāng)參數(shù)類型是非指針類型和非數(shù)組類型時,均采用傳值方式。
傳地址方式把實(shí)參的地址賦值給形參,這樣形參就可以根據(jù)地址值訪問和更改實(shí)參的內(nèi)容,從而實(shí)現(xiàn)雙向傳遞。當(dāng)參數(shù)類型是指針類型或數(shù)組類型時,均采用傳地址方式。
區(qū)別于參數(shù)傳值方式和返回值傳遞方式,傳地址方式具有明顯的優(yōu)勢。
(1)參數(shù)傳值方式是主調(diào)函數(shù)與被調(diào)函數(shù)之間的單向數(shù)據(jù)傳遞方式,而參數(shù)的傳地址方式則實(shí)現(xiàn)了二者之間的雙向數(shù)據(jù)傳遞。
(2)函數(shù)的返回值每次只能把一個數(shù)據(jù)項從被調(diào)函數(shù)傳遞到主調(diào)函數(shù),而參數(shù)的傳地址方式卻可一次性地傳遞多個數(shù)據(jù)項到主調(diào)函數(shù)。
根據(jù)上述描述,由于本題中說的實(shí)參是普通的變量,即非指針類型和數(shù)組類型,那么采用的是傳值方式,是單向的。因此,本題的答案是B。
74.B棧是先進(jìn)后出,因此,棧底元素是先入棧的元素,棧頂元素是后入棧的元素。
75.C在m數(shù)組中賦值的是字符串,其長度為7,末尾有結(jié)束符'\0',故字節(jié)數(shù)為8,而n數(shù)組中賦的是字符,其長度為7,故C選項正確。
76.C
77.D
78.C
\n在for循環(huán)中,當(dāng)y的值為9、6或3時,執(zhí)行輸出語句,輸出表達(dá)式--Y的值。Y先自減l,然后再輸出y的值。
\n
79.C賦值號和自增符左邊的數(shù)據(jù)對象不能為表達(dá)式或常量,只能為變量。
80.A語句pc=eh;使得指針變量指向字符數(shù)組ch的首地址,即指向字符‘u’,則pc+5指向的是字符向后移動5位,指向字符‘z’。所以輸出的$pc+5的值即為‘Z’。因此A選項正確。
81.(1)錯誤:intproc(charstr[])正確:voidproc(charstr[])(2)錯誤:str[j]=str[i++];正確:str[j]=str[i];【解析】由主函數(shù)中的函數(shù)調(diào)用可知,函數(shù)proc沒有返回值。因此,“intproc(charstr[])”應(yīng)改為“voidproc(charstr[])”;由函數(shù)proc可知,if語句塊完成將字符串str中的第i個元素與第j個元素相交換。因此,“str[j]=str[i++];”應(yīng)改為“str[j]=str[i];”。
82.\n#include”stdio.h”
\nintfun(inta)
\n{intI;
\nif(a==2)return1;I=2;
\nwhile((a%I)!=0I<=sqrt((float)a))
\nI++;
\nif(a%I==0)
\n{printf(“%disnotaprime!”,a);
\nreturn0;}
\nprintf(“%disaprime!”,a);
\nreturn1;}
\nmain
\n{intx;
\nprintf(“\\npleaseenteranumber:”);
\nscanf(“%d”,&x);
\nprintf(“%d\\n”,fun(x));}
\n2021-2022年河北省承德市全國計算機(jī)等級考試C語言程序設(shè)計學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.下列數(shù)據(jù)結(jié)構(gòu)中,按先進(jìn)后出原則組織數(shù)據(jù)的是
A.線性鏈表B.棧C.循環(huán)鏈表D.順序表
2.語句int(*ptr)的含義是()。A.A.ptr是一個返回值為int的函數(shù)
B.ptr是指向int型數(shù)據(jù)的指針變量
C.ptr是指向函數(shù)的指針,該函數(shù)返回一個int型數(shù)據(jù)
D.ptr是一個函數(shù)名,該函數(shù)的返回值是指向int型數(shù)據(jù)的指針
3.以下敘述中錯誤的是()。
A.C語言的可執(zhí)行程序是由一系列機(jī)器指令構(gòu)成的
B.用C語言編寫的源程序不能直接在計算機(jī)上運(yùn)行
C.通過編譯得到的二進(jìn)制目標(biāo)程序需要連接才可以運(yùn)行
D.在沒有安裝C語言集成開發(fā)環(huán)境的機(jī)器上不能運(yùn)行C源程序生成的.exe文件
4.設(shè)x、y、z、t均為int型變量,則執(zhí)行以下語句后,t的值是()x=y(tǒng)=z=l;t=++x||++y&&++z;
A.不定值B.2C.1D.0
5.下述程序的輸出結(jié)果是()。#include<stdio.h>main(){inti;for(i=1;i<=10;i++){if(i*i>=20)(i*i<=lOO))break;}printf("%d\n",i*i);}A.49B.36C.25D.64
6.設(shè)inta=12,則執(zhí)行完語句a+=a-=a*a后,a的值是()。
A.552B.264C.144D.-264
7.現(xiàn)在有16枚外形相同的硬幣,其中一枚是假幣,且已知假幣比真幣重量輕。先給定一架沒有砝碼的天平,問至少需要多少次稱量才能找到這枚假幣?
A.3B.4C.5D.6
8.若有定義語句:inta[3][6];,按在內(nèi)存中的存放順序,a數(shù)組的第10個元素是A.a[0][4]B.a[1][3]C.a[0][3]D.a[1][4]
9.設(shè)有定義:inta,*pa=&a;以下scanf語句中能正確為變量a讀入數(shù)據(jù)的是()
A.scanf(“%d”,pa);
B.scanf(“%d”,a);
C.scanf(“%d”,&pa);
D.scanf(“%d”,*pa);
10.有以下程序段chareh;intk;ch='a';k=12;printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);已知字符a的ASCII碼值為97,則執(zhí)行上述程序段后輸出結(jié)果是
A.因變量類型與格式描述符的類型不匹配輸出無定值
B.輸出項與格式描述符個數(shù)不符,輸出為零值或不定值
C.a,97,12k=12
D.a,97,k=12
11.有如下程序:main{intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++.b++;}printf("a=%d,b=%d\n",a,b);}該程序的輸出結(jié)果是()。A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2
12.假設(shè)在程序中a、b、c均被定義成整型,所賦的值都大于1,則下列能正確表示代數(shù)式1/abc的表達(dá)式是()。A.1.0/a*b*cB.1/(a*b*c)C.1/a/b/(float)cD.1.0/a/b/c
13.有以下程序:#include<stdio,h>main(){charc1='1',c2='2';c1=getchar();c2=getchar();putchar(c1);putchar(c2);}當(dāng)運(yùn)行時輸入:a<回車>后,以下敘述正確的是()。
A.變量c1被賦予字符a,c2被賦予回車符
B.程序?qū)⒌却脩糨斎氲诙€字符
C.變量c1被賦予字符a,c2中仍是原有字符2
D.變量c1被賦予字符a,c2中將無確定值
14.已知有如下結(jié)構(gòu)體:structsk{inta;floatb;}data,*p;若有P=&data,則對data的成員a引用正確的是()。A.(*p).data.a(chǎn)B.(*p).a(chǎn);C.p->data.a(chǎn)D.p.data.a(chǎn)
15.
16.設(shè)有定義“intk=0;”,以下選項的4個表達(dá)式中與其他3個表達(dá)式的值不相同的是()。
A.++kB.k+=1C.k++D.k+1
17.當(dāng)很頻繁的對序列中部進(jìn)行插入和刪除操作時,應(yīng)該選擇使用的容器是()
A.vectorB.listC.dequeD.stack
18.下列敘述中,不屬于軟件需求規(guī)格說明書的作用的是()
A.便于用戶,開發(fā)人員進(jìn)行理解和交流
B.反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù)
C.作為確認(rèn)測試和驗(yàn)收的依據(jù)
D.便于開發(fā)人員進(jìn)行需求分析
19.
20.設(shè)有定義“intk=3,i=2;”,以下選項中,變量k的值與其他3個不同的是()。
A.k-=i;B.k=--i;C.k=i-1;D.k=i--;
二、2.填空題(20題)21.下面程序是把從終端讀入的20個字符作為字符串放在字符數(shù)組中,然后利用指針變量輸出上述字符串,請?zhí)羁铡?/p>
#include<stdio.h>
main()
{inti;chars[21],*p;
for(i=0;i<20;i++)
s[i]=getchar();
s[i]=【】;
p=【】;
while(*p)putchar(【】);
}
22.執(zhí)行以下程序時,若輸入end<回車>,則輸出結(jié)果是【】。
main()
{charch[10]="Begin";
gets(&ch[1]);puts(ch);
}
23.定義inta=5,b;,則執(zhí)行表達(dá)式b=++a*--a之后,變量b的值為【】。
24.設(shè)y為血型變量,請寫出描述“y是偶數(shù)”的表達(dá)式______。
25.下面程序的運(yùn)行結(jié)果是______。
#include<stdio.h>
main()
{inty,a;
y=2,a=1;
while(y--!=-1)
{do{a*=y;a++;}while(y--);}
printf("%d,%d",a,y);}
26.數(shù)據(jù)庫系統(tǒng)其內(nèi)部分為三級模式,即概念模式、內(nèi)模式和外模式。其中,______是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式。
27.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
voidswap(int*a,int*b)
{int*t;
t=a;a=b;b=t;
}
main()
{inti=3,j=5,*p=&i,*q=&j;
swap(p,q);printf("%d%d\n",*p,*q);
}
28.下面的程序可對指定字符串中的字符串進(jìn)行從大到小排序,請將程序填完整。(注:程序采用了冒泡排序算法)
#include<stdio.h>
#include<string.h>
main()
{char*str="ABCDabcd",temp;
intn,i;
n=strlen(str);
while(n->1)
for(i=0;i<n;i++)
if(str[i]<str[i+1])
{temp=【】;
str[i]=str[i+1];
【】=temp;
}
printf(【】);
}
29.軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。
30.以下程序的功能是:利用指針向三個整型變量,并通過指針運(yùn)算找出三個數(shù)中最大值,輸出到屏幕上。請?zhí)羁?/p>
main()
{intx,y,z,max,*px,*py,*pz,*pmax;
scanf("%d%d%d",&x,&y,&z);
px=&x;py=&y;pz=&z;pmax=&max;
if(*pmax<*py)*pmax=*py;
if(*pmax<*pz)*pmax二*pz;
printf("max=%d\n",max);}
31.當(dāng)運(yùn)行以下程序時,輸入abcd,程序的輸出結(jié)果是:()。
insert(charstr[])
{inti;
i=strlen(str);
while(i>0)
{str[2*i]=str[i];str[2*i-1]='*';i--;}
printf("%s\n",str);
}
main()
{charstr[40];
scanf("%s",str);insert(str);
}
32.當(dāng)運(yùn)行以下程序時,輸入abed,程序的輸出結(jié)果是:【】。
insert(charstr[])
{inti
i=strlen(str);
while(i>0)
{str[2*i]=str[i];str[2*-1]='*';i--;}
printf("%s\n",str);
}
main()
{charstr[40];
scanf("%s",sB);insert(str);
}
33.設(shè)有以下程序,為使之正確運(yùn)行,請在橫線中填入應(yīng)包含的命令行。(注:try_me()函數(shù)在a:\myfile.txt中有定義。)
______
main()
{printf("\n");
try_me();
printf("\n");}
34.若有以下程序
main()
{chara;
a='H'-'A'+'0';
printf("%c\n",a);
}
執(zhí)行后輸出的結(jié)果是______。
35.一棵二叉樹第六層(根節(jié)點(diǎn)為第一層)的節(jié)點(diǎn)數(shù)最多為______。
36.已定義charch="$";inti=1,j;執(zhí)行j=!ch&&i++以后,i的值為()。
37.注釋一般分為序言性注釋和______注釋。
38.若a是血型變量,且a的初值為4,則計算a+=a-=a*a表達(dá)式后a的值為______。
39.若有如下程序:
main()
{ints=8,a=3,b=5,c=6;
if(a>b)s=a;a=b;b=s;
if(a>c){s=a;a=c;b=s);
if(b>c)s=b;b=c;c=s;
printf("%d,%d,%d\n",a,b,c);
}
則程序運(yùn)行后的輸出結(jié)果是【】。
40.下列程序的輸出結(jié)果是______。
10ngfun5(intn)
{longs;
if((n==1)‖(n==2))
s=2;
else
s=n+fun5(n-1);
return(s);
}
main()
{longx;
x=fun5(4);
printf("%1d\n",x);}
三、1.選擇題(20題)41.以下程序的輸出結(jié)果是#include<stdio.h>structst{intx;int*y;}*p;intdt[4]={10,20,30,40};structstaa[4]={50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0],};main(){p=aa;printf("%d\n",++(p->x));}
A.10B.11C.51D.60
42.下面程序的輸出結(jié)果是______。unsignedfun(unsignednum){unsignedk=1;do{k*=num%10;num/=10;}while(num);return(k);}main(){unsignedn=26;printf("%d\n",fun(n));}
A.0B.4C.12D.無限次循環(huán)
43.關(guān)系數(shù)據(jù)庫的概念模型是______的集合。
A.關(guān)系模型B.關(guān)系模式C.關(guān)系子模式D.存儲模式
44.定義下列結(jié)構(gòu)體(聯(lián)合)數(shù)組:structst{charname[15];intage;}a[10]={"ZHAO",14,"WANG",15,"LIU",16,"ZHANG",17};執(zhí)行語句printf["%d,%c",a[2].age,*(a[3].name+2))的輸出結(jié)果為()。
A.15,AB.16,HC.16,AD.17,H
45.對于下列定義,不正確的敘述是()。uniondata{inta;charb;doublec;}x=y;
A.變量x所占內(nèi)存的長度等于成員c的長度
B.變量x的地址和它的各成員地址都是相同的
C.可以在定義時對x初始化
D.不能對變量x賦值,故x=y非法
46.有以下程序main(){inta=3,b=4,c=5,d=2;if(a>B)if(b>C)printf("%d",d+++1);elseprintf("%d",++d+1);printf("%d\n",D);}程序運(yùn)行后的輸出結(jié)果是
A.2B.3C.43D.44
47.以下程序段的輸出結(jié)果是()。inta=1234;floatb=123.456;doublec=12345.54321;printf("%2d,%2.1f,%2.1f",a,b,c);
A.無輸出
B.12,123.5,12345.5
C.1234,123.5,12345.5
D.1234,123.4,1234.5
48.計算機(jī)軟件系統(tǒng)包括______。
A.計算機(jī)與外部設(shè)備B.硬件系統(tǒng)與軟件系統(tǒng)C.系統(tǒng)軟件與應(yīng)用軟件D.CPU與外部設(shè)備
49.數(shù)據(jù)存儲和數(shù)據(jù)流都是______,僅僅是所處的狀態(tài)不同。
A.分析結(jié)果B.事件C.動作D.數(shù)據(jù)
50.有以下程序main(){chars[]="Yse\n/No",*ps=s;puts(ps+4);*(ps+4)=0;puts(s);}程序運(yùn)行后的輸出結(jié)果是(選項D中的第一行是空行)
A.n/NoYes/NoB./NoYesC.n/Noyes/NoD./NoYes
51.有以下程序main(){char*p[10]={"abc",aabdfg","dedbe","abbd","cd"};printf("%d\n",stxlen(p[4]));}執(zhí)行后輸出結(jié)果是
A.2B.3C.4D.5
52.下列程序執(zhí)行后的輸出結(jié)果是()。#include<stdio.h>voidfunc1(inti);voidfunc2(inti);charst[]="hello,friend!";voidfuncl(inti){printf("%c",st[i]);if(i<3){i+=2;func2(i);}}voidfunc2(inti){printf("%c",st[i]);if(i<3){i+=2;funcl(i);}}main(){inti=0;funcl(i);printf("\n");}
A.helloB.helC.hloD.hlm
53.關(guān)系代數(shù)運(yùn)算是以______為基礎(chǔ)的運(yùn)算。
A.關(guān)系運(yùn)算B.謂詞運(yùn)算C.集合運(yùn)算D.代數(shù)運(yùn)算
54.下列關(guān)于“數(shù)據(jù)庫系統(tǒng)(DBS)”的敘述中,正確的一條是______。
A.DBS是指在計算機(jī)系統(tǒng)中引入數(shù)據(jù)庫后的系統(tǒng)構(gòu)成
B.DBS是幫助用戶建立、使用和管理數(shù)據(jù)庫的一種計算機(jī)軟件
C.DBS是用戶建立的若干數(shù)據(jù)庫文件的集合
D.DBS是一種新穎的關(guān)系數(shù)據(jù)庫管理系統(tǒng)
55.設(shè)x=061,y=016,則z=x|y的值是()。
A.1111B.1.11111e+007C.111111D.1.1e+007
56.以下敘述不正確的是
A.一個C源程序可由一個或多個函數(shù)組成
B.一個C源程序必須包含一個main函數(shù)
C.C程序的基本組成單位是函數(shù)
D.在C程序中,注釋說明只能位于一條語句的后面
57.分析下面函數(shù)swap(int*p1,*p2){int*p;*p=*p1;*p1=*p2;*p2=*p;}則該程序功能為()
A.交換*p1和*p2的值
B.正確,但無法改變*p1和*p2的值
C.交換*p1和*p2的地址
D.可能造成系統(tǒng)故障,因?yàn)槭褂昧丝罩羔?/p>
58.下列程序執(zhí)行后的輸出結(jié)果是voidfunc(int*a,intb[]){b[0]=*a+6;}main(){inta,b[5];a=0;b[0]=3;func(&a,b);printf("%d\n",b[0]);}
A.6B.7C.8D.9
59.當(dāng)a的值為0時,在下列選項中能正確將a的值賦給變量x、y的是()。
A.(x=a)&&(y=a)B.x=a=yC.(y=a)||(x=a)D.a=x=y
60.下列程序的輸出結(jié)果是()。#include<stdio.h>f(intA){intb=0;staticintc=4;a=c++;b++;return(A);}main(){inta=2,i,c;for(i=0;i<2;i++)c=f(a++);printf("%d\n",C);}
A.4B.7C.6D.5
四、選擇題(20題)61.有如下程序
#include"stdio.h"
main()
{inta,b,m;
for(a=5;a>=1;a--)
{m=0;
for(b=a;b<=5;b++)
m=m+a*b;
}
printf("%d\n",m);
}
上述程序的運(yùn)行結(jié)果是
A.30B.15
C.20D.10
62.數(shù)據(jù)庫設(shè)計中,用E—R圖來描述信息結(jié)構(gòu)但不涉及信息在計算機(jī)中的表示,它屬于數(shù)據(jù)庫設(shè)計的()。
A.需求分析階段B.邏輯設(shè)計階段C.概念設(shè)計階段D.物理設(shè)計階段
63.若有以下說明和語句:
sturctst
{intn;char*ch;};
structsta[3]={5,"abc",7,"def",9,"ghk"},*p=a;
則值為6的表達(dá)式是()。
A)p++->nB)p->n++
C)(*p).n++D)++p->n
64.C語言可執(zhí)行程序的開始執(zhí)行點(diǎn)是()。
A.包含文件中的第一個函數(shù)B.程序中第一個函數(shù)C.程序中的main()函數(shù)D.程序中第一條語句
65.當(dāng)變量c的值不為2、4、6時,值也為”真”的表達(dá)式是()。
A.
B.
C.
D.
66.
67.有以下程序程序的運(yùn)行結(jié)果是()。
68.下面屬于黑盒測試方法的是()。
A.邊界值分析B.路徑覆蓋C.語句覆蓋D.邏輯覆蓋
69.
70.
71.
有以下程序段:
intx=3;
do
{printf("%d",x-=2);)
while(!(--x));
其輸出結(jié)果是()。
A.1B.30C.1-2D.死循環(huán)
72.有以下程序若想通過鍵盤輸入,使得al的值為12,a2的值為34,el的值為字符a,c2的值為字符b,程序輸出結(jié)果是:12,a,34,b則正確的輸入格式是()。
73.在調(diào)用函數(shù)時,如果實(shí)參是簡單的變量,它與對應(yīng)形參之間的數(shù)據(jù)傳遞方式是
A.地址傳遞B.單向值傳遞
C.由實(shí)參傳形參,再由形參傳實(shí)參D.傳遞方式由用戶指定
74.下列關(guān)于棧的敘述中,正確的是()。
A.棧底元素一定是最后入棧的元素B.棧操作遵循先進(jìn)后出的原則C.棧頂元素一定是最先入棧的元素D.以上三種說法都不對
75.對兩個數(shù)組a和b進(jìn)行下列初始化:
charm[]1="l234567":
charn[]={'1','2','3','4','5','6','7');
則下列敘述正確的是()。A.A.數(shù)組m與數(shù)組n完全相同
B.數(shù)組m與數(shù)組n長度相同
C.數(shù)組m比數(shù)組n長1
D.數(shù)組m與數(shù)組n中都存放字符串
76.
77.有三個關(guān)系R,S和T如下:
其中關(guān)系T由關(guān)系R和S通過某種操作得到,該操作為()。A.選擇B.投影C.交D.并
78.
有以下程
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 信息技術(shù)必修一《數(shù)據(jù)與計算》第二章第二節(jié)《程序設(shè)計語言基本知識》教學(xué)設(shè)計
- 定西師范高等??茖W(xué)?!渡茖W(xué)基礎(chǔ)二:細(xì)胞生物學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 沈陽職業(yè)技術(shù)學(xué)院《中醫(yī)藥文化與養(yǎng)生》2023-2024學(xué)年第二學(xué)期期末試卷
- 駐馬店職業(yè)技術(shù)學(xué)院《寫意畫》2023-2024學(xué)年第二學(xué)期期末試卷
- 阜陽幼兒師范高等??茖W(xué)?!峨娮泳€路CAD技術(shù)B》2023-2024學(xué)年第二學(xué)期期末試卷
- Unit 3 Amazing animals PartA (教學(xué)設(shè)計)-2024-2025學(xué)年人教PEP版(2024)英語三年級上冊
- 鹽城師范學(xué)院《現(xiàn)代材料分析技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣東云浮中醫(yī)藥職業(yè)學(xué)院《民俗學(xué)與民間文學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 鋼軌購銷合同范本
- 山西大同大學(xué)《三維機(jī)械CAD實(shí)驗(yàn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 【跨境電商零售進(jìn)口稅收征管對策及建議16000字(論文)】
- DZ∕T 0332-2020 碳酸鹽巖油氣藏縫洞體雕刻法資源儲量估算規(guī)范(正式版)
- 心血管介入護(hù)士進(jìn)修匯報
- 施工組織設(shè)計內(nèi)部審批表
- 《企業(yè)的可持續(xù)發(fā)展》課件
- 零至三歲兒童及老年人中醫(yī)保健指導(dǎo)專業(yè)知識講座培訓(xùn)課件
- DB12-T 1305-2024 公路瀝青路面泡沫瀝青冷再生技術(shù)規(guī)范
- 范文語文評課稿15篇
- 2024年山東省春季高考技能考試汽車專業(yè)試題庫-中(多選題匯總)
- 2016-2023年德州科技職業(yè)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
- 《人文科學(xué)概論》課件
評論
0/150
提交評論