版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2021-2022年湖北省咸寧市全國計算機(jī)等級考試C語言程序設(shè)計模擬考試(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.下面程序段的輸出結(jié)果是______。char*s="abcde";s+=2;printf("%d",s);
A.cdeB.字符'c'C.字符'c'的地址D.無確定的輸出結(jié)果
2.軟件詳細(xì)設(shè)計生產(chǎn)的圖如右圖:該圖是()。
A.N—S圖B.PAD圖C.程序流程圖D.E—R圖
3.下列鏈表中,其邏輯結(jié)構(gòu)屬于非線性結(jié)構(gòu)的是()
A.雙向鏈表B.帶鏈的棧C.二叉鏈表D.循環(huán)鏈表
4.
5.對于哈希表,如果將裝填因子α定義為表中裝入的記錄數(shù)與表的長度之比,那么向表中加入新紀(jì)錄時,()
A.α的值隨時沖突次數(shù)的增加而遞減
B.α越大發(fā)生沖突的可能性越大
C.α等于1時不會再發(fā)生沖突
D.α低于0.5時不會發(fā)生沖突
6.算法的空間復(fù)雜度是指()。
A.算法程序的長度B.算法程序中的指令條數(shù)C.算法程序所占的存儲空間D.執(zhí)行算法需要的內(nèi)存空間
7.C語言中的基本數(shù)據(jù)類型所占存儲空間長度的順序是()
A.char<=int<=float<=double<=long
B.int<=char<=float<=long<=double
C.int<=long<=float<=double<=char
D.char<=int<=float<=long<=double
8.若x,y,z均被定義為整數(shù),則下列表達(dá)式能正確表達(dá)代數(shù)式1/(x*y*z)的是()。A.1/x*y*zB.1.0/(x*y*z)C.1/(x*y*z)D.1/x/y/(float)z
9.
10.有以下程序:#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)));}程序運行后的輸出結(jié)果是()。
A.3B.6C.8D.12
11.下面程序的輸出結(jié)果是()。
#include<stdio.h>
main()
{inta[4][5]={1,2,4,-4,5,-9,3,6,-3,2,7,8,4};
inti,j,n;
n=9;
i=n/5;
j=n-i*5-1;
printf("a[%d][%d]=%d\n",i,j,a[i][j]);
}
執(zhí)行后輸出結(jié)果是()。A.A.a[1][3]=6
B.a[1][3]=-3
C.a[1][3]=2
D.不確定
12.
13.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。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
14.定義int*swap()指的是______。
A.—個返回整型值的函數(shù)swap()
B.一個返回指向整型值指針的函swap()
C.一個指向函數(shù)swap()的指針,函數(shù)返回一個整型值
D.以上說法均錯
15.對表進(jìn)行水平方向和垂直方向的分割,分別對應(yīng)的關(guān)系運算是()
A.選擇和投影B.投影和選擇C.選擇和聯(lián)接D.投影和聯(lián)接
16.在下列語句中,其含義為“q是一個函數(shù)指針,該指針指向整型數(shù)據(jù)”的定義語句是()。
A.int**q;B.int(*q);C.int*q;D.int*q;
17.若x和y都是int型變量,x=100,y=200,且有程序片段:printf("%d",(x,y));上面程序片段的輸出結(jié)果()
A.200B.100C.100200D.輸出格式符不夠,輸出不確定的值
18.合法的main函數(shù)命令參數(shù)形式是()。
A.main(inta,char*c[])
B.main(intarc,char**arv)
C.main(intargc,char*argv)
D.main(intargv,char*argc[])
19.
20.有以下程序:#include<stdio.h>intfun(intx){intp;if(x==0||x==1)return(3);p=x-fun(x-2);returnp;}main(){printf(“%d\n”,fun(7));}程序的運行結(jié)果是()。A.2B.3C.7D.0
二、2.填空題(20題)21.對有14個結(jié)點的完全二叉樹的結(jié)點以從上到下、從左到右的順序進(jìn)行編號后,序號最小的葉結(jié)點的序號【】。
22.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
voidfun()
{staticinta=0;
a+=2;printf("%d",a);
}
main()
{intcc;
for(cc=1;cc<4;cc++)fun();
printf("\n");
}
23.以下程序運行后的輸出結(jié)果是【】。
main()
{intp=30;
printf("%dkn",(p/3>0?p/10:p%3));
}
24.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
main()
{inta=1234;
floatb=123.456;
doublec=12345.54321;
printf("\n%2d,%2.1f,%2.11f",a,b,C);
}
25.若a=10,b=20,則表達(dá)式!(a<b)的值是【】。
26.下列程序的輸出結(jié)果是______。
main()
{inta=2,b=4,c=6;
int*p1=&a,*p2=&b,*p;
*(p=&c)=*p1*(*p2);
printf("%d\n",c);
}
27.以下程序運行后的輸出結(jié)果是【】。
main()
{chara[]="Language",b[]="Pragrame";
char*p1,*p2;intk;
p1=a;p2=b;
for(k=0;k<=7;k++)
if(*(p1+k)==*(p2+k))
printf("%c",*(p1+k));
}
28.數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括五個部分,即數(shù)據(jù)項、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、【】和處理過程。
29.以下程序的功能是建立一個帶有頭結(jié)點的單向鏈表,鏈表結(jié)點中的數(shù)據(jù)通過鍵盤輸入,當(dāng)輸入數(shù)據(jù)為-1時,表示輸入結(jié)束(鏈表頭結(jié)點的data域不放數(shù)據(jù),表空的條件是ph->next==NULL),請?zhí)羁铡?/p>
#include<stdio.h>
structlist{intdata;structlist*next;};
structlist*creatlist()
{structlist*p,*q,*ph;inta;ph=(structlist*)malloc(sizeof(structlist));
p=q=ph;printf("Inputanintegernumber;entre-1toend:\n");
scanf("%d",&a);
while(a!=-1)
{p=(structlist*)malloc(sizeof(structlist));
【】=a;q->next=p;【】=p;scanf("%d",&a);}
p->next=′\0;return(ph);}
main()
{structlist*head;head=creatlist();}
30.下面的程序把從終端讀入的文本(用@作為文本結(jié)束標(biāo)志)輸出到一個名為bi.dat的新文件中,請?zhí)羁铡?/p>
#include<stdio.h>
#include<stdlib.h>
FILE*fp;
main()
{charch;
if((fp=fopen(【】))==NULL)exit(0);
while((ch=getchar())!='@')fputc(ch,fp);
fclose(fp);
}
31.下面程序的運行結(jié)果是()。#defineP(A)printf("%d",A)main(){intj,a[]={1,2,3,4,5,6,7},i=5;for(j=3;j>1;j--){switch(j){case1:case2:P(a[i++]);break;case3:P(a[--i]);}}}
32.設(shè)y為血型變量,請寫出描述“y是偶數(shù)”的表達(dá)式______。
33.以下程序中函數(shù)f的功能是在數(shù)組x的n個數(shù)(假定n個數(shù)互不相同)中找出最大最小數(shù),將其中最小的數(shù)與第一個數(shù)對換,把最大的數(shù)與最后一個數(shù)對換。請?zhí)羁铡?/p>
#include<stdio.h>
voidf(intx[],intn)
{intp0,p1,i,j,t,m;
i=j=x[0];p0=p1=0;
for(m=0;m<n;m++)
{if(x[m]>i){i=x[m];p0=m;}
elseif(x[m]<j){j=x[m];p1=m;}
}
t=x[p0];x[p0]=x[n-1];x[n-1]=t;
t=x[p1];x[p1]=【】;【】=t;
}
main()
{inta[10],u;
for(u=0;u<10;u++)scanf("%d",&a[u]);
f(a,10);
for(u=0;u<10;u++)printf("%d",a[u]);
printf("\n");
}
34.以下程序運行后的輸出結(jié)果是______。
main()
{
inta,b,c;
a=25;
b=025;
c=0x25;
printf("%d%d%d\n",a,b,C);
}
35.在運算過程中,能夠使空表與非空表的運算統(tǒng)一的結(jié)構(gòu)是【】。
36.軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。
37.函數(shù)compare的功能是比較兩個字符串是否相等,若相等則函數(shù)返回1,否則返回o,請?zhí)羁铡?/p>
compare(chars[],chart[])
{
inti=0
while(s[i]==t[i]&&【】)i++;
return(【】?1:0);
}
38.語句:x++;++x;x=1/x;執(zhí)行后都使變量x中的值增1,請寫出一條同一功能的賦值語句______。
39.當(dāng)線性表采用順序存儲結(jié)構(gòu)實現(xiàn)存儲時,其主要特點是______。
40.以下程序段的輸出結(jié)果是【】。
inti=9;
prinff("%o\n",i);
三、1.選擇題(20題)41.下列程序輸出的結(jié)果是()。main(){inta;a=-4+4*5-6;printf(“%d”,a);a=4+4%5-6;printf(“%d”,a);a=-3+4%6/5;printf(“%d”,a);a=(7+6)%5/2;printf(“%d”,a);}
A.102-31B.10-221C.11-221D.10221
42.以下程序的輸出結(jié)果是________。#include<stdio.h>mam(){inta,b,d=241;a=d/100%9;b=(-1)&&(-1);printf("%d,%d\n",a,B);}
A.6,1B.2,1C.6,0D.2,0
43.設(shè)下面程序的可執(zhí)行文件名為prg.exe,在該程序所在子目錄下輸入以下命令行:prghellogood<回車>則程序的輸出結(jié)果是______。main()(intargc,char*argv[]){inti;if(argc<=0)return;for(i=1;i<argc;i++)printf("%c",*argv[i]);}
A.hellogoodB.hgC.helD.hellogood
44.設(shè)已包含頭文件<string.h>,下列程序段的運行結(jié)果是()。chars1[]={"ACDEF"};chars2[]="ABC";strcpy(s1,s2);printf("%d",strlen(s1));
A.3B.4C.6D.5
45.C語言中while循環(huán)和do-while循環(huán)的主要區(qū)別是______。
A.do-while的循環(huán)體至少無條件執(zhí)行一次
B.while的循環(huán)控制條件比do-while的循環(huán)控制條件嚴(yán)格
C.do-while允許從外部轉(zhuǎn)到循環(huán)體內(nèi)
D.do-while的循環(huán)體不能是復(fù)合語句
46.執(zhí)行下面程序的結(jié)果是______。main(){intx=2;printf("%d\n",(x--,x<<1,x&&5));}
A.0B.1C.2D.編譯時有語法錯誤,不能執(zhí)行
47.已知下列函數(shù)定義:fun(int%,intc,intn,intdatA){intk;for(k=0;k<m*n;k++){*b=data;b++;}}則調(diào)用此函數(shù)的正確寫法是(假設(shè)變量a的說明為inta[50])()。
A.fun(*a,4,5,1);
B.fun(&a,4,5,1);
C.fun((int*)a,4,5,1);
D.fun(a,4,5,1);
48.模塊本身的內(nèi)聚是模塊獨立性的重要性度量因素之一。在7類內(nèi)聚中,具有最強(qiáng)內(nèi)聚的一類是__________。
A.順序性內(nèi)聚B.過程性內(nèi)聚C.邏輯性內(nèi)聚D.功能性內(nèi)聚
49.若有下列說明,則()不是對strcpy庫函數(shù)的正確的調(diào)用。strcpy庫函數(shù)用于復(fù)制一個字符串:char*strl="abcd",str2[10],*str3="hijklmn",*str4[2],*str5="aaaa";
A.languageB.lnugC.有語法錯誤D.lang
50.數(shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的()。
A.存儲問題B.共享問題C.安全問題D.保護(hù)問題
51.有以下程序:main(){inta=1,b=2,m=0,n=0,k;k=(n=b>a)||(m=a>b);printf("%d,%d\n"m,k,m);}程序運行后的輸出結(jié)果是()。
A.0,0B.O,1C.1,0D.1,1
52.sizeof(float)是______。
A.一種函數(shù)調(diào)用B.一個雙精度型表達(dá)式C.一個整型表達(dá)式D.一個不合法的表達(dá)式
53.以下非法的賦值語句是
A.n=(i=2,++i);B.j++;C.++(i+1);D.x=j>0;
54.在“文件包含”預(yù)處理語句的使用形式中,當(dāng)#include后面的文件名用"",(雙撇號)括起時,尋找被包含文件的方式是()。
A.直接按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索目錄
B.先在源程序所在的目錄搜索,如沒找到,再按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索
C.僅僅搜索源程序所在目錄
D.僅僅搜索當(dāng)前目錄
55.下列程序的輸出結(jié)果是()。
main()
{intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;
while(i++<7)
if(p[i]%2)j+=p[i];
printf("%dXn",j);}
A.42B.45C.56D.60
56.以下程序的輸出結(jié)果是______。#include<stdio.h>voidprt(int.*x,int*y,int*z){printf("%d,%d,%d\n",++*x,++*y,*(z++));}inta=10,b=40,c=20;main(){prt(&a,&b&c);prt(&a,&b,&c);}
A.11,42,3112,22,41
B.11,41,2012,42,20
C.11,21,4011,21,41
D.11,41,2112,42,22
57.對一個關(guān)系投影操作以后,新關(guān)系的元組個數(shù)______原來關(guān)系的元組個數(shù)。
A.小于B.小于或等于C.等于D.大于
58.下面函數(shù)的功能是char*fun(char*strl,char*str2){while((*strl)&&(*str2++=*strl++));returnstr2;}
A.求字符串的長度
B.比較兩個字符串的大小
C.將字符串str1復(fù)制到字符串str2中
D.將字符串str1接續(xù)到字符串str2中
59.有以下程序:#include<stdio.h>main(){charc1,c2,c3,c4,c5,c6;scanf(%c%c%c%c,&c1,&c2,&c3,&c4);c5=getchar();c6=getchar();putchar(c1);putchar(c2);printf(%c%c\n,c5,c6);}程序運行后,若從鍵盤輸入(從第1列開始)123<回車>45678<回車>則輸出結(jié)果是()。
A.1267B.1256C.1278D.1245
60.以下程序的輸出結(jié)果是main(){charcf[3][5]={"AAAA","BBB","CC"};printf("\"%s\"\n",cf[1]);;}
A.AAAAB.BBBC.BBBCCD.CC
四、選擇題(20題)61.
以下程序的輸出結(jié)果是()。
main
{inti;
for(i=0;i<3;i++)
switch(i){case0:printf("%d",i);
case2:printf("%d",i);
default:printf("%d",i);
}
}
A.000102B.000020C.000122D.000111
62.有以下定義和語句
63.#define能作簡單的替代,用宏來替代計算多項式5*x*x+5*x+5的值的函數(shù)f,正確的宏定義語句為()。
A.#definef(x)5*x*x+5*x+5
B.#definef5*X*x+5*x+5
C.#definef(a)(5*a*a+5*a+5)
D.#define(5*x*x+5*x+5)f(x)
64.
65.以下敘述中錯誤的是()。
A.用戶所定義的標(biāo)識符允許使用關(guān)鍵字
B.用戶所定義的標(biāo)識符應(yīng)盡量做到“見名識意”
C.用戶所定義的標(biāo)識符中,大、小寫字母代表不同標(biāo)識
D.用戶所定義的標(biāo)識符必須以字母或下劃線開頭
66.下述程序執(zhí)行的輸出結(jié)果是()。
#include<stdio.h>
main()
{chara[2][4];,
strcpy(a。"are");strcpy(a[1],"you");
a[o][3]=&;
printf("%s\n",a);
}
A.are&you
B.you
C.are
D.&
67.有下列程序:
fun(intx,inty)
{staticintm=0,i=2;
i+=++rn;m=ixy;returnm;
}
main
{intj=l,m=1,k;
k=fun(j,m);printf("%d,",k);
k=fun(j.m);printf(”%d\n”,k);
}
執(zhí)行后的輸出結(jié)果是()。
A.5.5B.5,11C.11,11D.11,5
68.設(shè)整型變量a為5,使b不為2的表達(dá)式是()。
A.b=a/2B.b=6-(--a)C.b=a%2D.b=a>3?2:1
69.
70.
71.有以下程序:
#include<stdio.h>
main()
{inta;
scanf("%d",&a);
if(a++<9)printf("%d\n",a);
clscprintf("%d\n",a--);
}
程序運行時從鍵盤輸入9<回車>,則輸出結(jié)果是()。
A.10B.11C.9D.8
72.
73.若有定義語句:intm[]={1,2,3,4,5},i=4;,則下面對m數(shù)組元素的引用中錯誤的是
A.m[++i]B.m[1*2]
C.m[m[0]]D.m[m[--i]]
74.下列能正確定義且賦初值的語句是()。
A.intn1=n2=1;
B.charC=99;
C.floatf=f+1;
D.doublex=1.2E5.6;
75.
76.在結(jié)構(gòu)化方法中,軟件功能分別屬于下列軟件開發(fā)中的(
)階段。A.詳細(xì)設(shè)計B.需求分析C.總體設(shè)計D.編程調(diào)試
77.HTML是一種標(biāo)記語言,它是由()解釋執(zhí)行的。
A.不需要解釋B.WindowsC.瀏覽器D.標(biāo)記語言處理軟件
78.
79.假定X和Y為double型,則表達(dá)式x=2,y=x+3/2的值是()。
A.3.500000B.3C.2.000000D.3.000000
80.
五、程序改錯題(1題)81.下列給定的程序中,函數(shù)proc的功能是:用選擇法對數(shù)組中的m個元素按從小到大的順序進(jìn)行排序。例如,排序前的數(shù)據(jù)為:1132-5214則排序后的數(shù)據(jù)為:-52111432請修改程序中的錯誤,使它能得到正確結(jié)果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdio.h>#defineM20voidproc(inta[],intn){inti,j,t,P;//****found****for(j=0;j<n-1;j++);{p=j;for(i=j;i<n;i++)if(a[[i]<a[p])p=i;t=a[p];a[p]=aEj3;//****found****a[p]=t;}}voidmain{intarr[M]={11,32,-5,2,14},i,m=5;printf("排序前的數(shù)據(jù):");for(i=0;i<m;i++)printf("%d",arr[i]);printf("\n");proc(arr,m);printf("排序后的順序:");for(i=0;i<m;i++)printf("%d",arr[i]);printf("\n");}
六、程序設(shè)計題(1題)82.學(xué)生的記錄由學(xué)號和成績組成,M名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組stu中,請編寫函數(shù)proc,其功能是:按分?jǐn)?shù)的高低排列學(xué)生的記錄,高分在前。注意:部分源程序給出如下。請勿改動main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號中填入所編寫的若干語句。試題程序:#include<stdio.h>#defineMl6typedefstruct{charnum[l0];intS;}STREC:voidproc(STRECa[]){inti,j;STRECt;for(i=1;i<M;i++)/*用冒泡法來按從高到低排序*/for(j=0;j<M-1;j++)。if(a[j].s<a[j+1].s)//*按分?jǐn)?shù)的高低排列學(xué)生的記錄,高分在前*/{t=a[j];a[j]=a[j+1];a[j+1]=t;)}voidmain{STRECstu[M]={{"GA005",85),{"GA003",76},{"GA002",69},{"GA004",85),{"GA001",91),{"GA007",72),{"GA008",64),{"GA006",87),{"GA015",85),{"GA013",91),{"GA012",64),{¨GA014",91),{"GA011",66),{"GA017",64},{"GA018",64),{"GA016",72}};inti;proc(stu);printf("Thedataaftersorted:\n");for(i=0;i<M;i++){if(i%4==0)//每行輸出4個學(xué)生記錄printf("n");printf("%s%4d",stu[i],num,stu[i].s);}printf("\n");}
參考答案
1.C解析:語句s+=2;使指針指向字符'c',此時s中保存的便是字符'c'的地址。
2.CN—s圖提出了用方框圖來代替?zhèn)鹘y(tǒng)的程序流程圖,所以A不對。PAD圖是問題分析圖,它是繼承程序流程圖和方框圖之后提出的又一種主要用于描述軟件詳細(xì)設(shè)計的圖形表示工具,所以8不對。E—R圖是數(shù)據(jù)庫中的用于表示E—R模型的圖示工具,所以D不對。根據(jù)圖中所示表示方法是進(jìn)行軟件詳細(xì)設(shè)計時使用的程序流程圖。
3.C數(shù)據(jù)的邏輯結(jié)構(gòu)是描述數(shù)據(jù)之間的關(guān)系,分兩大類:線性結(jié)構(gòu)和非線性結(jié)構(gòu)。線性結(jié)構(gòu)是n個數(shù)據(jù)元素的有序(次序)集合,指的是數(shù)據(jù)元素之間存在著“一對一”的線性關(guān)系的數(shù)據(jù)結(jié)構(gòu)。常用的線性結(jié)構(gòu)有:線性表,棧,隊列,雙隊列,數(shù)組,串。非線性結(jié)構(gòu)的邏輯特征是一個結(jié)點元素可能對應(yīng)多個直接前驅(qū)和多個后驅(qū)。常見的非線性結(jié)構(gòu)有:樹(二叉樹等),圖(網(wǎng)等),廣義表。
4.A
5.B
6.D解析:算法的復(fù)雜度主要包括算法的時間復(fù)雜度和算法的空間復(fù)雜度。所謂算法的時間復(fù)雜度是指執(zhí)行算法所需要的計算工作量;算法的空間復(fù)雜度一般是指執(zhí)行這個算法所需要的內(nèi)存空間。
7.A
8.B
9.C
10.Bfun函數(shù)的功能是獲取2個數(shù)的平均值,注意平均值是整型數(shù),小數(shù)會被截斷。調(diào)用函數(shù)“fun(2*4,fun(5,6))”相當(dāng)于調(diào)用函數(shù)“fun(8,5)”,平均值是6。故本題答案為B選項。
11.Bn=9,i=n/5=1;j=9-1*5-1=3,輸出為a[1][3]=-3
12.B
13.A程序定義整型變量a和i,其中a的初值為7。for循環(huán)中,循環(huán)變量i的取值為1,2,3。循環(huán)體中判斷a的取值,當(dāng)a>14時,執(zhí)行break跳出循環(huán);當(dāng)a取值為奇數(shù)時,a%2==1,a自增3,執(zhí)行continue繼續(xù)執(zhí)行循環(huán)體;當(dāng)a取值為偶數(shù)時,a%2==0,a自增4,輸出i和a的值。i取值為1時,a取值為7,自增3后a的值為10,執(zhí)行下一個循環(huán)。i取值為2時,a取值為10,自增4后a的值為14,輸出2,14。i取值為3時,a取值為14,自增4后a的值為18,輸出3,18。i取值為4時,a取值為18,循環(huán)終止,輸出4,18。綜上,程序輸出:2,14,3,18,4,18。本題答案為A選項。
14.B解析:—個函數(shù)可以帶回—個整型值、字符值、實型值等,但也可以帶回指針型數(shù)據(jù),即地址。本題的定義中,包括括號和*號,由于()優(yōu)先級高于*。故它是—個返回整型指針的函數(shù)。
15.A解析:從關(guān)系中找出滿足給定條件的那些元組稱為選擇,是從行的角度進(jìn)行的運算,即水平方向抽取元組。從關(guān)系模式中挑選若干屬性組成新的關(guān)系稱為投影,是從列的角度進(jìn)行的運算,相當(dāng)于對關(guān)系進(jìn)行垂直分解。所以,本題選擇A。
16.B本題考查指針函數(shù)。其定義的基本格式為:類型說明符(*函數(shù)名)?!邦愋驼f明符”表示返回的指針值指向的數(shù)據(jù)類型。
17.A
18.C在C語言中,main函數(shù)也可以有參數(shù),例如,main(intar90,char*argv),argc是指字符串的指針數(shù)組,而其他幾項表達(dá)不正確。
19.C
20.A因為fun(intx)是一個遞歸函數(shù)。在主函數(shù)中fun(7)經(jīng)過3次遞歸調(diào)用。其過程可以描述為fun(7)=7-fun(5)=7-(5*fun(3))=7*(5*(3*fun(1)))=7-(5-(3-3))=7-5=2。最后的輸出結(jié)果為2。故本題答案為A選項。
21.8
22.246246解析:本題考查靜態(tài)(static)局部變量的使用。fun函數(shù)中的靜態(tài)局部變量a所占用的存儲單元在程序運行過程中始終不釋放,即當(dāng)下一次調(diào)用該函數(shù)時,該變量仍然保留上一次函數(shù)調(diào)用結(jié)束時已有的值,3次調(diào)用fun函數(shù)分別得到2,4,6。
23.33本試題中,先判斷表達(dá)式p/3>0,該值為真,所以此表達(dá)式等于p/10的值3,故最后輸出的值為3。
24.1234123.512345.51234,123.5,12345.5解析:在primf()函數(shù)的格式控制符中:'%2d'表示輸出一個有符號整數(shù),如果輸出長度小于2,則左端補(bǔ)以空格,否則按實際長度輸出。所以本題中的a按原樣輸出為1234:'%2.1尸表示輸出一個單精度實數(shù),只輸出小數(shù)點后1位,后面若有小數(shù)則四舍五入,如果輸出長度小于2,則左端補(bǔ)以空格,否則按實際長度輸出。所以本題中的b四舍五入到小數(shù)點后1位再輸出為123.5;'%2.11f'除了表示輸出一個雙精度實數(shù)外,其余參數(shù)和'%2.1f'一樣。所以本題中的c四舍五入到小數(shù)點后1位再輸出為12345.5。故輸出結(jié)果是:1234,123.5,12345.5。
25.00解析:已知a=10,b=20,所以邏輯表達(dá)式a<b的值為true,即為1,在這個表達(dá)式前面有一個邏輯運算符!,表示反操作,所以整個語句的值應(yīng)當(dāng)為false,即為0。
26.88解析:本程序定義了3個指針變量p1、p2、p,并且將,、b的地址分別賦給P1、p2,則*p1=a=2,*p2=b=4,所以表達(dá)式*p1*(*p2)的值是8。在賦值語句的左邊是*(p=&c),即使指針p指向了變量c,因而*(p)代表了c的存儲單元,賦值語句“*(p=&c)=*p1*(*p2);”是把整數(shù)8賦給了變量c。
27.gaegae解析:主函數(shù)中定義了字符數(shù)組a和b,其初值分別為Language和Programe,然后定義了兩個指針變量p1和p2,并讓它們指向a和b。通過分析可知下面的for循環(huán)中,每循環(huán)一次就將p1+k和p2+k所指向的字符進(jìn)行比較,如果相等,輸出該字符,循環(huán)共執(zhí)行8次,顯然Language和Programe中只有字符gae相等,所以最后轄出為gae。
28.數(shù)據(jù)存儲數(shù)據(jù)存儲
29.p->dataqp->data,q解析:本題考查的是鏈表這一數(shù)據(jù)結(jié)構(gòu)對結(jié)構(gòu)體變量中數(shù)據(jù)的引用。鏈表的特點是結(jié)構(gòu)體變量中有兩個域,一個是數(shù)據(jù),另一個是指向該結(jié)構(gòu)體變量類型的指針,用以指明鏈表的下一個結(jié)點。
30.bi.dat"w"或"bi.dat""w+"bi.dat,'w'或'bi.dat','w+'解析:根據(jù)fopen函數(shù)的調(diào)用方式fopen(文件名,使用文件方式)和題意可得結(jié)果。
31.5555解析:分析程序執(zhí)行過程,第一次循環(huán)時,j=3,i=5,因為switch(3),所以執(zhí)行case3,調(diào)用P(a[--i])=P(a[4])=P(5),輸出5;第二次循環(huán)時,j=2,i=4,因為switch(2),所以執(zhí)行case2,調(diào)用P(a[i++])=P(a[4])=P(5),輸出5,之后i自加1等于5。
32.(y%2)==0(y%2)==0解析:因符合偶數(shù)的條件是對2取余為0,所以要描述y是偶數(shù)的表達(dá)式是(y%2)==0。
33.x[0]x[0]x[0],x[0]解析:函數(shù)f()通過for循環(huán)逐個比較數(shù)組x中的元素,循環(huán)結(jié)束后,p0和p1分別表示最大值和最小值在數(shù)組中的下標(biāo)位置,然后按照題意將最大值x[p0]和數(shù)組的最后一個元素x[n-1]交換位置,再將最小值x[p1]和第一個元素(x[0])進(jìn)行交換,所以空白處應(yīng)該填入x[0]。
34.252137252137解析:本題中先定義了整型變量a、b和c,然后分別給賦值a為25,b為八進(jìn)制的025,c為十六進(jìn)制0x25。然后調(diào)用pruntf()函數(shù)將a、b和c分別用十進(jìn)制輸出,且中間用空格隔開,八進(jìn)制025轉(zhuǎn)換為十進(jìn)制的值為21,十六進(jìn)制的0x25轉(zhuǎn)換為十進(jìn)制的值為37,故最后的輸出結(jié)果為252137。
35.循環(huán)鏈表循環(huán)鏈表解析:在鏈表的運算過程中,采用鏈接方式即循環(huán)鏈表的結(jié)構(gòu)把空表與非空表的運算統(tǒng)一起來。循環(huán)鏈表具有兩個特點:①在循環(huán)鏈表中增加了一個表頭結(jié)點,其數(shù)據(jù)域為任意或根據(jù)需要來設(shè)置,指針域指向線性表的第一個元素的結(jié)點。循環(huán)鏈表的頭指針指向表頭結(jié)點。②循環(huán)鏈表中最后一個結(jié)點的指針不是空,而是指向表頭結(jié)點。
36.軟件開發(fā)
37.s[i]&&t[i]或s[i]!='\0'&&t[i]!='\0'!(s[i]-t[i])s[i]&&t[i]或s[i]!='\\0'&&t[i]!='\\0'\r\n!(s[i]-t[i])解析:while后括號中的判斷條件為兩個字符串相同位置上的字符相等,且兩個字符串都沒有結(jié)束,則循環(huán)。故第一空應(yīng)該填s[i]&&t[i]或其他等價表達(dá)式。如果兩個字符串完全相等,則while循環(huán)退出時s[i]和t[i]的值同時為0,否則s[i]和t[i]不相等。故表達(dá)式s[i]-t[i]在字符串相等時為0,不相等時為非0,所以第二空應(yīng)該填!(s[i]-t[i])就滿足題意了。
38.x+=1x+=1解析:本題考查'++'、'--'運算符。'++'、'--'只能作用于變量,不能用于表達(dá)式或常量;前綴形式是在使用變量之前先將其值增1或減1,后綴形式是先使用變量原來的值,使用完后再使其增1或減1。
39.邏輯結(jié)構(gòu)中相鄰的結(jié)點在存儲結(jié)構(gòu)中仍相鄰。邏輯結(jié)構(gòu)中相鄰的結(jié)點在存儲結(jié)構(gòu)中仍相鄰。解析:順序存儲結(jié)構(gòu)的主要特點是數(shù)據(jù)元素按線性表的邏輯次序,依次存放在一組地址連續(xù)的存儲單元中。在存儲單元中,各元素的物理位置和邏輯結(jié)構(gòu)中各結(jié)點間的相鄰關(guān)系是一致的。
40.1111解析:格式字符。是以八進(jìn)制無符號形式輸出整數(shù)(不輸出前導(dǎo)符0),因為整數(shù)9的八進(jìn)制為11,所以輸出結(jié)果為11。
41.A解析:本題考查%和/運算符的使用。如果兩個數(shù)不能整除,只取結(jié)果的整數(shù)部分,小數(shù)部分全部舍去。運算符“%”要求兩個運算對象都為整型,其結(jié)果是整數(shù)除法的余數(shù)。表達(dá)式:a=-4+4*5-6=4+20-6=10:表達(dá)式:a=4+4%5-6=4+4-6=2;表達(dá)式:a=-3+4%6/5=-3+0=-3:表達(dá)式:a=(7+6)%5/2=13%5/2=1。
42.B解析:第—個表達(dá)式中,運算的方向是從左至右,所以a的值為2;第二個表達(dá)式中,等式右邊是—個邏輯表達(dá)式,由于結(jié)果為真,所以表達(dá)式的值為1,即b為1。
43.B解析:argc=3,argv[1]='hello',argv[2]='good'。注意:printf格式串中是%c,因此輸出argv[1]和argv[2]的第一個字符,即'hg'。
44.A解析:頭文件<string.h>是字符串處理函數(shù)對應(yīng)的頭文件,要想調(diào)用C語言的庫函數(shù)時,都要在程序中嵌入該函數(shù)對應(yīng)的頭文件,否則無法使用庫函數(shù)。
strcpy(s1,s2)把s2中的字符串復(fù)制到s1中,所以結(jié)果就為s2的長度。
45.A解析:本題考核C++語言中while循環(huán)和do-while循環(huán)之間的區(qū)別。do-while語句與while語句不同的是,do-while循環(huán)中的<語句>至少會執(zhí)行一次,而while語句中當(dāng)條件在第一次循環(huán)就不滿足時,語句一次也不會執(zhí)行。
46.B解析:逗號表達(dá)式x--,x<<1,x&&5先執(zhí)行x--,x的值為1,再執(zhí)行x<<1,表達(dá)式的值為2,但x的值仍是1(不是移位賦值表達(dá)式),最后執(zhí)行x&&5,二者均不為0,邏輯與的結(jié)果是1。
47.D
48.D解析:內(nèi)聚性是一個模塊內(nèi)部各元素間彼此結(jié)合的緊密程度的度量。內(nèi)聚是從功能角度來度量模塊內(nèi)的聯(lián)系。內(nèi)聚共有7類,它們之㈨的內(nèi)聚性由弱到強(qiáng)排列順序為:偶然內(nèi)聚、邏輯內(nèi)聚、時間內(nèi)聚、過程內(nèi)聚、通信內(nèi)聚、順序內(nèi)聚和功能內(nèi)聚。
49.B解析:本程序首先定義了靜態(tài)字符數(shù)組a,然后將指針p指向數(shù)組a的首地址。
第1次for循環(huán),p=a,p指向數(shù)組的第1個元素,*p是取指針p所指地址的內(nèi)容,輸出1;第2次for循環(huán),p=p+2,則p指向數(shù)組的第3個元素,*p是取指針p所指地址的內(nèi)容,輸出n;第3次for循環(huán),p=p+2,則p指向數(shù)組的第5個元素,*p是取指針p所指地址的內(nèi)容,輸出u;第4次for循環(huán),p=p+2,則p指向數(shù)組的第7個元素,*p是取指針p所指地址的內(nèi)容,輸出g,結(jié)束循環(huán)。
50.B解析:數(shù)據(jù)庫產(chǎn)生的背景就是計算機(jī)的應(yīng)用范圍越來越廣泛,數(shù)據(jù)量急劇增加,對數(shù)據(jù)共享的要求越來越高。共享的含義是多個用戶、多種語言、多個應(yīng)用程序相互覆蓋的使用一些公用的數(shù)據(jù)集合。在這樣的背景下,為了滿足多用戶、多應(yīng)用共,享數(shù)據(jù)的要求,就出現(xiàn)了數(shù)據(jù)庫技術(shù),以便對數(shù)據(jù)庫進(jìn)行管理。因此,數(shù)據(jù)庫技術(shù)的根本目標(biāo)就是解決數(shù)據(jù)的共享問題。故選項B正確。
51.C解析:在||運算中當(dāng)其左邊的表達(dá)式為真,右邊的表達(dá)式將不再執(zhí)行。主函數(shù)中,||左邊的表達(dá)式k=(n=b>a),2>1為真,所以n被賦值為1,接著k被賦值1,即||運算符左邊表達(dá)式為真,此時不再計算||右邊的表達(dá)式,因此m的值沒有被改變?nèi)詾?,最后的輸出結(jié)果1,0。所以,4個選項中選項C符合題意。
52.C解析:sizeof(float)返回float型變量所占存儲單元的字節(jié)數(shù)。
53.C解析:本題考查的知識點是賦值語句的基本知識。在表達(dá)式的運算中,雙目賦值運算符的格式為“變量二表達(dá)式”,單目運算符一般形式為“運算符表達(dá)式”或“表達(dá)式運算符”。常量和表達(dá)式是不能被賦值的。選項A為復(fù)合表達(dá)式,首先計算(i=2,++i)的值,然后賦值給n,故選項A正確;選項B為簡單自加運算,故選項B正確;選項C在表達(dá)式++(i+1);中,(i+1)不是變量,該表達(dá)式的值為常量,而在++運算中,其運算對象必須為變量,故選項C錯誤;選項D中為復(fù)合賦值表達(dá)式,正確.所以應(yīng)當(dāng)選擇C。
54.B解析:本題考查庫函數(shù)調(diào)用的知識點。格式1:#include<文件名>,預(yù)處理程序在標(biāo)準(zhǔn)目錄下查找指定的文件;格式2:#include'文件名',預(yù)處理程序首先在引用被包含文件的源文件所在的目錄下搜索指定的文件,如沒找到,再按系統(tǒng)指定的標(biāo)準(zhǔn)目錄搜索。
55.B解析:在C語言中,數(shù)組的下標(biāo)默認(rèn)為0,因此數(shù)組p的下標(biāo)范圍為:0~7。程序循環(huán)過程為:第1次循環(huán)i=0,執(zhí)行循環(huán),并且i自加,得i=1,因此p[i]為p[1]=12,12%2=0,不執(zhí)行后面的語句:接著進(jìn)行第2次循環(huán),此時i=1,小于7執(zhí)行循環(huán),并且i自加,得i=2,因此p[i]為p[2]=13,13%2=1,執(zhí)行后面的語句;這樣一直到退出循環(huán)。最后,i的值為.i=13+15+17=45。
56.B解析:由于實參傳送的是變量的地址,所以對形參指針?biāo)赶虻膯卧獌?nèi)容的改變,即對實參內(nèi)容的改變。
57.B解析:投影操作是從關(guān)系中選擇某些列,投影后消去了某些屬性,就可能出現(xiàn)重復(fù)元組,根據(jù)關(guān)系的性質(zhì),應(yīng)消去這些完全相同的元組。這樣使得新關(guān)系的元組數(shù)小于或等于原來的元組數(shù)。
58.C解析:while語句的一般形式為:while(表達(dá)式)語句;其中表達(dá)式是循環(huán)條件,語句為循環(huán)體,while語句的語義是:計算表達(dá)式的值,當(dāng)值為真(非0)時,執(zhí)行循環(huán)體語句。本題中邏輯與符號連接的表達(dá)式值為真,*str2++=*strl++語句是將strl的內(nèi)容逐個復(fù)制到str2字符串。
59.D解析:在題目中,程序執(zhí)行到scanf()函數(shù)時,會暫停等待用戶輸入4個字符,按題意輸入123<回車>后,字符1~3被分別輸入到c1~c3中,而c4會得到一個換行符'\\n'。然后執(zhí)行第1個getchar()函數(shù),由于前面的scanf()函數(shù)讀完了緩沖區(qū)中的所有字符,所以此時程序會又暫停等待用戶輸入,按題意輸入45678<回車>后,緩沖區(qū)第1個字符'4'被讀入并賦給c5,第2個getchar()函數(shù)會讀入緩沖區(qū)第2個字符'5'。所以最后依次輸出c1、c2、c5、c6的值后,屏幕上的結(jié)果是1245。故應(yīng)該選擇D。
60.B解析:維字符數(shù)組可以看成由若干個一維字符數(shù)組組成,每行是一個一維字符數(shù)組。本題首先定義了一個數(shù)組ch[3][5]并給它們按行賦初值,即相當(dāng)于給ch[0]賦值“AAAA”,給ch[1]賦值“BBB”,給ch[2]賦值“BBB”,最后輸出轉(zhuǎn)義字符“'\\'”、ch[1]和轉(zhuǎn)義字符“\\”,因此輸出為“BBB”.所以,4個選項中B為所選。
61.C
\n當(dāng)i=0時,執(zhí)行switch語句,對應(yīng)的執(zhí)行case0,輸出0,因為沒有break,接著執(zhí)行case2的語句,又輸出一個0,接著執(zhí)行default語句,再輸出一個0,返回i++;i=1時,沒有case語句,執(zhí)行default語句,輸出一個1,接著又返回i++;當(dāng)i=2時執(zhí)行case2和default語句分別輸出一個2,此時又返回i++,i變?yōu)?,for循環(huán)不成立,終止,最后輸出000122。
\n
62.A嵌套的結(jié)構(gòu)體定義,要訪問內(nèi)層的成員,需要一層層用“.”訪問,所以答案選擇A)。
63.C解析:帶參數(shù)宏的格式為:#define標(biāo)識符(形參表)形參表達(dá)式。其功能是:在預(yù)處理程序中將程序中出現(xiàn)的所有帶實參的宏名,展開成由實參組成的表達(dá)式。
64.B
65.Ac語言規(guī)定標(biāo)識符只能由字母、數(shù)字和下劃線3種字符組成,且第一個字符必須為字母或下劃線,排除D);用戶定義標(biāo)識符中大小寫字母之間是有區(qū)別的并且應(yīng)盡量做到”見名識意”,排除選項B)和c);C語言中還規(guī)定標(biāo)識符不能為c語言的關(guān)鍵字,故選項A)敘述錯誤,正確答案是選項A)。
66.A\nstrcpy實現(xiàn)的功能是復(fù)制,該操作把a(bǔ)re復(fù)制到a中,aE03E33一’&’,且strcpy(aEl],'you')把you復(fù)制到a[l]中,故輸出a為“are&you”。
\n
67.B
\n變量m和i聲明為局部靜態(tài)變量,因此第1次調(diào)用fun函數(shù)后,局部靜態(tài)變量m和i的值為5和3,第l次調(diào)用結(jié)束時,它們的值不變,第2次調(diào)用時,m和i的初始值分別為5和3,在執(zhí)行“i+=m+1”后,i的值為9,因此,最終m的值為11。
68.C
69.A
70.C
71.A\n本題考查簡單的運算符操作.當(dāng)輸入9時,(a++<9)為假,所以執(zhí)行else語句中的printf('%d\n',a--),在執(zhí)行時此時a經(jīng)過a++操作a=10,所以答案為A。
\n
72.B
73.A本題考查一維數(shù)組的引用。一維數(shù)組表示為數(shù)組名[下標(biāo)],下標(biāo)可以是整型常量或整型表達(dá)式,題目中給出的四個選項,在格式上都是正確的。A選項中,首先進(jìn)行++i運算,運算的結(jié)果為5,而該數(shù)組初始化后有效取值范圍為m[0]~m[4],m[5]不存在,引用錯誤。B選項引用的是m[2]中的數(shù)值3。C選項先計算m[0]中的數(shù)據(jù),得到1,隨后計算m[1]中的數(shù)值,可得2。D選項先計算m[--i],得到m[3]中的數(shù)據(jù)4,隨后計算m[4]中的數(shù)值,可得5。
74.B在c語言規(guī)定中,可以在定義變量的同時給變量賦初值,選項A中n2沒有定義;選項C中不能在賦值表達(dá)式的右邊出現(xiàn)變量本身,選項D中字母E后面的數(shù)應(yīng)該為整數(shù),所以不對。
75.C
76.C總體設(shè)計過程通常由兩個主要階段組成:系統(tǒng)設(shè)計,確定系統(tǒng)的具體實現(xiàn)方案;結(jié)構(gòu)設(shè)計,確定軟件結(jié)構(gòu)。為確定軟件結(jié)構(gòu),首先需要從實現(xiàn)角度把復(fù)雜的功能進(jìn)~步分解。分析員結(jié)合算法描述仔細(xì)分析數(shù)據(jù)流圖中的每個處理,如果一個處理的功能過分復(fù)雜,必須把它的功能適當(dāng)?shù)胤纸獬梢幌盗斜容^簡單的功能。
77.C
78.B
79.D本題考查C語言中變量類型的轉(zhuǎn)換。
C語言中若參與運算的變量的數(shù)據(jù)類型不同,則先轉(zhuǎn)換成同一類型,然后進(jìn)行運算。轉(zhuǎn)換數(shù)據(jù)始終往長度增加的方向進(jìn)行,以確保精確度,如int和long運算,則將int轉(zhuǎn)換為long再運算,所有的浮點運算都是以雙精度(double)進(jìn)行的。
題目中x、y都為double型數(shù)據(jù),而表達(dá)式3/2為兩個整型變量之間的計算,計算結(jié)果只保留整數(shù)部分,小數(shù)部分省略掉。3/2的結(jié)果為1。后面變?yōu)橛嬎銀=x+1,這時都需要變?yōu)閐ouble型數(shù)據(jù),結(jié)果為3.000000。
80.D
81.(1)錯誤:for(j=0;j<n-1;j++);正確:for(j=0;j<n-1j++)(2)錯誤:a[p]=t;正確:a[j]=t;【解析】for循環(huán)結(jié)束的標(biāo)志是for后的一個語句,如果for后面直接跟一個分號,說明是一個空循環(huán)不執(zhí)行任何功能,因此“for(j=0;j<n-1;j++);”后面的分號應(yīng)該去掉;當(dāng)a[i]<a[p]時兩元素互換,因此“a[p]=t;”應(yīng)改為“a[j]=t”。
82.voidproc(STRECa[]){inti,j;STRECt;for(i=1;i<M;i++)//用冒泡法來按從高到低排序for(j=0;j<M-1;j++)if(a[j].s<a[j+1].s)//按分?jǐn)?shù)的高低排列學(xué)生的記錄,高分在前{t=a[j];a[j]=a[j+1];a[j+1]=t;}}2021-2022年湖北省咸寧市全國計算機(jī)等級考試C語言程序設(shè)計模擬考試(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.下面程序段的輸出結(jié)果是______。char*s="abcde";s+=2;printf("%d",s);
A.cdeB.字符'c'C.字符'c'的地址D.無確定的輸出結(jié)果
2.軟件詳細(xì)設(shè)計生產(chǎn)的圖如右圖:該圖是()。
A.N—S圖B.PAD圖C.程序流程圖D.E—R圖
3.下列鏈表中,其邏輯結(jié)構(gòu)屬于非線性結(jié)構(gòu)的是()
A.雙向鏈表B.帶鏈的棧C.二叉鏈表D.循環(huán)鏈表
4.
5.對于哈希表,如果將裝填因子α定義為表中裝入的記錄數(shù)與表的長度之比,那么向表中加入新紀(jì)錄時,()
A.α的值隨時沖突次數(shù)的增加而遞減
B.α越大發(fā)生沖突的可能性越大
C.α等于1時不會再發(fā)生沖突
D.α低于0.5時不會發(fā)生沖突
6.算法的空間復(fù)雜度是指()。
A.算法程序的長度B.算法程序中的指令條數(shù)C.算法程序所占的存儲空間D.執(zhí)行算法需要的內(nèi)存空間
7.C語言中的基本數(shù)據(jù)類型所占存儲空間長度的順序是()
A.char<=int<=float<=double<=long
B.int<=char<=float<=long<=double
C.int<=long<=float<=double<=char
D.char<=int<=float<=long<=double
8.若x,y,z均被定義為整數(shù),則下列表達(dá)式能正確表達(dá)代數(shù)式1/(x*y*z)的是()。A.1/x*y*zB.1.0/(x*y*z)C.1/(x*y*z)D.1/x/y/(float)z
9.
10.有以下程序:#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)));}程序運行后的輸出結(jié)果是()。
A.3B.6C.8D.12
11.下面程序的輸出結(jié)果是()。
#include<stdio.h>
main()
{inta[4][5]={1,2,4,-4,5,-9,3,6,-3,2,7,8,4};
inti,j,n;
n=9;
i=n/5;
j=n-i*5-1;
printf("a[%d][%d]=%d\n",i,j,a[i][j]);
}
執(zhí)行后輸出結(jié)果是()。A.A.a[1][3]=6
B.a[1][3]=-3
C.a[1][3]=2
D.不確定
12.
13.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。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
14.定義int*swap()指的是______。
A.—個返回整型值的函數(shù)swap()
B.一個返回指向整型值指針的函swap()
C.一個指向函數(shù)swap()的指針,函數(shù)返回一個整型值
D.以上說法均錯
15.對表進(jìn)行水平方向和垂直方向的分割,分別對應(yīng)的關(guān)系運算是()
A.選擇和投影B.投影和選擇C.選擇和聯(lián)接D.投影和聯(lián)接
16.在下列語句中,其含義為“q是一個函數(shù)指針,該指針指向整型數(shù)據(jù)”的定義語句是()。
A.int**q;B.int(*q);C.int*q;D.int*q;
17.若x和y都是int型變量,x=100,y=200,且有程序片段:printf("%d",(x,y));上面程序片段的輸出結(jié)果()
A.200B.100C.100200D.輸出格式符不夠,輸出不確定的值
18.合法的main函數(shù)命令參數(shù)形式是()。
A.main(inta,char*c[])
B.main(intarc,char**arv)
C.main(intargc,char*argv)
D.main(intargv,char*argc[])
19.
20.有以下程序:#include<stdio.h>intfun(intx){intp;if(x==0||x==1)return(3);p=x-fun(x-2);returnp;}main(){printf(“%d\n”,fun(7));}程序的運行結(jié)果是()。A.2B.3C.7D.0
二、2.填空題(20題)21.對有14個結(jié)點的完全二叉樹的結(jié)點以從上到下、從左到右的順序進(jìn)行編號后,序號最小的葉結(jié)點的序號【】。
22.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
voidfun()
{staticinta=0;
a+=2;printf("%d",a);
}
main()
{intcc;
for(cc=1;cc<4;cc++)fun();
printf("\n");
}
23.以下程序運行后的輸出結(jié)果是【】。
main()
{intp=30;
printf("%dkn",(p/3>0?p/10:p%3));
}
24.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
main()
{inta=1234;
floatb=123.456;
doublec=12345.54321;
printf("\n%2d,%2.1f,%2.11f",a,b,C);
}
25.若a=10,b=20,則表達(dá)式!(a<b)的值是【】。
26.下列程序的輸出結(jié)果是______。
main()
{inta=2,b=4,c=6;
int*p1=&a,*p2=&b,*p;
*(p=&c)=*p1*(*p2);
printf("%d\n",c);
}
27.以下程序運行后的輸出結(jié)果是【】。
main()
{chara[]="Language",b[]="Pragrame";
char*p1,*p2;intk;
p1=a;p2=b;
for(k=0;k<=7;k++)
if(*(p1+k)==*(p2+k))
printf("%c",*(p1+k));
}
28.數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括五個部分,即數(shù)據(jù)項、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、【】和處理過程。
29.以下程序的功能是建立一個帶有頭結(jié)點的單向鏈表,鏈表結(jié)點中的數(shù)據(jù)通過鍵盤輸入,當(dāng)輸入數(shù)據(jù)為-1時,表示輸入結(jié)束(鏈表頭結(jié)點的data域不放數(shù)據(jù),表空的條件是ph->next==NULL),請?zhí)羁铡?/p>
#include<stdio.h>
structlist{intdata;structlist*next;};
structlist*creatlist()
{structlist*p,*q,*ph;inta;ph=(structlist*)malloc(sizeof(structlist));
p=q=ph;printf("Inputanintegernumber;entre-1toend:\n");
scanf("%d",&a);
while(a!=-1)
{p=(structlist*)malloc(sizeof(structlist));
【】=a;q->next=p;【】=p;scanf("%d",&a);}
p->next=′\0;return(ph);}
main()
{structlist*head;head=creatlist();}
30.下面的程序把從終端讀入的文本(用@作為文本結(jié)束標(biāo)志)輸出到一個名為bi.dat的新文件中,請?zhí)羁铡?/p>
#include<stdio.h>
#include<stdlib.h>
FILE*fp;
main()
{charch;
if((fp=fopen(【】))==NULL)exit(0);
while((ch=getchar())!='@')fputc(ch,fp);
fclose(fp);
}
31.下面程序的運行結(jié)果是()。#defineP(A)printf("%d",A)main(){intj,a[]={1,2,3,4,5,6,7},i=5;for(j=3;j>1;j--){switch(j){case1:case2:P(a[i++]);break;case3:P(a[--i]);}}}
32.設(shè)y為血型變量,請寫出描述“y是偶數(shù)”的表達(dá)式______。
33.以下程序中函數(shù)f的功能是在數(shù)組x的n個數(shù)(假定n個數(shù)互不相同)中找出最大最小數(shù),將其中最小的數(shù)與第一個數(shù)對換,把最大的數(shù)與最后一個數(shù)對換。請?zhí)羁铡?/p>
#include<stdio.h>
voidf(intx[],intn)
{intp0,p1,i,j,t,m;
i=j=x[0];p0=p1=0;
for(m=0;m<n;m++)
{if(x[m]>i){i=x[m];p0=m;}
elseif(x[m]<j){j=x[m];p1=m;}
}
t=x[p0];x[p0]=x[n-1];x[n-1]=t;
t=x[p1];x[p1]=【】;【】=t;
}
main()
{inta[10],u;
for(u=0;u<10;u++)scanf("%d",&a[u]);
f(a,10);
for(u=0;u<10;u++)printf("%d",a[u]);
printf("\n");
}
34.以下程序運行后的輸出結(jié)果是______。
main()
{
inta,b,c;
a=25;
b=025;
c=0x25;
printf("%d%d%d\n",a,b,C);
}
35.在運算過程中,能夠使空表與非空表的運算統(tǒng)一的結(jié)構(gòu)是【】。
36.軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。
37.函數(shù)compare的功能是比較兩個字符串是否相等,若相等則函數(shù)返回1,否則返回o,請?zhí)羁铡?/p>
compare(chars[],chart[])
{
inti=0
while(s[i]==t[i]&&【】)i++;
return(【】?1:0);
}
38.語句:x++;++x;x=1/x;執(zhí)行后都使變量x中的值增1,請寫出一條同一功能的賦值語句______。
39.當(dāng)線性表采用順序存儲結(jié)構(gòu)實現(xiàn)存儲時,其主要特點是______。
40.以下程序段的輸出結(jié)果是【】。
inti=9;
prinff("%o\n",i);
三、1.選擇題(20題)41.下列程序輸出的結(jié)果是()。main(){inta;a=-4+4*5-6;printf(“%d”,a);a=4+4%5-6;printf(“%d”,a);a=-3+4%6/5;printf(“%d”,a);a=(7+6)%5/2;printf(“%d”,a);}
A.102-31B.10-221C.11-221D.10221
42.以下程序的輸出結(jié)果是________。#include<stdio.h>mam(){inta,b,d=241;a=d/100%9;b=(-1)&&(-1);printf("%d,%d\n",a,B);}
A.6,1B.2,1C.6,0D.2,0
43.設(shè)下面程序的可執(zhí)行文件名為prg.exe,在該程序所在子目錄下輸入以下命令行:prghellogood<回車>則程序的輸出結(jié)果是______。main()(intargc,char*argv[]){inti;if(argc<=0)return;for(i=1;i<argc;i++)printf("%c",*argv[i]);}
A.hellogoodB.hgC.helD.hellogood
44.設(shè)已包含頭文件<string.h>,下列程序段的運行結(jié)果是()。chars1[]={"ACDEF"};chars2[]="ABC";strcpy(s1,s2);printf("%d",strlen(s1));
A.3B.4C.6D.5
45.C語言中while循環(huán)和do-while循環(huán)的主要區(qū)別是______。
A.do-while的循環(huán)體至少無條件執(zhí)行一次
B.while的循環(huán)控制條件比do-while的循環(huán)控制條件嚴(yán)格
C.do-while允許從外部轉(zhuǎn)到循環(huán)體內(nèi)
D.do-while的循環(huán)體不能是復(fù)合語句
46.執(zhí)行下面程序的結(jié)果是______。main(){intx=2;printf("%d\n",(x--,x<<1,x&&5));}
A.0B.1C.2D.編譯時有語法錯誤,不能執(zhí)行
47.已知下列函數(shù)定義:fun(int%,intc,intn,intdatA){intk;for(k=0;k<m*n;k++){*b=data;b++;}}則調(diào)用此函數(shù)的正確寫法是(假設(shè)變量a的說明為inta[50])()。
A.fun(*a,4,5,1);
B.fun(&a,4,5,1);
C.fun((int*)a,4,5,1);
D.fun(a,4,5,1);
48.模塊本身的內(nèi)聚是模塊獨立性的重要性度量因素之一。在7類內(nèi)聚中,具有最強(qiáng)內(nèi)聚的一類是__________。
A.順序性內(nèi)聚B.過程性內(nèi)聚C.邏輯性內(nèi)聚D.功能性內(nèi)聚
49.若有下列說明,則()不是對strcpy庫函數(shù)的正確的調(diào)用。strcpy庫函數(shù)用于復(fù)制一個字符串:char*strl="abcd",str2[10],*str3="hijklmn",*str4[2],*str5="aaaa";
A.languageB.lnugC.有語法錯誤D.lang
50.數(shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的()。
A.存儲問題B.共享問題C.安全問題D.保護(hù)問題
51.有以下程序:main(){inta=1,b=2,m=0,n=0,k;k=(n=b>a)||(m=a>b);printf("%d,%d\n"m,k,m);}程序運行后的輸出結(jié)果是()。
A.0,0B.O,1C.1,0D.1,1
52.sizeof(float)是______。
A.一種函數(shù)調(diào)用B.一個雙精度型表達(dá)式C.一個整型表達(dá)式D.一個不合法的表達(dá)式
53.以下非法的賦值語句是
A.n=(i=2,++i);B.j++;C.++(i+1);D.x=j>0;
54.在“文件包含”預(yù)處理語句的使用形式中,當(dāng)#include后面的文件名用"",(雙撇號)括起時,尋找被包含文件的方式是()。
A.直接按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索目錄
B.先在源程序所在的目錄搜索,如沒找到,再按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索
C.僅僅搜索源程序所在目錄
D.僅僅搜索當(dāng)前目錄
55.下列程序的輸出結(jié)果是()。
main()
{intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;
while(i++<7)
if(p[i]%2)j+=p[i];
printf("%dXn",j);}
A.42B.45C.56D.60
56.以下程序的輸出結(jié)果是______。#include<stdio.h>voidprt(int.*x,int*y,int*z){printf("%d,%d,%d\n",++*x,++*y,*(z++));}inta=10,b=40,c=20;main(){prt(&a,&b&c);prt(&a,&b,&c);}
A.11,42,3112,22,41
B.11,41,2012,42,20
C.11,21,4011,21,41
D.11,41,2112,42,22
57.對一個關(guān)系投影操作以后,新關(guān)系的元組個數(shù)______原來關(guān)系的元組個數(shù)。
A.小于B.小于或等于C.等于D.大于
58.下面函數(shù)的功能是char*fun(char*strl,char*str2){while((*strl)&&(*str2++=*strl++));returnstr2;}
A.求字符串的長度
B.比較兩個字符串的大小
C.將字符串str1復(fù)制到字符串str2中
D.將字符串str1接續(xù)到字符串str2中
59.有以下程序:#include<stdio.h>main(){charc1,c2,c3,c4,c5,c6;scanf(%c%c%c%c,&c1,&c2,&c3,&c4);c5=getchar();c6=getchar();putchar(c1);putchar(c2);printf(%c%c\n,c5,c6);}程序運行后,若從鍵盤輸入(從第1列開始)123<回車>45678<回車>則輸出結(jié)果是()。
A.1267B.1256C.1278D.1245
60.以下程序的輸出結(jié)果是main(){charcf[3][5]={"AAAA","BBB","CC"};printf("\"%s\"\n",cf[1]);;}
A.AAAAB.BBBC.BBBCCD.CC
四、選擇題(20題)61.
以下程序的輸出結(jié)果是()。
main
{inti;
for(i=0;i<3;i++)
switch(i){case0:printf("%d",i);
case2:printf("%d",i);
default:printf("%d",i);
}
}
A.000102B.000020C.000122D.000111
62.有以下定義和語句
63.#define能作簡單的替代,用宏來替代計算多項式5*x*x+5*x+5的值的函數(shù)f,正確的宏定義語句為()。
A.#definef(x)5*x*x+5*x+5
B.#definef5*X*x+5*x+5
C.#definef(a)(5*a*a+5*a+5)
D.#define(5*x*x+5*x+5)f(x)
64.
65.以下敘述中錯誤的是()。
A.用戶所定義的標(biāo)識符允許使用關(guān)鍵字
B.用戶所定義的標(biāo)識符應(yīng)盡量做到“見名識意”
C.用戶所定義的標(biāo)識符中,大、小寫字母代表不同標(biāo)識
D.用戶所定義的標(biāo)識符必須以字母或下劃線開頭
66.下述程序執(zhí)
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年川北幼兒師范高等??茖W(xué)校單招職業(yè)技能考試參考題庫含詳細(xì)答案解析
- 2026年潞安職業(yè)技術(shù)學(xué)院單招職業(yè)技能考試模擬試題含詳細(xì)答案解析
- 2026年1月浙江杭州市上城區(qū)教育局所屬事業(yè)單位招聘教師40人參考考試試題及答案解析
- 2026年河南科技職業(yè)大學(xué)單招綜合素質(zhì)考試模擬試題含詳細(xì)答案解析
- 2026年眉山職業(yè)技術(shù)學(xué)院單招綜合素質(zhì)筆試參考題庫含詳細(xì)答案解析
- 2026年重慶工貿(mào)職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測試備考題庫及答案詳細(xì)解析
- 2026年銀川能源學(xué)院單招綜合素質(zhì)筆試備考題庫含詳細(xì)答案解析
- 2026年遼寧城市建設(shè)職業(yè)技術(shù)學(xué)院單招綜合素質(zhì)筆試模擬試題含詳細(xì)答案解析
- 2026云南臨滄市臨翔區(qū)人民法院聘用制書記員招聘11人備考考試題庫及答案解析
- 2026年徐州生物工程職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測試備考試題及答案詳細(xì)解析
- 康養(yǎng)醫(yī)院企劃方案(3篇)
- 東華小升初數(shù)學(xué)真題試卷
- 2025年成都市中考化學(xué)試題卷(含答案解析)
- 中泰飲食文化交流與傳播對比研究
- QGDW11486-2022繼電保護(hù)和安全自動裝置驗收規(guī)范
- 2025招商局集團(tuán)有限公司所屬單位崗位合集筆試參考題庫附帶答案詳解
- 寧夏的伊斯蘭教派與門宦
- 山東師范大學(xué)期末考試大學(xué)英語(本科)題庫含答案
- 抖音本地生活服務(wù)商培訓(xùn)體系
- 茶葉中的化學(xué)知識
- 唐河縣泌陽凹陷郭橋天然堿礦產(chǎn)資源開采與生態(tài)修復(fù)方案
評論
0/150
提交評論