




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2022年山東省聊城市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級:________姓名:________考號:________一、單選題(20題)1.下列代碼的復(fù)雜度是多少?如果多于1個答案正確,選擇最小的那個。()A.O(n*m*m)B.O(n*log(m)*m)C.O(n+m+m)D.O(n*m)
2.二維數(shù)組A的每個元素是由6個字符組成的串,其行下標(biāo)i=0,1,…,8,列下標(biāo)j=1,2,…,10。若A按行先存儲,元素A[8][5]的起始地址與當(dāng)A按列先存儲時的元素()的起始地址相同。設(shè)每個字符占一個字節(jié)。
A.A[8][5]B.A[3][10]C.A[5][8]D.A[0][9]
3.
4.若變量已正確定義為int型,要通過語句“scanf(“%d,%d,%d”,&a,&b,&c);”將a賦值為1、將b賦值為2、將c賦值為3,以下輸入形式中錯誤的是(注:□代表一個空格符)()。
A.1,2,3<Enter>
B.□□□1,2,3<Enter>
C.1,□□□2,□□□3<Enter>
D.1□2□3<Enter>
5.有以下程序:#include<stdio.h>intf(intx):main{intn=1,m;m=f(f(f(n)));printf("%d\n",m);}intf(intx){returnx*2;)程序運(yùn)行后的輸出結(jié)果是()。A.1B.2C.4D.8
6.成功的測試是指A.A.運(yùn)行測試實(shí)例后未發(fā)現(xiàn)錯誤
B.發(fā)現(xiàn)程序的錯誤
C.證明程序正確
D.軟件產(chǎn)生
7.下列關(guān)系模型中,能使經(jīng)運(yùn)算后得到的新關(guān)系中屬性個數(shù)多于原來關(guān)系中屬性個數(shù)的是
A.選擇B.連接C.投影D.并
8.以下有4組用戶標(biāo)識符,其中合法的一組是()。
A.FOr-subCase
B.4dDOSize
C.f2_G3IFabc
D.WORDvoiddefine
9.已知廣義表:A=(a,b),B=(A,A),C=(a,(b,A),B),tail(head(tail(C)))的運(yùn)算結(jié)果是()。
A.(a)B.AC.aD.(A)
10.以下敘述錯誤的是()。
A.算術(shù)運(yùn)算符中不包含“=”運(yùn)算符
B.模運(yùn)算符“%”是c語言基本的算術(shù)運(yùn)算符
C.算術(shù)運(yùn)算符中只有“*”、“/”優(yōu)先級高于關(guān)系運(yùn)算符
D.自加和自減運(yùn)算符只能用于變量,而不能用于常量或表達(dá)式
11.有以下程序:#include<stdio.h>main(){charv[4][10];inti;for(i=0;i<4;i++)scanf(“%s”,v[i]);printf(“%c,%s,%s,%c”,**v,*(v+1),v[3]+3,*(v[2]+1));}程序運(yùn)行時輸入welcomeyoutobeijing并按<Enter>鍵,則輸出結(jié)果是()。
A.w,youjing,o
B.welcome,you,jing,to
C.w,you,eeijing,u
D.w,xelcome,eeijing,u
12.若有定義“chars1[100]=“name”,s2[50]=“address”,s3[80]=“person”;”,要將它們連接成新串“personnameaddress”,正確的函數(shù)調(diào)用語句是()。
A.strcat(strcat(s1,s2),s3);
B.strcat(s3,strcat(s1,s2);
C.strcat(s3,strcat(s2,s1);
D.strcat(strcat(s2,s1),s3);
13.下列SQL語句中,用于修改表結(jié)構(gòu)的命令式是A.A.Alter
B.Create
C.Update
D.Insert
14.下列敘述中正確的是()。
A.測試工作必須由程序編制者自己完成
B.測試用例和調(diào)試用例必須一致
C.一個程序經(jīng)調(diào)試改正錯誤后,一般不必再進(jìn)行測試
D.上述三種說法都不對
15.
16.當(dāng)執(zhí)行下面的程序時,如果輸入ABC,則輸出結(jié)果是()#include<stdio.h>#include<string.h>main(){charss[10]="12345";gets(ss);strcat(ss"6789");printf("%s\n",ss);}
A.ABC6789B.ABC67C.12345ABC6D.ABC456789
17.有以下程序:#include<stdio.h>main(){chara==‘0’,b=‘A’;inti;for(i=1;i<6;i++)if(i%2==0)putchar(a+i);elseputchar(b+i);}程序運(yùn)行后的輸出結(jié)果是()。
A.A2A3BB.2B4DFC.B4CD7D.B2D4F
18.下列二維數(shù)組的說明中,不正確的是()。
A.floata[][4]={0,1,8,5,9};
B.inta[3][4]
C.#defineN5floata[N][3]
D.inta[2][9.5];
19.對于n個元素,下列哪種操作時間復(fù)雜度不是O(nlogn)()
A.凸包計(jì)算B.LC搜索C.有序序列數(shù)字查找D.基于比較的排序
20.
二、2.填空題(20題)21.判定表和判定樹是以圖文形式描述數(shù)據(jù)流圖的【】
22.以下程序運(yùn)行后的輸出結(jié)果是【】。
#include<stdio,h>
main()
{chara[]="Language",b[]:"Programe";
char*pl,*p2;intk;
p1=a;p2=b;
for(k=0;k<=7;k++)
if(*(p1+k)==*(p2+k))printf("%c",*(pi+k));
}
23.以下程序運(yùn)行時若從鍵盤輸入:102030<回車>。輸出結(jié)果是【】。
#include<stdio.h>
main()
{
inti=0,j=0,k=0;
scanf("%d%*d%d",&i,&j,&k);
printf("%d%d%d\n",i,j,k);
}
24.下列程序的輸出結(jié)果是______。
main()
{inta[]={31,27,20,12,6,1),*p=a;
p++;
printf("%d\n",*(p+2));
}
25.已知字符A的ACSII碼值為65,以下語句的輸出結(jié)果是______。
charch='B';
printf("%c%d\n",ch,ch);
26.下列程序中字符串中各單詞之間有一個空格,則程序的輸出結(jié)果是【】。
#include<string.h>
main()
{charstr1[]="Howdoyoudo",*p1=str1;
strcpy(str1+strlen(str1)/2,"eshe");
printf("%s\n",p1);
}
27.結(jié)構(gòu)化程序設(shè)計(jì)的3種基本結(jié)構(gòu)分別是順序、選擇和______。
28.下面程序的運(yùn)行結(jié)果是【】。
main()
{inty,a;
y=2,a=1;
while(y--!=-1)
{do{a*=y;a++;}while(y--);}
printf("%d,%d",a,y);}
29.若變量n中的值為24,則prnt函數(shù)共輸出【】行。
voidprnt(intn,intaa[])
{inti;
for(i=1;i<=n;i++)
{printf("%6d",aa[i]);
if!(i%5))printf("\n");
}
printf("\n");
}
30.計(jì)算圓的周長、面積和球體積。
#definePI3.1415926
#define【】L=2*PI*R;【】;V=4.0/3.0*PI*R*R*R
main()
{floatr,l,s,v;
printf("inputaradus:");
scanf("%f",&r);
CIRCLE(r,l,s,v);
printf("r=%.2f\nl=%.2f\ns=%.2f\nv=%.2f\n",【】);
}
31.僅依據(jù)規(guī)格說明書描述的程序功能來設(shè)計(jì)測試實(shí)例的方法稱為【】。
32.在對文件進(jìn)行操作的過程中,若要求指針的位置回到文件的開頭,應(yīng)當(dāng)調(diào)用的函數(shù)是【】。
33.下列程序的輸出結(jié)果是【】。
main()
{inta=1,b=2;
a=a+b;b=a-b,a=a-b;
printf("%d,%d\n",a,b);
}
34.在數(shù)據(jù)的存儲結(jié)構(gòu)中,不僅需要存儲各數(shù)據(jù)元素的信息,還要存放各元素之間______的信息。
35.某二叉樹中度為2的結(jié)點(diǎn)有n個,則該二叉樹中有【】個葉子結(jié)點(diǎn)。
36.在使用putchar和getchar函數(shù)處理字符時,必須在程序的開頭出現(xiàn)包含頭文件的命令行是【】。
37.數(shù)據(jù)庫的邏輯模型設(shè)計(jì)階段的任務(wù)是將______轉(zhuǎn)換成關(guān)系模式。
38.數(shù)據(jù)庫設(shè)計(jì)分為以下6個設(shè)計(jì)階段:需求分析階段、______、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、實(shí)施階段、運(yùn)行和維護(hù)階段。
39.以下程序的輸出結(jié)果是【】。
main()
{
intp[7]=(11,13,14,15,16,17,18};
inti=0,j=0;
while(i<7&&p[i]%2==1)j+=p[i++];
printf("%d\n",j);
}
40.以下函數(shù)的功能是計(jì)算請?zhí)羁铡?/p>
doublefun(intn)
{doubles=0.0,fac=1.0;inti;
for(i=1;i<=n;i++)
{fac=fac【】;
s=s+fac;
}
returns;
}
三、1.選擇題(20題)41.C語言中各種基本數(shù)據(jù)類型的存儲空間長度排列為()
A.char≤long≤int≤float≤double
B.double≤float≤long≤int≤char
C.char≤int≤long≤float≤double
D.float≤int≤long≤char≤double
42.下列程序的運(yùn)行結(jié)果是()。main(){intx=1,y=3,a=0;while(x++!=(y-=1)){a+=1;if(y<x)break;}printf("%d,%d,%d\n",x,y,a);}
A.2,3,2B.2,3,1C.1,3,3D.3,1,2
43.下列說法正確的是()。
A.一個C程序可以有多個主函數(shù)
B.一個C語言的函數(shù)中只允許有一對花括號
C.C程序的書寫格式是自由的,一個語句可以寫在一行上,也可以寫在多行內(nèi)
D.在對C程序進(jìn)行編譯時,可以發(fā)現(xiàn)注釋行中的拼寫錯誤
44.以下函數(shù)值的類型是_______。fun(floatx){floaty;y=3*x-4;returny;}
A.intB.不確定C.voidD.float
45.fseek函數(shù)是C語言系統(tǒng)提供的標(biāo)準(zhǔn)庫函數(shù),其實(shí)現(xiàn)的具體操作是______。
A.實(shí)現(xiàn)文件的順序讀寫B(tài).實(shí)現(xiàn)文件的隨機(jī)讀寫C.改變文件的位置指針D.以上答案均不正確
46.已定義c為字符型變量,則下列語句中正確的是()。
A.c='97'B.c="97"C.c=97D.c="a"
47.有以下程序:#include<stdio,h>main(){intk=5,n=0;while(k>0){switch(k){default:break;case1:n+=k;case2:case3:n+=k;}k--;printf("%d\n",n);}程序運(yùn)行后的輸出結(jié)果是()。
A.0B.4C.6D.7
48.有以下程序: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("%d\n",j);}程序運(yùn)行后的輸出結(jié)果是______。
A.42B.45C.56D.60
49.有以下程序:voidf(int*q){inti=0;for(;i<5;i++)(*q)++;}main(){inta[5]={1,2,3,4,5},i;f(A);for(i=0;i<5;i++)printf("%d,",a[i]);}程序運(yùn)行后的輸出結(jié)果是()。
A.2,2,3,4,5,B.6,2,3,4,5,C.1,2,3,4,5,D.2,3,4,5,6,
50.下列能正確定義且賦初值的語句是()。
A.intn1=n2=10;
B.charc=32;
C.floatf=f+1.1;
D.doublex=12.3E2.5;
51.以下能正確定義一維數(shù)組的選項(xiàng)是
A.inta[5]={0,1,2,3,4,5}
B.chara[]={'0','1','2','3','4','5','\0'};
C.chara={'A','B','C'};
D.inta[5]="0123";
52.下面程序運(yùn)行后的輸出結(jié)果是______。fut(int**s,intp[2][3]){**s=p[1][1];}main(){inta[2][3]={1,3,5,7,9,11},*p;p=(int*)malloc(sizeof(int));fut(&p,a);printf("%d\n",*p);}
A.1B.7C.9D.11
53.在C語言程序中,下列說法正確的是()。
A.函數(shù)的定義和函數(shù)的調(diào)用均可以嵌套
B.函數(shù)的定義不可以嵌套,但函數(shù)的調(diào)用可以嵌套
C.函數(shù)的定義可以嵌套,但函數(shù)的調(diào)用不可以嵌套
D.函數(shù)的定義和函數(shù)的調(diào)用均不可以嵌套
54.fseek函數(shù)的正確調(diào)用形式是()。
A.fseek(文件指針,起始點(diǎn),位移量)
B.fseek(文件指針,位移量,起始點(diǎn))
C.fseek(位移量,起始點(diǎn),文件指針)
D.fseek(起始點(diǎn),位移量,文件指針)
55.棧和隊(duì)列的共同點(diǎn)是()。
A.都是先進(jìn)后出B.都是先進(jìn)先出C.只允許在端點(diǎn)處插入和刪除元素D.沒有共同點(diǎn)
56.下列程序的輸出結(jié)果是()。#include<stdio.h>voidmain(){intb[6]={2,4,6,8,10,12};int*p--b,**q=&p;printf("%d",*(p++));printf("%d",**q);}
A.*p=&a;scanf("%1f",p);
B.*p=&a;scanf("%f",p);
C.p=&a;scanf("%1f",*p);
D.p=&a;scanf("%1f",p);
57.下面程序的輸出結(jié)果是main(){charstr[10],c='a';inti=0;for(;i<5;i++)str[i]=c++;printf("%s",str);}
A.abcdeB.aC.不確定D.bcdef
58.下列程序是用來判斷數(shù)組中特定元素的位置所在的。#include<conio.h>#include<stdio.h>intfun(int*s,intt,int*k){inti;*k=0;for(i=0;i<t;i++)if(s[*k]<s[i])*k=i;returns[*k];}main(){inta[10]={876,675,896,101,301,401,980,431,451,777},k;fun
A.7,431B.6C.980D.6,980
59.下述對C語言字符數(shù)組的描述中錯誤的是()
A.字符數(shù)組可以存放字符串
B.字符數(shù)組中的字符串可以整體輸入、輸出
C.可以在賦值語句中通過賦值運(yùn)算符“=”對字符數(shù)組整體賦值
D.不可以用關(guān)系運(yùn)算符對字符數(shù)組中的字符串進(jìn)行比較
60.下列程序運(yùn)行后,輸出結(jié)果是______。func(inta,intb){staticintm=0,i=2;i+=m+1;m=i+a+b;return(m);}main(){intk=4,m=1,p;p=func(k,m);printf("%d,",p);p=func(k,m);printf("%d\n",p);}
A.8,15B.8,16C.8,17D.8,8
四、選擇題(20題)61.讀出以下語句的輸出結(jié)果是()。
intx=10,y=10;
printf(“%d%d\n”,x--,--y);
A.1010B.99C.910D.109
62.若有下面說明和定義:
structtest
{intm1;charm2;floatm3;
unionuu(charu1[5];intu2[2];)ua;
}myaa;
則sizeof(structtest)的值是()。
A)20B)16
C)14D)9
63.以下程序的輸出結(jié)果是()。
A.1B.7C.9D.13
64.若有定義語句:inta[21[3],*P[3];則以下語句中正確的是()。
A.p:a;B.p[0]=a;C.p[O]=&a[1][2];D.1a[1]=&a;
65.
66.
67.有以下程序:
I程序運(yùn)行后的輸出結(jié)果是()。
A.0B.3C.7D.8
68.
69.下列函數(shù)的功能是()。
A.將a所指字符串賦給b所指空間
B.使指針b指向a所指字符串
C.將a所指字符串和b所指字符串進(jìn)行比較
D.檢查a和b所指字符串中是否有‘、O’
70.
有以下程序:
main
{inti,j;
for(j=10;j<11;j++)
{for(i=9;i<j;i++)
if(!(j%i))break;
if(i==j-1)
printf("%d",j);
}
}
輸出結(jié)果是()。
A.11B.10C.9D.1011
71.有三個關(guān)系R、S和T如下:
則由關(guān)系R和S得到關(guān)系T的操作是()。
A.自然連接B.交C.投影D.并
72.有以下程序:
注意:字母a的ASCIl碼值為97,程序運(yùn)行后的輸出結(jié)果是()。
A.dB.goC.godD.good
73.(50)數(shù)據(jù)庫概念設(shè)計(jì)的過程中,視圖設(shè)計(jì)一般有三種設(shè)計(jì)次序,以下各項(xiàng)中不對的是()
A.自頂向下
B.由底向上
C.由內(nèi)向外
D.由整體到局部
74.
75.
76.下列關(guān)于C語言文件的敘述中正確的是()。
A.文件由一系列數(shù)據(jù)依次排列組成,只能構(gòu)成二進(jìn)制文件
B.文件由結(jié)構(gòu)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件
C.文件由數(shù)據(jù)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件
D.文件由字符序列組成,其類型只能是文本文件
77.設(shè)有下列二叉樹:對此二叉樹前序遍歷的結(jié)果為()
A.ZBTYCPXAB.ATBZXCYPC.ZBTACYXPD.ATBZXCPY
78.以下選項(xiàng)中,與k=n++完全等價的表達(dá)式是A.k=n,n=n+1B.n=n+1,k=nC.k=++nD.k+=n+1
79.以下選項(xiàng)錯誤的是
80.
程序運(yùn)行后的輸出結(jié)果是()。A.1002,ZhangDa,1202.0
B.1002,ChangRon9。1202.0
C.1001,ChangRon9,1098.0
D.1001,ZhangDa,1098.0
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:計(jì)算S=f(-n)+(-n+1)+…+f(O)+f(1)+(2)+…+f(n)的值。例如,當(dāng)n為l0時,函數(shù)值應(yīng)為22.550361。f(x)函數(shù)定義如下:請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計(jì)題(1題)82.有N個學(xué)生,每個學(xué)生的信息包括學(xué)號、性別、姓名、四門課的成績,從鍵盤上輸入N個學(xué)生的信息,要求輸出總平均成績最高的學(xué)生信息,包括學(xué)號、性別、姓名和平均成績。
參考答案
1.D
2.A
3.D
4.D在輸入整數(shù)或?qū)崝?shù)這類數(shù)值型數(shù)據(jù)時,輸入數(shù)據(jù)之間必須用空格、回車符、制表符等間隔符隔開,間隔符個數(shù)不限。scanf的格式控制字符串也可以使用其他非空白字符,如本題中的逗號,但在輸入時必須輸入這些字符,以保證匹配,所以逗號必須輸入。故本題答案為D選項(xiàng)。
5.D本題考查函數(shù)返回值作參數(shù),最初n=1,f(n)=f(1)=2,將f(n)的結(jié)果代入第二個f(n)中,即f(f(n))=f(2)=4,所以f(f(f(f(n))))=f(4)=8。
6.B軟件測試的目的主要有以下幾個方面。
(1)軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。
(2)一個好的測試用例能夠發(fā)現(xiàn)至今尚未發(fā)現(xiàn)的錯誤。
(3)一個成功的測試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯誤的測試。
另外,即使經(jīng)過了最嚴(yán)格的測試,可能仍然還有沒被發(fā)現(xiàn)的錯誤藏在程序中,測試只是找出程序中的錯誤,不能證明程序中沒有錯誤。
7.B解析:本題主要考查關(guān)系模型中幾種運(yùn)算的特征。經(jīng)過選擇或投影運(yùn)算得到的新關(guān)系的屬性個數(shù)最多不會超過原關(guān)系中的屬性個數(shù)。經(jīng)過連接運(yùn)算得到的新關(guān)系最多不少于原關(guān)系中屬性的個數(shù)。故選項(xiàng)B正確。
8.C解析:選項(xiàng)A中for和case為C語言中的保留字,不能作為用戶標(biāo)志符,故A錯誤。選項(xiàng)B中的4d其開頭的第一個為數(shù)字,而在C語言中規(guī)定,第一個字符必須為字母或者下劃線,故B錯誤;選項(xiàng)D中void為C語言中的保留字,不能作為用戶標(biāo)志符,故D錯誤。所以,4個選項(xiàng)中選項(xiàng)C符合題意。
9.D
10.C
11.A題干中,定義一個二維字符數(shù)組v。然后通過for循環(huán),輸入4個字符串welcome、you、to、beijing,將其分別存放在v的4個元素中。數(shù)組v是存放4個字符串的二維數(shù)組;“**v”表示第1個字符串的第一個字符“w”;“*(v+1)”指向第2個字符串“you”;“v[3]+3”指向第4個字符串的第3個字符開始后的整個字符串“jing”;“*(v[2]+1)”表示第3個宇符串的第2個字符“o”。故本題答案為A選項(xiàng)。
12.Bstrcat函數(shù)是字符串連接函數(shù),調(diào)用形式為strcat(s1,s2)。其功能是將s2指向的字符串的內(nèi)容連接到s1指向的存儲空間中,并返回s1的地址。由題意可知,新串首地址為s3,所以s3應(yīng)該是第一參數(shù),選項(xiàng)A、D錯誤。同理,新串中除了S3所指的字符串,剩下的字符串為“nameaddress”,即首地址為s1,所以調(diào)用strcat函數(shù),s1是第一參數(shù)。所以正確的函數(shù)調(diào)用語句為“strcat(s3,strcat(s1,s2))”。故本題答案為B選項(xiàng)。
13.A本題主要考查SQL中一些基本的命令。SQL常用的語句包括:Select、Insert、Update、Delete、Create、Alter和Drop等。
在SQL語言中使用率最高的是Select,這個命令的作用是從表中查找出滿足條件的記錄。
Insert命令的作用是對數(shù)據(jù)表進(jìn)行插入操作。
Update命令的作用是對數(shù)據(jù)表進(jìn)行更新操作。
Delete命令的作用是對數(shù)據(jù)表中的數(shù)據(jù)進(jìn)行刪除操作。
Create命令的作用是創(chuàng)建數(shù)據(jù)表。
Alter命令的作用是修改表的結(jié)構(gòu)。
Drop命令的作用是用來刪除表,它與Delete的區(qū)別是進(jìn)行Drop操作后,數(shù)據(jù)表不存在了,而進(jìn)行Delete操作后,數(shù)據(jù)表還在,只是數(shù)據(jù)被刪除了。
14.D解析:測試不是為了證明程序是正確的,而是在設(shè)想程序有錯誤的前提下進(jìn)行的,其目的是設(shè)法暴露程序中的錯誤和缺陷,一般應(yīng)當(dāng)避免由開發(fā)者測試自己的程序,因此,選項(xiàng)A錯誤;測試是為了發(fā)現(xiàn)程序錯誤,不能證明程序的正確性,調(diào)試主要是推斷錯誤的原因,從而進(jìn)一步改正錯誤,調(diào)試用例與測試用例可以一致,也可以不一致,選項(xiàng)B錯誤;測試發(fā)現(xiàn)錯誤后,可進(jìn)行調(diào)試并改正錯誤:經(jīng)過調(diào)試后的程序還需進(jìn)行回歸測試,以檢查調(diào)試的效果,同時也可防止在調(diào)試過程中引進(jìn)新的錯誤,選項(xiàng)C錯誤。
15.B
16.A
17.D程序首先定義字符變量a并賦初值‘0’,定義字符變量b并賦初值‘A’。然后執(zhí)行for循環(huán),當(dāng)i為偶數(shù)時,輸出字符“a+i”;當(dāng)i為奇數(shù)時,輸出字符“b+i”。因?yàn)閿?shù)字和字母的ASCII值都是按順序遞增的,所以本題輸出為B2D4F。故本題答案為D選項(xiàng)。
18.D解析:C語言規(guī)定,對于二維數(shù)組,只可以省略第一個方括號中的常量表達(dá)式,而不能省略第二個方括號中的常量表達(dá)式:二維數(shù)組的一般定義格式是:類型說明符數(shù)組名[常量表達(dá)式][常量表達(dá)式]。
19.C
20.B
21.判定樹、判定表判定樹、判定表
22.gaegae解析:本題考查字符指針變量與字符數(shù)組。for循環(huán)語句共循環(huán)8次:
①當(dāng)k=0時,*(Pl+0)='L',*(p2+0)='P',L!=P,沒有輸出。
②當(dāng)k=1時,*(p1+1)='a',*(p2+1)='r',a!=r,沒有輸出。
③當(dāng)k=2時,*(p1+2)='n',*(p2+2)='o',n!=o,沒有輸出。
④當(dāng)k=3時,*(P1+3)='g',*(p2+3)='g',g==g,所以輸出g。
⑤當(dāng)k=4時,*(p1+4)='u',*(P2+4)='r',u!=r,沒有輸出。
⑥當(dāng)k=5時,*(p1+5)='a',*(p2+5)='a',a==a,所以輸出a。
⑦當(dāng)k=6時,*(p1+6)='g',*(p2+6)='m',g!=m,沒有輸出。
⑧當(dāng)k=7時,*(p1+7)='e',*(p2+7)='e',e==e,輸出e。
⑨當(dāng)k=8時結(jié)束循環(huán),輸出結(jié)果為:gae。
23.1030010300解析:本題的scanf()函數(shù)要求用戶輸入三個十進(jìn)制整數(shù),但只接受第一和第三個到函數(shù)的第二和第三個參數(shù)所指的內(nèi)存地址中。所以本題的輸出為:10300。
24.1212解析:本題考查如何用指針引用數(shù)組元素。分析程序,首先定義了一個指向數(shù)組a的指針p,p指向數(shù)組的首地址,通過p++,將p指向a[1],p+2是將指針后移2位指向a[3],*(p+2)即是取a[3]的值12。
25.B66B66解析:printf函數(shù)的功能是按照指定的格式,在標(biāo)準(zhǔn)輸出設(shè)備上輸出數(shù)據(jù),它有兩種參數(shù):格式控制參數(shù)和輸出項(xiàng)參數(shù)。本題中,printf('%c%d\\n',ch,ch)表示以字符格式和十進(jìn)制整數(shù)格式輸出ch,B的ACSII碼值為66,即在計(jì)算機(jī)中B的十進(jìn)制整數(shù)格式是66。所以,輸出為B66。
26.HowdoesheHowdoeshe解析:本題的關(guān)鍵在于表達(dá)式str1+strlen(str1)/2,注意“/”的用法,可得str1+13/2=str1+6。
27.重復(fù)(循環(huán))重復(fù)(循環(huán))解析:結(jié)構(gòu)化程序設(shè)計(jì)包括3種基本的結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)和重復(fù)結(jié)構(gòu)(循環(huán)結(jié)構(gòu)),利用這3種結(jié)構(gòu)就足以表達(dá)出各種其他形式結(jié)構(gòu)的程序設(shè)計(jì)方法。其中利用循環(huán)結(jié)構(gòu),可以簡化大量的程序執(zhí)行。
28.1-21,-2解析:題中外層while循環(huán)的循環(huán)條件是y--!=-1,即y>=0;內(nèi)層do…while循環(huán)的循環(huán)條件是y--即y-->0,y>=1。注意:break和continue語句在循體中的作用。
29.55解析:本題的關(guān)鍵在于if(!(i%5))printf('\\n),這句,即如果i可被5整除時,則換行。i值為24,可以被5整除4次,并余4,因此,prnt函數(shù)共輸出5行,最后一行有4個數(shù)。
30.CIRCLE(RLSV)S=PI*R*Rr1sv
31.黑箱法黑箱法
32.rewindrewind解析:庫函數(shù)rewind()的作用是使文件位置指針重新返回文件的開頭,所以本題應(yīng)該填rewind。
33.21
34.前后件關(guān)系前后件關(guān)系解析:在數(shù)據(jù)存儲結(jié)構(gòu)中,除了要存儲數(shù)據(jù),還要存儲數(shù)據(jù)的前后件關(guān)系,對于順序存儲的數(shù)據(jù)結(jié)構(gòu),前后件之間的關(guān)系,是通過存儲空間的位置來實(shí)現(xiàn)的,而對于鏈?zhǔn)酱鎯碚f,數(shù)據(jù)元素之間的前后件關(guān)系是通過指針來實(shí)現(xiàn)的。
35.n+1n+1解析:在任意一棵二叉樹中,度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為0的結(jié)點(diǎn)多一個。
36.#include"stdio.h"#include'stdio.h'解析:使用putchar和getchar函數(shù)時,必須在程序的開頭出現(xiàn)包含頭文件#include'stdio.h'的命令行。putchar的函數(shù)調(diào)用形式為:putchar(字符變量或字符常量);getchar函數(shù)的調(diào)用形式為:變量=getchar();getchar后的一對圓括號內(nèi)沒有參數(shù),但這一對圓括號不可少。
37.E-R圖E-R圖解析:數(shù)據(jù)庫邏輯設(shè)計(jì)的任務(wù)是將概念模型進(jìn)一步轉(zhuǎn)化成相應(yīng)的數(shù)據(jù)模型。而E-R圖是主要的概念模型,因此數(shù)據(jù)庫的邏輯設(shè)計(jì)的主要工作是將E-R圖轉(zhuǎn)換成關(guān)系模式。
38.概念設(shè)計(jì)階段(數(shù)據(jù)庫概念設(shè)計(jì)階段)概念設(shè)計(jì)階段(數(shù)據(jù)庫概念設(shè)計(jì)階段)
39.2424解析:本題程序定義了一維數(shù)組p,有七個數(shù)組元素,整型變量i,j初值分別為0,當(dāng)while的條件表達(dá)式(i<7&&p[i]%2=1)的值為真時,執(zhí)行語句j+=p[i++];,如:當(dāng)i=0時,i<7為真,p[i]%2=11%2=1,表達(dá)式(p[i]%2=1)的值為真,所以接個表達(dá)式(i<7&&p[i]%2=1的值為真,執(zhí)行j=j+p[i++]=0+11=11,i=1;,依此類推可以得出答案24。
40./i或*(1.O/i)或/(double)i/i或*(1.O/i)或/(double)i解析:主函數(shù)中首先定義了兩個double型的變量s和fac,并給它們賦初值為0.0和1.0,在函數(shù)中s和fac的作用是存放和以及要加到的那一項(xiàng)的值。通過分析可知,第i項(xiàng)的值可以由第i-1項(xiàng)的值得到,即第i項(xiàng)是第i-1項(xiàng)的值除以i。可見橫線處應(yīng)添“/i”或與它等價的表達(dá)式。
41.C
42.D解析:本題考查while循環(huán)。第一次循環(huán),先拿x的值和(y-1)比較,此時x=1,y-1=2,循環(huán)條件成立,比較完將x的值加1,此時x=2,進(jìn)入循環(huán),a=a+1=1,判斷if語句的控制條件是否成立,y<x不成立,接著執(zhí)行下一次循環(huán)。第二次循環(huán),先拿x的值和(y-1)比較,此時x=2,y-1=1,循環(huán)條件成立,比較完將x的值加1,此時x=3,進(jìn)入循環(huán),a=a+1=2,判斷if語句的控制條件是否成立,y<x成立,執(zhí)行break語句退出循環(huán)。
43.C解析:本題涉及C語言基本的3個知識點(diǎn):①C語言規(guī)定一個程序只允許有一個主函數(shù),一個函數(shù)內(nèi)可以允許有多個花括號;②C語言的標(biāo)識符是由字母、數(shù)字、下劃線組成的,可以是大寫字母,而且標(biāo)識符區(qū)分字母的大小寫;③C程序的注釋部分僅僅是方便程序員閱讀,提高程序的可讀性和可移植性,它并不參與程序的編譯,所以編譯器也就不會發(fā)現(xiàn)注釋行中的錯誤。
44.A解析:函數(shù)定義時如果數(shù)據(jù)類型默認(rèn),則默認(rèn)為int。函數(shù)中如果有“retum(表達(dá)式):”語句,表達(dá)式的類型可能與函數(shù)的類型不一致,但它并不能改變函數(shù)的類型,實(shí)際情況是把表達(dá)式轉(zhuǎn)換為函數(shù)值的類型作為返回值,因此本題的函數(shù)值類型是int。
45.C解析:fseek函數(shù)的原形為intfseek(FILE*fp,longoffset,intbase);函數(shù)的功能是將fp所指向的位置指針移到以base所指位置為基準(zhǔn)、以offset為位移量的位置。可見,fseek是改變文件的位置指針。
46.C解析:本題考核的知識點(diǎn)是字符型變量的基本概念。用單引號括起來的一個字符稱為字符常量,而選項(xiàng)B和選項(xiàng)D中用的是雙引號,而用雙引號括起來的字符為字符串常量,故選項(xiàng)B和選項(xiàng)D不正確。因?yàn)樵贑語言中,字符常量在存儲時,并不是把該字符本身放到內(nèi)存單元中去,而是將該字符的相應(yīng)的ASCII代碼放到存儲單元中,所以C語言使字符型數(shù)據(jù)和整形數(shù)據(jù)之間可以通用,選項(xiàng)C正確.而選項(xiàng)A中,給字符型變量賦值時只能賦一個字符,而9,7作為字符時為兩個字符且必須分別為單引號括起來,故選項(xiàng)A不正確,所以,4個選項(xiàng)中選項(xiàng)C符合題意。
47.D解析:在程序中,當(dāng)L的值為5和4時,case都沒有與其匹配的值,所以執(zhí)行default語句;當(dāng)k=3時,執(zhí)行n+=k;得n=3;當(dāng)L=2時,執(zhí)行case2:然后順序執(zhí)行case3:n+=k;得n=5;當(dāng)k=1時,執(zhí)行case1:n+=k;得n=6,然后順序執(zhí)行case2:和case3:n+=k;使得n=7。
48.A解析:本題考查while語句和if語句的嵌套,程序段實(shí)現(xiàn)的功能是將p[1]至p[7]中的奇數(shù)相加求和并輸出,j=13+15+17=45。
49.B解析:題目中定義了一個指針變量作為函數(shù)f()的參數(shù)。主函數(shù)main()中調(diào)用f()函數(shù),當(dāng)i=0時,執(zhí)行語句“(*q)++;”,此處*q就代表數(shù)組a[0]的地址,也即將q進(jìn)行加1操作;當(dāng)i=1時,q仍指向數(shù)組元素a[0]的地址,因?yàn)樵诤瘮?shù)f()中并未對指針變量q做任何變動,即*q仍代表數(shù)組元素a[0]的值,所以此次(*q)++即為2+1,a[0]的值變?yōu)?;直到i=4時,執(zhí)行(*q)++后a[0]的值變?yōu)?,最后輸出數(shù)組a的結(jié)果為6、2、3、4、5。
50.B解析:C語言規(guī)定,可以在定義變量的同時給變量賦初值,稱為變量初始化。在選項(xiàng)A)中在給n1和n2進(jìn)行賦初值,但變量02沒有定義;在選項(xiàng)C)中定義變量f時,不能在賦值表達(dá)式的右邊出現(xiàn)變量f自身,所以選項(xiàng)C)錯誤:在選項(xiàng)D)用指數(shù)表達(dá)式的常量中,字母E后面的數(shù)應(yīng)該為整數(shù),而不應(yīng)該為小數(shù)形式。因此,選項(xiàng)B)正確。
51.B解析:選項(xiàng)A)中,定義的初值個數(shù)大于數(shù)組的長度;選項(xiàng)C)中,數(shù)組名后少了中括號;選項(xiàng)D)中,整型數(shù)組不能賦予字符串。
52.C解析:本題a[2][3]定義為一個具有兩行三列的元素的數(shù)組,malloc()函數(shù)的作用是開辟了一個長度為sizeof(int)的內(nèi)存區(qū),p為指向整型數(shù)據(jù)的指針變量,程序調(diào)用fut()函數(shù),將第一行第一列對應(yīng)的元素值賦給**s,由于數(shù)組中第一行第一列對應(yīng)的元素為9,所以本題輸出值9。
53.B解析:本題考查函數(shù)調(diào)用的基本概念。因?yàn)楹瘮?shù)的結(jié)果是個未知量,而函數(shù)定義時不能使用未知量,所以函數(shù)定義不可以嵌套,但函數(shù)的調(diào)用可以嵌套。
54.B解析:本題考查函數(shù)fseek的用法。fseek函數(shù)的調(diào)用形式為:
fseek(文件指針,位移量,起始點(diǎn))
“起始點(diǎn)”用0,1或2代替,0代表“文件開始”,1為“當(dāng)前位置”,2為“文件末尾”。
“位移量”指以“起始點(diǎn)”為基點(diǎn),向前移動的字節(jié)數(shù)。ANSIC和大多數(shù)C版本要求位移量是long型數(shù)據(jù),這樣當(dāng)文件長度大于64k時不致出現(xiàn)問題。ANSIC標(biāo)準(zhǔn)規(guī)定在數(shù)字末尾加一個字母L表示long型。
55.C棧和隊(duì)列都是一種特殊的操作受限的線性表,只允許在端點(diǎn)處進(jìn)行插入和刪除。二者的區(qū)別是:棧只允許在表的一端進(jìn)行插入或刪除操作,是一種“后進(jìn)先出”的線性表;而隊(duì)列只允許在表的一端進(jìn)行插入操作,在另一端進(jìn)行刪除操作,是一種“先進(jìn)先出”的線性表:本題答案為C)。
56.D解析:double*p,a;語句表示定義了一個指向雙精度型的指針變量p和雙精度型變量a,而語句p=&a表示將變量a的地址賦給指針變量p;scanf('%1f',p)表示用鍵盤輸入的數(shù)賦給指針變量p所指向的地址單元中。scanf()函數(shù)要求在輸入double型數(shù)據(jù),格式控制符必須用%1f(或%1e)。否則,數(shù)據(jù)不能正確輸入。所以選項(xiàng)D)為正確答案。
57.C解析:字符串少一個結(jié)束標(biāo)志,所以輸出的結(jié)果不確定。
58.D解析:本題中直接使用指針變量k,但在使用時要注意對k的指針運(yùn)算。此外,一開始應(yīng)知道*k的值為數(shù)組中的某一下標(biāo)值,即*k=0,本函數(shù)的功能是找出數(shù)組中的最大元素的位置及最大元素的值。
59.C
60.C
61.D
62.Asizeof求在存儲單元中所占字節(jié)數(shù)。
63.C1題中用動態(tài)存儲分配函數(shù)mMloc分配了一個int型數(shù)據(jù)長度大1小的內(nèi)存,然后指針p指向了這段內(nèi)存,函數(shù)f中對P所指1向的數(shù)據(jù)進(jìn)行了賦值,P[1][1]為二維數(shù)組第二行第二列的元素,對應(yīng)于實(shí)參a的元素9,所以輸出結(jié)果為9。
64.CA選項(xiàng)錯誤,因?yàn)镻是指向一個指針數(shù)組,作為數(shù)組名,不能指向別的地方。B選項(xiàng)錯誤,因?yàn)镻[0]是一個int指針,也就是int-;而a是一個指向指針的指針in‘}}。c選項(xiàng)正確,因?yàn)閜[O]是一個int},a[1][2]是int,&a[1][2]是int+,類型吻合。D選項(xiàng)錯誤,因?yàn)閍作為數(shù)組名,不能取地址。即使能取,P[1]是int·,&a是int+t;,類型不對。因此C選項(xiàng)正確。
65.D
66.D
67.B本題中遇到“\”字符循環(huán)結(jié)束,所以只統(tǒng)計(jì)“\”之前的數(shù)字字符,所以為3。
68.C
69.AWhile循環(huán)條件為:(_h=}a)f-‘、0’,執(zhí)行時先把指針a所指向的字符賦給指針b所在內(nèi)存單元,如果該字符不是結(jié)束標(biāo)識‘\0’,執(zhí)行循環(huán)體a++;b++;,指針a.b分別指向下一個字符單元。再判斷循環(huán)條件,如果成立,繼續(xù)把指針a所指向的字符賦給指針b所在內(nèi)存單元,直到遇到結(jié)束標(biāo)識為止。因此A選項(xiàng)正確。
70.B
\n本題考多循環(huán)的使用,當(dāng)j=10,i=9時,循環(huán)成立,第一個if條件為假,第二個if條件i==j-1成立,則輸出j的值為10,接者執(zhí)行i++后,i為10;當(dāng)i為10,for循環(huán)不成立,退出內(nèi)層循環(huán),此時執(zhí)行j++后,j為11,循環(huán)不成立,退出循環(huán)。
\n
71.A解析:結(jié)構(gòu)化程序的概念首先是從以往編程過程中無限制地使用轉(zhuǎn)移語句而提出的。轉(zhuǎn)移語句可以使程序的控制流程強(qiáng)制性地轉(zhuǎn)向程序的任一處,在傳統(tǒng)流程圖中,就是用上節(jié)我們提到的“很隨意”的流程線來描述這種轉(zhuǎn)移功能。如果一個程序中多處出現(xiàn)這種轉(zhuǎn)移情況,將會導(dǎo)致程序流程無序可尋,程序結(jié)構(gòu)雜亂無章,這樣的程序是令人難以理解和接受的,并且容易出錯。尤其是在實(shí)際軟件產(chǎn)品的開發(fā)中,更多的追求軟件的可讀性和可修改性,象這種結(jié)構(gòu)和風(fēng)格的程序是不允許出現(xiàn)的。
72.Afun函數(shù)的功能是輸出字符串中ASCII碼能被2整除的字符,g的ASCIl碼為l03,0的ASCIl碼為111,d的ASCIl碼為l00,只有d滿足。因此,本題答案為A)。
73.D
74.D
75.C
76.C文件由數(shù)據(jù)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件。故本題答案為C選項(xiàng)。
77.B解析:所謂二叉樹的前序遍歷(DLR)是指在訪問根結(jié)點(diǎn)、遍歷左子樹與遍歷右子樹這3者中,首先訪問根結(jié)點(diǎn),然后遍歷左子樹,最后遍歷右子樹,并且,在遍歷左右子樹時,上述規(guī)則同樣適用,即“根-左-右”。故該二叉樹的前序遍歷結(jié)果為“ATBZXCYP”。對于本題,若使用后序遍歷和中序遍歷的結(jié)果分別為“ZBTYCPXA”和“TZBACYXP”。
78.A解析:在本題中k=n++,為后綴運(yùn)算。根據(jù)其運(yùn)算規(guī)則,首先n先加一,但n++表達(dá)式的值依然n原來的值,即k的值沒有改變。選項(xiàng)A中先給k賦值為n,然后n再加1,k值沒有變化,所以這個表達(dá)式和本題中表達(dá)式等價:選項(xiàng)B中先n加1,然后將n加1后的值賦給k,k變化了比原來的值大1,所以這個表達(dá)式和本題中表達(dá)式不等價:選項(xiàng)C中先計(jì)算表達(dá)式左邊的表達(dá)式++=N的值,執(zhí)行++n后,左邊的表達(dá)式的值為n的值加1,然后將n+1后的值賦給k,所以這個表達(dá)式和本題中的表達(dá)式不等價;選項(xiàng)D中表達(dá)式展開為k=k+(n+1),k的值發(fā)生了變化,所以這個表達(dá)式和本題中的表達(dá)式不等價。所以4個選項(xiàng)中A正確。
79.D在選項(xiàng)A中的語句沒有一條是錯誤的。選項(xiàng)B和C中有一個逗號表達(dá)式,選項(xiàng)B中是x=0,y=x+1;,在選項(xiàng)C中是y=x+1,z=x+y;。所以,B和C中也沒有錯誤。選項(xiàng)D中的最后一條語句是以逗號結(jié)束的,而C語言中不能用逗號作為一個語句的結(jié)束標(biāo)志,每一條語句最后應(yīng)該是分號,所以,D選項(xiàng)中的程序是錯誤的。
80.B本題考查結(jié)構(gòu)體變量的引用以及作為函數(shù)參數(shù),題目雖然看似復(fù)雜,其實(shí)比較容易,f函數(shù)的參數(shù)是結(jié)構(gòu)體變量,然后對參數(shù)重新賦值并返回,所以該題目的答案為B選項(xiàng)。
81.(1)錯誤:f(doublex)
正確:doublef(doublex)
(2)錯誤:returns
正確:returns;
【解析】由函數(shù)proe()中的函數(shù)調(diào)用以及函數(shù)f中的re-turn語句,可知函數(shù)f的返回值類型為double,因此,“f(doublex)”應(yīng)改為“doublef(doublex)”;根據(jù)C語言語法規(guī)則,每一條語句都必須以分號結(jié)束,因此,應(yīng)在語句“re-turns”后加上分號。
82.\n#include'stdio.h'
\n#defineN3
\nstructstudent
\n{longstu_num;charsex;
\ncharname[15];intscore[4];
\nfloataverage;};
\nmain
\n{intI,j,index;floatsum,max;
\nstructstudentstuarr[N];
\nfor(I=0;I{printf('pleaseinput%dstudentinformation:\\n',I+1);
\nscanf('%ld,%c,%s',&stuarr[I].stu_num,&stuarr[I].sex,stuarr[I].name);
\nfor(j=0;j<4;j++)
\nscanf('%d',&stuarr[I].score[j]);}
\nfor(I=0;I{sum=0.0;
\nfor(j=0;j<4;j++)
\nsum+=stuarr[I].score[j];
\nstuarr[I].a(chǎn)verage=sum/4.0;}
\nmax=stuarr[0].a(chǎn)verage;
\nindex=0;
\nfor(I=1;Iif(stuarr[I].a(chǎn)verage>max)
\n{max=stuarr[I].a(chǎn)verage;
\nindex=I;}
\nprintf('總平均成績最高的學(xué)生信息是學(xué)號=%ld,性別=%c,姓名=%s,平均成績=%4.1f\\n',stuarr[index].stu_num,stuarr[index].sex,stuarr[index].name,stuarr[index].a(chǎn)verage);
\n}\n2022年山東省聊城市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級:________姓名:________考號:________一、單選題(20題)1.下列代碼的復(fù)雜度是多少?如果多于1個答案正確,選擇最小的那個。()A.O(n*m*m)B.O(n*log(m)*m)C.O(n+m+m)D.O(n*m)
2.二維數(shù)組A的每個元素是由6個字符組成的串,其行下標(biāo)i=0,1,…,8,列下標(biāo)j=1,2,…,10。若A按行先存儲,元素A[8][5]的起始地址與當(dāng)A按列先存儲時的元素()的起始地址相同。設(shè)每個字符占一個字節(jié)。
A.A[8][5]B.A[3][10]C.A[5][8]D.A[0][9]
3.
4.若變量已正確定義為int型,要通過語句“scanf(“%d,%d,%d”,&a,&b,&c);”將a賦值為1、將b賦值為2、將c賦值為3,以下輸入形式中錯誤的是(注:□代表一個空格符)()。
A.1,2,3<Enter>
B.□□□1,2,3<Enter>
C.1,□□□2,□□□3<Enter>
D.1□2□3<Enter>
5.有以下程序:#include<stdio.h>intf(intx):main{intn=1,m;m=f(f(f(n)));printf("%d\n",m);}intf(intx){returnx*2;)程序運(yùn)行后的輸出結(jié)果是()。A.1B.2C.4D.8
6.成功的測試是指A.A.運(yùn)行測試實(shí)例后未發(fā)現(xiàn)錯誤
B.發(fā)現(xiàn)程序的錯誤
C.證明程序正確
D.軟件產(chǎn)生
7.下列關(guān)系模型中,能使經(jīng)運(yùn)算后得到的新關(guān)系中屬性個數(shù)多于原來關(guān)系中屬性個數(shù)的是
A.選擇B.連接C.投影D.并
8.以下有4組用戶標(biāo)識符,其中合法的一組是()。
A.FOr-subCase
B.4dDOSize
C.f2_G3IFabc
D.WORDvoiddefine
9.已知廣義表:A=(a,b),B=(A,A),C=(a,(b,A),B),tail(head(tail(C)))的運(yùn)算結(jié)果是()。
A.(a)B.AC.aD.(A)
10.以下敘述錯誤的是()。
A.算術(shù)運(yùn)算符中不包含“=”運(yùn)算符
B.模運(yùn)算符“%”是c語言基本的算術(shù)運(yùn)算符
C.算術(shù)運(yùn)算符中只有“*”、“/”優(yōu)先級高于關(guān)系運(yùn)算符
D.自加和自減運(yùn)算符只能用于變量,而不能用于常量或表達(dá)式
11.有以下程序:#include<stdio.h>main(){charv[4][10];inti;for(i=0;i<4;i++)scanf(“%s”,v[i]);printf(“%c,%s,%s,%c”,**v,*(v+1),v[3]+3,*(v[2]+1));}程序運(yùn)行時輸入welcomeyoutobeijing并按<Enter>鍵,則輸出結(jié)果是()。
A.w,youjing,o
B.welcome,you,jing,to
C.w,you,eeijing,u
D.w,xelcome,eeijing,u
12.若有定義“chars1[100]=“name”,s2[50]=“address”,s3[80]=“person”;”,要將它們連接成新串“personnameaddress”,正確的函數(shù)調(diào)用語句是()。
A.strcat(strcat(s1,s2),s3);
B.strcat(s3,strcat(s1,s2);
C.strcat(s3,strcat(s2,s1);
D.strcat(strcat(s2,s1),s3);
13.下列SQL語句中,用于修改表結(jié)構(gòu)的命令式是A.A.Alter
B.Create
C.Update
D.Insert
14.下列敘述中正確的是()。
A.測試工作必須由程序編制者自己完成
B.測試用例和調(diào)試用例必須一致
C.一個程序經(jīng)調(diào)試改正錯誤后,一般不必再進(jìn)行測試
D.上述三種說法都不對
15.
16.當(dāng)執(zhí)行下面的程序時,如果輸入ABC,則輸出結(jié)果是()#include<stdio.h>#include<string.h>main(){charss[10]="12345";gets(ss);strcat(ss"6789");printf("%s\n",ss);}
A.ABC6789B.ABC67C.12345ABC6D.ABC456789
17.有以下程序:#include<stdio.h>main(){chara==‘0’,b=‘A’;inti;for(i=1;i<6;i++)if(i%2==0)putchar(a+i);elseputchar(b+i);}程序運(yùn)行后的輸出結(jié)果是()。
A.A2A3BB.2B4DFC.B4CD7D.B2D4F
18.下列二維數(shù)組的說明中,不正確的是()。
A.floata[][4]={0,1,8,5,9};
B.inta[3][4]
C.#defineN5floata[N][3]
D.inta[2][9.5];
19.對于n個元素,下列哪種操作時間復(fù)雜度不是O(nlogn)()
A.凸包計(jì)算B.LC搜索C.有序序列數(shù)字查找D.基于比較的排序
20.
二、2.填空題(20題)21.判定表和判定樹是以圖文形式描述數(shù)據(jù)流圖的【】
22.以下程序運(yùn)行后的輸出結(jié)果是【】。
#include<stdio,h>
main()
{chara[]="Language",b[]:"Programe";
char*pl,*p2;intk;
p1=a;p2=b;
for(k=0;k<=7;k++)
if(*(p1+k)==*(p2+k))printf("%c",*(pi+k));
}
23.以下程序運(yùn)行時若從鍵盤輸入:102030<回車>。輸出結(jié)果是【】。
#include<stdio.h>
main()
{
inti=0,j=0,k=0;
scanf("%d%*d%d",&i,&j,&k);
printf("%d%d%d\n",i,j,k);
}
24.下列程序的輸出結(jié)果是______。
main()
{inta[]={31,27,20,12,6,1),*p=a;
p++;
printf("%d\n",*(p+2));
}
25.已知字符A的ACSII碼值為65,以下語句的輸出結(jié)果是______。
charch='B';
printf("%c%d\n",ch,ch);
26.下列程序中字符串中各單詞之間有一個空格,則程序的輸出結(jié)果是【】。
#include<string.h>
main()
{charstr1[]="Howdoyoudo",*p1=str1;
strcpy(str1+strlen(str1)/2,"eshe");
printf("%s\n",p1);
}
27.結(jié)構(gòu)化程序設(shè)計(jì)的3種基本結(jié)構(gòu)分別是順序、選擇和______。
28.下面程序的運(yùn)行結(jié)果是【】。
main()
{inty,a;
y=2,a=1;
while(y--!=-1)
{do{a*=y;a++;}while(y--);}
printf("%d,%d",a,y);}
29.若變量n中的值為24,則prnt函數(shù)共輸出【】行。
voidprnt(intn,intaa[])
{inti;
for(i=1;i<=n;i++)
{printf("%6d",aa[i]);
if!(i%5))printf("\n");
}
printf("\n");
}
30.計(jì)算圓的周長、面積和球體積。
#definePI3.1415926
#define【】L=2*PI*R;【】;V=4.0/3.0*PI*R*R*R
main()
{floatr,l,s,v;
printf("inputaradus:");
scanf("%f",&r);
CIRCLE(r,l,s,v);
printf("r=%.2f\nl=%.2f\ns=%.2f\nv=%.2f\n",【】);
}
31.僅依據(jù)規(guī)格說明書描述的程序功能來設(shè)計(jì)測試實(shí)例的方法稱為【】。
32.在對文件進(jìn)行操作的過程中,若要求指針的位置回到文件的開頭,應(yīng)當(dāng)調(diào)用的函數(shù)是【】。
33.下列程序的輸出結(jié)果是【】。
main()
{inta=1,b=2;
a=a+b;b=a-b,a=a-b;
printf("%d,%d\n",a,b);
}
34.在數(shù)據(jù)的存儲結(jié)構(gòu)中,不僅需要存儲各數(shù)據(jù)元素的信息,還要存放各元素之間______的信息。
35.某二叉樹中度為2的結(jié)點(diǎn)有n個,則該二叉樹中有【】個葉子結(jié)點(diǎn)。
36.在使用putchar和getchar函數(shù)處理字符時,必須在程序的開頭出現(xiàn)包含頭文件的命令行是【】。
37.數(shù)據(jù)庫的邏輯模型設(shè)計(jì)階段的任務(wù)是將______轉(zhuǎn)換成關(guān)系模式。
38.數(shù)據(jù)庫設(shè)計(jì)分為以下6個設(shè)計(jì)階段:需求分析階段、______、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、實(shí)施階段、運(yùn)行和維護(hù)階段。
39.以下程序的輸出結(jié)果是【】。
main()
{
intp[7]=(11,13,14,15,16,17,18};
inti=0,j=0;
while(i<7&&p[i]%2==1)j+=p[i++];
printf("%d\n",j);
}
40.以下函數(shù)的功能是計(jì)算請?zhí)羁铡?/p>
doublefun(intn)
{doubles=0.0,fac=1.0;inti;
for(i=1;i<=n;i++)
{fac=fac【】;
s=s+fac;
}
returns;
}
三、1.選擇題(20題)41.C語言中各種基本數(shù)據(jù)類型的存儲空間長度排列為()
A.char≤long≤int≤float≤double
B.double≤float≤long≤int≤char
C.char≤int≤long≤float≤double
D.float≤int≤long≤char≤double
42.下列程序的運(yùn)行結(jié)果是()。main(){intx=1,y=3,a=0;while(x++!=(y-=1)){a+=1;if(y<x)break;}printf("%d,%d,%d\n",x,y,a);}
A.2,3,2B.2,3,1C.1,3,3D.3,1,2
43.下列說法正確的是()。
A.一個C程序可以有多個主函數(shù)
B.一個C語言的函數(shù)中只允許有一對花括號
C.C程序的書寫格式是自由的,一個語句可以寫在一行上,也可以寫在多行內(nèi)
D.在對C程序進(jìn)行編譯時,可以發(fā)現(xiàn)注釋行中的拼寫錯誤
44.以下函數(shù)值的類型是_______。fun(floatx){floaty;y=3*x-4;returny;}
A.intB.不確定C.voidD.float
45.fseek函數(shù)是C語言系統(tǒng)提供的標(biāo)準(zhǔn)庫函數(shù),其實(shí)現(xiàn)的具體操作是______。
A.實(shí)現(xiàn)文件的順序讀寫B(tài).實(shí)現(xiàn)文件的隨機(jī)讀寫C.改變文件的位置指針D.以上答案均不正確
46.已定義c為字符型變量,則下列語句中正確的是()。
A.c='97'B.c="97"C.c=97D.c="a"
47.有以下程序:#include<stdio,h>main(){intk=5,n=0;while(k>0){switch(k){default:break;case1:n+=k;case2:case3:n+=k;}k--;printf("%d\n",n);}程序運(yùn)行后的輸出結(jié)果是()。
A.0B.4C.6D.7
48.有以下程序: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("%d\n",j);}程序運(yùn)行后的輸出結(jié)果是______。
A.42B.45C.56D.60
49.有以下程序:voidf(int*q){inti=0;for(;i<5;i++)(*q)++;}main(){inta[5]={1,2,3,4,5},i;f(A);for(i=0;i<5;i++)printf("%d,",a[i]);}程序運(yùn)行后的輸出結(jié)果是()。
A.2,2,3,4,5,B.6,2,3,4,5,C.1,2,3,4,5,D.2,3,4,5,6,
50.下列能正確定義且賦初值的語句是()。
A.intn1=n2=10;
B.charc=32;
C.floatf=f+1.1;
D.doublex=12.3E2.5;
51.以下能正確定義一維數(shù)組的選項(xiàng)是
A.inta[5]={0,1,2,3,4,5}
B.chara[]={'0','1','2','3','4','5','\0'};
C.chara={'A','B','C'};
D.inta[5]="0123";
52.下面程序運(yùn)行后的輸出結(jié)果是______。fut(int**s,intp[2][3]){**s=p[1][1];}main(){inta[2][3]={1,3,5,7,9,11},*p;p=(int*)malloc(sizeof(int));fut(&p,a);printf("%d\n",*p);}
A.1B.7C.9D.11
53.在C語言程序中,下列說法正確的是()。
A.函數(shù)的定義和函數(shù)的調(diào)用均可以嵌套
B.函數(shù)的定義不可以嵌套,但函數(shù)的調(diào)用可以嵌套
C.函數(shù)的定義可以嵌套,但函數(shù)的調(diào)用不可以嵌套
D.函數(shù)的定義和函數(shù)的調(diào)用均不可以嵌套
54.fseek函數(shù)的正確調(diào)用形式是()。
A.fseek(文件指針,起始點(diǎn),位移量)
B.fseek(文件指針,位移量,起始點(diǎn))
C.fseek(位移量,起始點(diǎn),文件指針)
D.fseek(起始點(diǎn),位移量,文件指針)
55.棧和隊(duì)列的共同點(diǎn)是()。
A.都是先進(jìn)后出B.都是先進(jìn)先出C.只允許在端點(diǎn)處插入和刪除元素D.沒有共同點(diǎn)
56.下列程序的輸出結(jié)果是()。#include<stdio.h>voidmain(){intb[6]={2,4,6,8,10,12};int*p--b,**q=&p;printf("%d",*(p++));printf("%d",**q);}
A.*p=&a;scanf("%1f",p);
B.*p=&a;scanf("%f",p);
C.p=&a;scanf("%1f",*p);
D.p=&a;scanf("%1f",p);
57.下面程序的輸出結(jié)果是main(){charstr[10],c='a';inti=0;for(;i<5;i++)str[i]=c++;printf("%s",str);}
A.abcdeB.aC.不確定D.bcdef
58.下列程序是用來判斷數(shù)組中特定元素的位置所在的。#include<conio.h>#include<stdio.h>intfun(int*s,intt,int*k){inti;*k=0;for(i=0;i<t;i++)if(s[*k]<s[i])*k=i;returns[*k];}main(){inta[10]={876,675,896,101,301,401,980,431,451,777},k;fun
A.7,431B.6C.980D.6,980
59.下述對C語言字符數(shù)組的描述中錯誤的是()
A.字符數(shù)組可以存放字符串
B.字符數(shù)組中的字符串可以整體輸入、輸出
C.可以在賦值語句中通過賦值運(yùn)算符“=”對字符數(shù)組整體賦值
D.不可以用關(guān)系運(yùn)算符對字符數(shù)組中的字符串進(jìn)行比較
60.下列程序運(yùn)行后,輸出結(jié)果是______。func(inta,intb){staticintm=0,i=2;i+=m+1;m=i+a+b;return(m);}main(){intk=4,m=1,p;p=func(k,m);printf("%d,",p);p=func(k,m);printf("%d\n",p);}
A.8,15B.8,16C.8,17D.8,8
四、選擇題(20題)61.讀出以下語句的輸出結(jié)果是()。
intx=10,y=10;
printf(“%d%d\n”,x--,--y);
A.1010B.99C.910D.109
62.若有下面說明和定義:
structtest
{intm1;charm2;floatm3;
unionuu(charu1[5];intu2[2];)ua;
}myaa;
則sizeof(structtest)的值是()。
A)20B)16
C)14D)9
63.以下程序的輸出結(jié)果是()。
A.1B.7C.9D.13
64.若有定義語句:inta[21[3],*P[3];則以下語句中正確的是()。
A.p:a;B.p[0]=a;C.p[O]=&a[1][2];D.1a[1]=&a;
65.
66.
67.有以下程序:
I程序運(yùn)行后的輸出結(jié)果是()。
A.0B.3C.7D.8
68.
69.下列函數(shù)的功能是()。
A.將a所指字符串賦給b所指空間
B.使指針b指向a所指字符串
C.將a所指字符串和b所指字符串進(jìn)行比較
D.檢查a和b所指字符串中是否有‘、O’
70.
有以下程序:
main
{inti,j;
for(j=10;j<11;j++)
{for(i=9;i<j;i++)
if(!(j%i))break;
if(i==j-1)
printf("%d",j);
}
}
輸出結(jié)果是()。
A.11B.10C.9D.1011
71.有三個關(guān)系R、S和T如下:
則由關(guān)系R和S得到關(guān)系T的操作是()。
A.自然連接B.交C.投影D.并
72.有以下程序:
注意:字母a的ASCIl碼值為97,程序運(yùn)行后的輸出結(jié)果是()。
A.dB.goC.godD.good
73.(50)數(shù)據(jù)庫概念設(shè)計(jì)的過程中,視圖設(shè)計(jì)一般有三種設(shè)計(jì)次序,以下各項(xiàng)中不對的是()
A.自頂向下
B.由底向上
C.由內(nèi)向外
D.由整體到局部
74.
75.
76.下列關(guān)于C語言文件的敘述中正確的是()。
A.文件由一系列數(shù)據(jù)依次排列組成,只能構(gòu)成二進(jìn)制文件
B.文件由結(jié)構(gòu)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件
C.文件由數(shù)據(jù)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件
D.文件由字符序列組成,其類型只能是文本文件
77.設(shè)有下列二叉樹:對此二叉樹前序遍歷的結(jié)果為()
A.ZBTYCPXAB.ATBZXCYPC.ZBTACYXPD.ATBZXCPY
78.以下選項(xiàng)中,與k=n++完全等價的表達(dá)式是A.k=n,n=n+1B.n=n+1,k=nC.k=++nD.k+=n+1
79.以下選項(xiàng)錯誤的是
80.
程序運(yùn)行后的輸出結(jié)果是()。A.1002,ZhangDa,1202.0
B.1002,ChangRon9。1202.0
C.1001,ChangRon9,1098.0
D.1001,ZhangDa,1098.0
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:計(jì)算S=f(-n)+(-n+1)+…+f(O)+f(1)+(2)+…+f(n)的值。例如,當(dāng)n為l0時,函數(shù)值應(yīng)為22.550361。f(x)函數(shù)定義如下:請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計(jì)題(1題)82.有N個學(xué)生,每個學(xué)生的信息包括學(xué)號、性別、姓名、四門課的成績,從鍵盤上輸入N個學(xué)生的信息,要求輸出總平均成績最高的學(xué)生信息,包括學(xué)號、性別、姓名和平均成績。
參考答案
1.D
2.A
3.D
4.D在輸入整數(shù)或?qū)崝?shù)這類數(shù)值型數(shù)據(jù)時,輸入數(shù)據(jù)之間必須用空格、回車符、制表符等間隔符隔開,間隔符個數(shù)不限。scanf的格式控制字符串也可以使用其他非空白字符,如本題中的逗號,但在輸入時必須輸入這些字符,以保證匹配,所以逗號必須輸入。故本題答案為D選項(xiàng)。
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度裝配生產(chǎn)線升級終止合同書
- 二零二五年度旅行社導(dǎo)游旅游產(chǎn)品推廣合同
- 人力資源管理培訓(xùn)體系構(gòu)建指南
- 小王子經(jīng)典解讀
- 關(guān)于辦公室設(shè)備維護(hù)的通知申請
- 高效事務(wù)處理手冊與操作指南
- 食品安全追溯系統(tǒng)合作協(xié)議
- 影視行業(yè)影視作品發(fā)行權(quán)轉(zhuǎn)讓協(xié)議
- 公司債券受托管理合同
- 計(jì)算機(jī)網(wǎng)絡(luò)安全風(fēng)險防御練習(xí)題
- 新改版蘇教版六年級下冊科學(xué)全冊知識點(diǎn)(精編版)
- 2022年南京鐵道職業(yè)技術(shù)學(xué)院單招職業(yè)技能題庫及答案解析
- 項(xiàng)目一-旅游概述-(旅游概論課件完美版)
- 10G409預(yù)應(yīng)力管樁圖集
- 《電視節(jié)目制作》課件
- 挖掘機(jī)司機(jī)培訓(xùn)服務(wù)投標(biāo)方案(技術(shù)標(biāo) )
- 小學(xué)生主題班會 愛國主義教育 課件(共35張PPT)
- 雇傭保姆免責(zé)協(xié)議7篇(通用)
- 水電站水輪機(jī)調(diào)速器及其附屬設(shè)備安裝施工技術(shù)方案
- XX大學(xué)學(xué)科競賽項(xiàng)目申請書
- 03S702鋼筋混凝土化糞池圖集
評論
0/150
提交評論