版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2022-2023年河南省開封市全國計算機(jī)等級考試C語言程序設(shè)計測試卷(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.若某二叉樹的前序遍歷訪問順序是abdgcefh,中序遍歷訪問順序是dgbaechf,則其后序遍歷的結(jié)點訪問順序是()。
A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca
2.在計算機(jī)中,算法是指()
A.加工方法B.解題方案的準(zhǔn)確而完整的描述C.排序方法D.查詢方法
3.關(guān)于地址和指針,以下敘述正確的是()。
A.可以通過強(qiáng)制類型轉(zhuǎn)換讓char型指針指向double型變量
B.函數(shù)指針P指向一個同類型的函數(shù)f時,必須寫成“p=&f;”
C.指針P指向一個數(shù)組f時,必須寫成“P=&f;”
D.—個指針變量P可以指向自身
4.數(shù)據(jù)表A中有10000個元素,如果僅要求求出其中最大的10個元素,則采用()最節(jié)省時間。
A.堆排序B.希爾排序C.快速排序D.希爾排序
5.定義根節(jié)點深度為1,有n個元素的完全二叉樹的深度是()
A.D(n)=log2(n)
B.D(n)=1+log2(n)
C.D(n)=n+log2(n)
D.D(n)=1+n*log2(n)
6.fun函數(shù)的功能是:通過鍵盤輸入給x所指的整型數(shù)組所有元素賦值。在下劃線處應(yīng)填寫的是()。#include<stdio.h>#defineN5voidfun(intx[N]){intm;for(m=N-t;m>=O;m-)scanf("%d",____);}A.%&X[++m]B.&x[m+1]C.x+(m++)D.x+m
7.有以下函數(shù):fun(char*p){returnp;}該函數(shù)的返回值是()。
A.無確切值B.形參p中存放的地址值C.一個臨時存儲單元的地址D.形參p自身的地址值
8.數(shù)據(jù)結(jié)構(gòu)通常研究數(shù)據(jù)的()及運算。
A.物理結(jié)構(gòu)和邏輯結(jié)構(gòu)B.存儲和抽象C.理想和抽象D.理想與邏輯
9.程序段:intx=12;doub1ey=3.141593;printf("%d%8.6f"x,y);的輸出結(jié)果是______。A.123.141593B.123.141593C.12,3.141593D.123,1415930
10.以下說法錯誤的是()。
A.C語言中的常量是指在程序運行過程中經(jīng)常被用到的變量
B.C語言中的常量是指在程序運行過程中其值不能被改變的量
C.C語言中的常量可以用一個符號名來代表
D.C語言中的常量可以用宏來定義
11.以下敘述中錯誤的是()。
A.C語言中的每條可執(zhí)行語句和非執(zhí)行語句最終都將被轉(zhuǎn)換成二進(jìn)制的機(jī)器指令
B.C程序經(jīng)過編譯、連接步驟之后才能形成一個真正可執(zhí)行的二進(jìn)制機(jī)器指令文件
C.用C語言編寫的程序稱為源程序,它以ASCII形式存放在一個文本文件中
D.C語言源程序經(jīng)編譯后生成擴(kuò)展名為.obj的目標(biāo)文件
12.以下敘述中正確的是()。
A.在C語言中,預(yù)處理命令行都以“#”開頭
B.預(yù)處理命令行必須位于c源程序的起始位置
C.#include<stdi0.h>必須放在C程序的開頭
D.C語言的預(yù)處理不能實現(xiàn)宏定義和條件編譯的功能
13.
14.
15.有以下程序
#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
16.
17.若有代數(shù)式“”(其中e僅代表自然對數(shù)的底數(shù),不是變量),則以下能夠正確表示該代數(shù)式的C語言表達(dá)式是()。
A.sqrt(fabs(pow(n,x)+exp(x)))
B.sqrt(fabs(pow(n,x)+pow(x,e)))
C.sqrt(abs(nx+ex))
D.sqrt(fabs(pow(x,n)+exp(x)))
18.
19.已知函數(shù)的調(diào)用形式為fread(buf,size,count,fp),參數(shù)buf的含義是
A.一個整型變量,代表要讀入的數(shù)據(jù)項總數(shù)
B.一個文件指針,指向要讀的文件
C.一個指針;指向要讀入數(shù)據(jù)的存放地址
D.一個存儲區(qū),存放要讀的數(shù)據(jù)項
20.一個關(guān)系中屬性個數(shù)為1時,稱此關(guān)系為()。
A.對應(yīng)關(guān)系B.單一關(guān)系C.一元關(guān)系D.二元關(guān)系
二、2.填空題(20題)21.若從鍵盤輸入24,則以下程序輸出的結(jié)果是()。
#include<stdio.h>
main()
{inta;
scanf("%d",&A);
if(a>20)printf("%d",A);
if(a>10)printf("%d",A);
if(a>5)printf("%d",A);
}
22.以下isprime函數(shù)的功能是判斷形參a是否為素數(shù),是素數(shù),函數(shù)返回1,
否則返回0。請?zhí)羁铡?/p>
intisprime(inta)
{inti;
for(i=2;i<=a/2;i++)
if(a%i==0)【】;
【】;
}
23.下列程序的功能是輸入一個整數(shù),判斷其是否是素數(shù),若為素數(shù)則輸出1,否則輸出0。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{inti,x,y=1;
scanf("%d",&x);
for(i=2;i<=x/2;i++)
if【】{y=0;break;}
printf("%d\n",y);
}
24.有以下程序:
#include<stdio.h>
main()
{charch1,ch2;intn1,n2;
ch1=getchar();ch2=getehar();
n1=ch1-'0';n2=n1*10+(ch2-'0');
printf("%d\n",n2);
}
程序運行時輸入:12<回車>,執(zhí)行后的輸出結(jié)果是【】。
25.軟件測試分為白箱(盒)測試和黑箱(盒)測試。等價類劃分法屬于【】測試。
26.以下程序運行后輸出的結(jié)果是【】。
main()
{intx=1,y=0,a=0,b=0;
switch(x)
{case1:switch(y)
{
case0:a++;break;
case1:b++;break;
}
case2:a++;b++;break;
}
printf("%d%d\n",a,b);
}
27.常用的黑箱測試有等價類劃分法、【】和錯誤推測法3種。
28.以下程序中函數(shù)huiwen的功能是檢查一個字符串是否是回文,當(dāng)字符串是回文時,函數(shù)數(shù)返回字符串:yes!否則函數(shù)返回這符串:no!并在主函數(shù)中輸出。所謂回文即正向與反向的拼寫都一樣,例如:adgda。請?zhí)羁?/p>
#include<string.h>
char*huiwen(char*str)
{char*p1,*p2;inti,t=0;
pl=str;p2=______;
for(i=0;i<=strlen(str)/2;i+*)
if(*p1++!=*p2--){t=1;break;}
if(______)return("yes!");
elsereturn(*no!");
}
main()
{charstr[50];
printf("Input:");scanf("%s",str);
printf("%s\n",______);
}
29.Jackson結(jié)構(gòu)化程序設(shè)計方法是英國的M.Jackson提出的,它是一種面向______的設(shè)計方法。
30.下面函數(shù)用來求兩個單精度數(shù)之和,并通過形參將結(jié)果傳回,請?zhí)羁铡?/p>
Voidsub(floatx,noaty,【】z)
{【】=x+y;}
31.寫出下列程序的輸出結(jié)果______。
main()
{intn=0;
while(n++<=1);
printf("%d,",n);
printf("%d",n++);
}
32.以下程序?qū)?shù)組a的4個元素和數(shù)組b的6個元素寫到名為lett.dat的二進(jìn)制文件中,請?zhí)羁铡?/p>
#include<stdio.h>
#include<stdlib.h>
main()
{FILE*fp;
chara[5]="1234",b[7]="abcedf";
if((fp=fopen("【】","wb"))==NULL)exit(0);
fwrite(a,sizeof(char),4,fp);
fwrite(b,【】,1,fp);
fclose(fp);
}
33.以下程序的功能是將寧符串s中的數(shù)字字符放入d數(shù)組中,最后輸出d中的字符串。例如,輸入字符串:abcl23edf4568h,執(zhí)行程序后輸出:123456。請?zhí)羁铡?/p>
#include<stdio.h>
#include<ctype.h>
main()
{chars[80],d[80];inti,j;
gets(s);
for(i=j=0;s[i]!='\0';i++)
if(【】){d[j]=s[i];j++;}
d[j]='\0';
puts(d);
}
34.執(zhí)行下列程序的輸出結(jié)果是【】。
main()
{
floata=1,b;
b=++a*++a;
printf("%f\n",b);
}
35.下面函數(shù)要求計算兩個整數(shù)x,y之和,并通過形參返回該值,請?zhí)羁铡?/p>
add(intx,inty,【】z)
{【】=x+y;}
36.僅依據(jù)規(guī)格說明書描述的程序功能來設(shè)計測試實例的方法稱為【】。
37.性表的順序存儲中,元素之間的邏輯關(guān)系是通過【】決定的;性表的鏈接存儲中,元素之間的邏輯關(guān)系是通過【】決定的。
38.若intx=1,y=2;則計算表達(dá)式y(tǒng)+=y-=x*=y后的y值是()。
39.近年來形成了軟件開發(fā)的多種模式,大致有3種類型:基于瀑布模型的結(jié)構(gòu)化生命周期方法、基于動態(tài)定義需求的【】方法和基于結(jié)構(gòu)的面向?qū)ο蟮能浖_發(fā)方法。
40.以下程序的輸出結(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);
}
三、1.選擇題(20題)41.對于下列定義,不正確的敘述是()。uniondata{inta;charb;doublec;}x=y;
A.變量x所占內(nèi)存的長度等于成員c的長度
B.變量x的地址和它的各成員地址都是相同的
C.可以在定義時對x初始化
D.不能對變量x賦值,故x=y非法
42.有三個關(guān)系R、S和T如下:由關(guān)系R和s通過運算得到關(guān)系T,則所使用的運算為()。
A.并B.自然連接C.笛卡兒積D.交
43.若有以下定義:inta[]={1,2,3,4,5,6,7};charc1='b',c2='1';則數(shù)值不為1的表達(dá)式是______。
A.a[0]B.'c'-c1C.a['1'-c2]D.c1-0
44.下述語句中,在字符串sl和s2相等時顯示“theyareEqual”的是()。
A.if(*s1==*s2)puts("theyareEqual");
B.if(!strcmp(s1,s2))puts("theyareEqual");
C.if(s1==s2)Puts("theyareEqual");
D.if(strcmp(s1,s2))puts("theyareEqual”);
45.有下列二叉樹,對此二叉樹前序遍歷的結(jié)果為()。
A.XZCYABB.XYZABCC.XYABCZD.XYAZBC
46.若有程序fun(inta,intb){staticintc=0c+=a+b;retumc;}main(){intx=5,y=3,z=7,r;r=fun((y,x+y),z);r=fun(x,y);printf("%d\n",r);}上面程序的輸出結(jié)果______。
A.23B.15C.19D.18
47.以下敘述正確的是()。
A.continue語句的作用是結(jié)束整個循環(huán)的執(zhí)行
B.只能在循環(huán)體內(nèi)和switch語句體內(nèi)使用break語句
C.在循環(huán)體內(nèi)使用break語句或continue語句的作用相同
D.從多層循環(huán)嵌套中退出時,只能使用goto語句
48.對下述程序的判斷中,正確的是voidmain(){char*p,s[128];p=s;while(strcmp(s,"End")){printf("Inputastring:");gets(s);while(*p)putchar(*p++);}}
A.此程序循環(huán)接收字符串并輸出,直到接收字符串"End"為止
B.此程序循環(huán)接收字符串,接收到字符串"End"則輸出,否則程序終止
C.此程序循環(huán)接收字符串并輸出,直到接收字符串"End"為止,但因為代碼有錯誤,程序不能正常工作
D.此程序循環(huán)接收字符串并將其連接在一起,直到接收字符串"End"為止,輸出連接在一起的字符串
49.已知大寫字母A的ASCII碼值是65,小寫字母a的ASCII碼是97,則用八進(jìn)制表示的字符常量'\101'是A.字符AB.字符aC.字符eD.非法的常量
50.以下程序的輸出結(jié)果是main(){charcf[3][5]={"AAAA","BBB","CC"};printf("\"%s\"\n",cf[1]);;}
A.AAAAB.BBBC.BBBCCD.CC
51.下列程序的運行結(jié)果是()。main(){inta=-5,b=1,c=1;intx=0,Y=2,z=0;if(c>0)x=x+y;if(a<=0){if(b>0)if(c<=0)y=x-y;}elseif(c>0)Y=x-y;elsez=y;printf("%d,%d,%d\n",x,y,z);}
A.2,2,0B.2,2,2C.0,2,0D.2,0,2
52.以下各選項企圖說明一種新的類型名,其中正確的是______。
A.typedefv1int;
B.typedefv2=int;
C.typedefintv3;
D.typedefv4:int
53.設(shè)有以下聲明語句structex{intx;floaty;charz;}example;則下面的敘述中不正確的是______。
A.struct是結(jié)構(gòu)體類型的關(guān)鍵字
B.example是結(jié)構(gòu)體類型名
C.x,y,z都是結(jié)構(gòu)體成員名
D.structex是結(jié)構(gòu)體類型
54.以下程序intaa[3][3]={{2},{4},{6}};main(){inti,*p=&aa[0][0];for(i=0;i<2;i++){if(i==0)aa[i][i+1]=*p+1;else++p;printf("%d",*p);}}的輸出是______。
A.23B.26C.33D.36
55.若輸入173253,則以下程序的運行結(jié)果為______。main(){unsigneda;intn1,n2;scanf("%o",&a);printf("%o",getbits(a,4,8));}getbits(value,n1,n2)unsignedvalue;intn1,n2;{unsignedz;z=~0;z=(z>>n1)&(z<<(16-n2));z=value&z;z=z>>(16-n2);return(z);}
A.173253B.6C.8D.173
56.標(biāo)有/**/的語句的執(zhí)行次數(shù)是______。inty,i;for(i=0;i<20;i++){if(i%2==0)continue;y+=i;/**/}
A.20B.19C.10D.9
57.
下列程序的運行結(jié)果是()。
inty=5,x=14;
y=((x=3*Y,x+1),x-1);
printf("x=%d,y=%d",x,y);
A.x=27,y=27B.x=12,y=13C.x=15,y=14D.x=y=27
58.下面的程序段運行后,輸出結(jié)果是
inti,j,x=0;
staticinta[8][8];
for(i=0;i<3;i++)
for(j=0;j<3;j++)
a[i][j]=2*i+j;
for(i=0;i<8;i++)
x+=a[i][j];
printf("%d",x);
A.9B.不確定值C.0D.18
59.以下程序的功能是:給r輸入數(shù)據(jù)后計算半徑為r的圓面積s。程序在編譯時出錯。main()/*Beginning*/{intr;floats;scanf("%d",&);s=*π*r*r;printf("s=%f\n",s);}出錯的原因是
A.注釋語句書寫位置錯誤
B.存放圓半徑的變量r不應(yīng)該定義為整型
C.輸出語句中格式描述符非法
D.計算圓面積的賦值語句中使用了非法變量
60.語句“printf("%d",(a=2)&&(b=-2);”的輸出結(jié)果是______。
A.無輸出B.結(jié)果不確定C.-1D.1
四、選擇題(20題)61.若要求定義具有10個int型元素的一維數(shù)組a,則以下定義語句中錯誤的是()。
62.有以下程序:
程序的運行結(jié)果是()。
A.1212B.117C.1111D.127
63.在下列結(jié)論中,只有一個是錯誤的,它是()。
A.C語言允許函數(shù)的遞歸調(diào)用
B.C語言中的continue語句,可以通過改變程序的結(jié)構(gòu)而省略
C.有些遞歸程序是不能用非遞歸算法實現(xiàn)的
D.C語言中不允許在函數(shù)中再定義函數(shù)
64.
(19)關(guān)系表中的每一橫行稱為一個()
A.元組
B.字段
C.屬性
D.碼
65.下列數(shù)據(jù)結(jié)構(gòu)中,能用二分法進(jìn)行查找的是()。
A.順序存儲的有序線性表B.結(jié)性鏈表C.二叉鏈表D.有序線性鏈表
66.
67.(43)下列關(guān)于隊列的敘述中正確的是______。
A.在隊列中只能插入數(shù)據(jù)
B.在隊列中只能刪除數(shù)據(jù)
C.隊列是先進(jìn)先出的線性表
D.隊列是先進(jìn)后出的線性表
68.有以下程序:
執(zhí)行后輸出結(jié)果是()。
A.58B.56C.45D.24
69.以下描述錯誤的是
A.C程序中,函數(shù)可以直接或間接調(diào)用自己
B.函數(shù)調(diào)用時,函數(shù)名必須與所調(diào)用的函數(shù)名字完全一致
C.函數(shù)說明語句中的類型必須與函數(shù)返回值的類型一致
D.實參個數(shù)可以與形參個數(shù)不一致
70.以下選項中可用做c程序合法實數(shù)的是()。、、
A.3.0e0.2B..1e0C.E9D.9.12E
71.有以下程序main(){intc=35;printf("%d\n",c&c);}程序運行后的輸出結(jié)果是______。
A.0B.70C.35D.1
72.
73.若有以下定義:intt[3][2];,能正確表示t數(shù)組元素地址的表達(dá)式是______。
A.&t[3][2]B.t[3]C.t[1]D.*t[2]
74.軟件測試的目的是()。
A.評估軟件可靠性B.發(fā)現(xiàn)并改正程序中的錯誤C.改正程序中的錯誤D.發(fā)現(xiàn)程序中的錯誤
75.設(shè)變量已正確定義并賦值,以下正確的表達(dá)式是()。
A.X=Y+z+5,++YB.int(15.8%5)C.X=Y*5=X+ZD.X=25%5.0
76.
77.
78.
79.以下關(guān)于結(jié)構(gòu)化程序設(shè)計的敘述中正確的是()。A.在C語言中,程序的模塊化是利用函數(shù)實現(xiàn)的
B.結(jié)構(gòu)化程序使用sotoi吾句會很便捷
C.一個結(jié)構(gòu)化程序必須同時由順序、分支、循環(huán)三種結(jié)構(gòu)組成
D.由三種基本結(jié)構(gòu)構(gòu)成的程序只能解決小規(guī)模的問題
80.最簡單的交換排序方法是()。A.快速排序B.選擇排序C.堆排序D.冒泡排序
五、程序改錯題(1題)81.下列給定的程序中,函數(shù)proc()的功能是:計算并輸出m以內(nèi)最大的6個能被7或11整除的自然數(shù)之和。m的值由主函數(shù)傳人。例如,若m的值為600,則函數(shù)的值為3515。請修改程序中的錯誤,使它能得到正確結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計題(1題)82.規(guī)定輸入的字符串中只包含字母和*號。編寫函數(shù)fun,其功能是:刪除字符串中所有的*號。編寫函數(shù)時,不得使用C語言提供的字符串函數(shù)。
例如,字符串中的內(nèi)容為“****A*BC*DEF*G****”,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是“ABCDEFG”。
注意:部分源程序給出如下。
請勿改動maini)函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。
試題程序:
#include<conio.h>
#include<stdio.h>
voidfun(chara)
{
voidmain
{
chars[81];
print{("Enterastring:\n");
gets(s):
fun(S);
printf("Thestringafterdeleted:\n");
puts(s);
}
參考答案
1.D解析:中序遍歷的遞歸算法定義:①遍歷左子樹;②訪問根結(jié)點;③遍歷右子樹。前序遍歷的遞歸算法定義:①訪問根結(jié)點;②遍歷左子樹;③遍歷右子樹。后序遍歷的遞歸算法定義:①遍歷左子樹;②遍歷右子樹;③訪問根結(jié)點。根據(jù)前序遍歷的結(jié)果可知,a是根結(jié)點。由中序遍歷的結(jié)果dgbaechf可知,d、g、b是左子樹的結(jié)點,e、c、h、f是右子樹的結(jié)點。再由前序遍歷的結(jié)果bdg可知,b是a左邊子樹的根,由cefh可知,c是a右邊子樹的根。再由中序遍歷的結(jié)果dgb可知,d、g是b左邊子樹的結(jié)點,b右邊子樹無結(jié)點。再由前序遍歷結(jié)果dg可知,d為b左子樹的根,g是以d為根的子樹的右結(jié)點。至此,a的左子樹已完全弄清楚了。同樣的道理,可以弄清楚以c為根的子樹的結(jié)點位置。所以可知后序遍歷的結(jié)果是D。
2.B在計算機(jī)中,算法被定義為對一個問題求解步驟的一種描述,是求解問題的方法,它是指令的有限序列,其中每條指令表示一個或者多個操作。算法具有有窮性、確定性、可行性、輸入和輸出五大特點。
在本題中,選項A、C、D的說法明顯偏離了算法的定義,因此正確答案選B。
3.A函數(shù)名代表函數(shù)的入口地址,函數(shù)指針P指向一個同類型的函數(shù)f時,可以寫成“p=f;”,而不能寫成“P=&f;”,選項B錯誤。指針p指向一個數(shù)組f時,可以寫成“p=f;”,數(shù)組名f代表數(shù)組的首地址,選項C錯誤。指針變量指向的是變量的地址,選項D錯誤。char型根據(jù)轉(zhuǎn)化原則可以轉(zhuǎn)化為double類型。故本題答案為A選項。
4.B
5.B
6.DD【知識點】宏定義與數(shù)組地址的考察【解析】數(shù)組名本身就是地址,所以不需要在用&符號。C選項不能對所有元素賦值而是反復(fù)再給一個數(shù)值賦值且是死循環(huán)。
7.B解析:return中返回的是指針p的值,也就是形參p中存放的地址值。
8.A
9.A解析:在printf函數(shù)常用的格式說明中,每個格式說明都必須用“%”開頭,以—個格式字符作為結(jié)束,在此之間可以根據(jù)需要插入“寬度說明”、左對齊符號“-”、前導(dǎo)零符號“0”等。本題中用到了d和f,d代表輸出符號的十進(jìn)制整型數(shù),f代表以帶小數(shù)點的數(shù)學(xué)形式輸出浮點數(shù)(單精度和雙精度數(shù))。對于float和double類型的實數(shù),可以用“n1.n2”的形式來指定輸出寬度(n1和n2分別代表—個整常數(shù)),其中n1指定輸出數(shù)據(jù)的寬度(包括小數(shù)點),n2指定小數(shù)點后小數(shù)位的位數(shù),由于輸出格式是以緊湊格式輸出,因此選項A是正確的。
10.AC語言中的常量是指在程序運行過程中其值不能被改變的量,它可以用宏來定義,用一個符號名來代表。選項A錯誤,選項B、C、D正確。本題答案為A選項。
11.AC語言中的非執(zhí)行語句不會被編譯,不會被轉(zhuǎn)換成二進(jìn)制的機(jī)器指令,所以A選項錯誤。由C語言構(gòu)成的指令序列稱為C語言源程序,C語言源程序經(jīng)過C語言編譯程序編譯之后,生成一個擴(kuò)展名為.obj的二進(jìn)制文件(稱為目標(biāo)文件);最后要由“連接程序”把此目標(biāo)文件與C語言提供的各種庫函數(shù)連接起來生成一個擴(kuò)展名為.exe的可執(zhí)行文件。故本題答案為A選項。
12.A預(yù)處理命令是以“#”號開頭的命令,它們不是C語言的可執(zhí)行命令,這些命令應(yīng)該在函數(shù)之外書寫,一般在源文件的最前面書寫,但不是必須在起始位置書寫,所以B、c錯誤。C語言的預(yù)處理能夠?qū)崿F(xiàn)宏定義和條件編譯等功能,所以D錯誤。
13.B
14.A
15.D解析:putchar(c1)輸出1,putchar(c2)輸出2,printf('%c%c\\n',c5,c6)輸出45。
16.A
17.AB選項中函數(shù)“pow(x,e)”錯誤,應(yīng)該直接使用“exp(x)”函數(shù)。C選項中函數(shù)“abs(nx+ex)”錯誤,應(yīng)該使用fabs返回浮點數(shù)的絕對值。D選項中“pow(x,n)”參數(shù)順序錯誤。故本題答案為A選項。
18.C
19.C解析:這是一道考查fread函數(shù)的題。buf是一個指針,fread是讀入數(shù)據(jù)的存放地址;fwrite是輸出數(shù)據(jù)的地址(以上指的是起始地址)。
20.C解析:在關(guān)系模型數(shù)據(jù)庫中,基本結(jié)構(gòu)是二維表,這種二維表稱為關(guān)系。關(guān)系的列稱為屬性,一個具有N個屬性的關(guān)系稱為N元關(guān)系。注意:各種關(guān)系查詢語言與過程性語言和非過程性語言的關(guān)系,過程性語言的特點。
21.242424
22.return0return1return0,return1解析:如果a能被i整除,則a是素數(shù),返回值為0。如果a不能被i整除,則a不是素數(shù),返回值為1。
23.(x%i==0)(x%i==0)解析:為判數(shù)x是否是素數(shù),預(yù)置變量y的值為1(x可能是素數(shù)),然后用2至x/2的整數(shù)i測試對x的整除性,若x能被其中的某個整數(shù)整除,則x是合數(shù),置y的值為0(即x不是素數(shù)),結(jié)束循環(huán)測試;若循環(huán)中i都不能整除x,則x為素數(shù)。一般可用求余運算x%i是否等于0來判定i能否整除x,所以程序中的空格處可填(x%i==0)。
24.1212解析:程序中的ch1與ch2為字符型變量,輸入12后,ch1得到字符'1',ch2得到字符'2'。n1=ch1-'0'將字符1,轉(zhuǎn)換為數(shù)值1,同理,n2為1*10+2=12。程序執(zhí)行后輸出十進(jìn)制整數(shù)12。
25.黑箱或黑盒黑箱或黑盒解析:黑箱測試是根據(jù)程序規(guī)格說明所規(guī)定的功能來設(shè)計測試用例,它不考慮程序的內(nèi)部結(jié)構(gòu)和處理過程。常用的黑箱測試技術(shù)分為等價類劃分、邊界分析、錯誤猜測以及因果圖等。
26.2121解析:外層switch語句后面括號里的x的值為1,所以執(zhí)行從casel:后面的語句開始執(zhí)行,而cascl:后面語句也為switch語句,這個switch語句后面括號里的y的值為0,所以從該switch語句里的case0:開始執(zhí)行即執(zhí)行a++,這時a的值變?yōu)?,執(zhí)行完畢,遇到break語句,退出內(nèi)層switch語句,又回到外層switch語句,繼續(xù)執(zhí)行casel:下面的語句即case2:執(zhí)行完畢后,a自加1變?yōu)?,b自加1變?yōu)?。所以最后輸出的a和b的值為21。
27.邊界值分析法邊界值分析法解析:黑箱測試方法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征,而只是根據(jù)程序功能導(dǎo)出測試用例。常用的黑箱測試有等價類劃分、邊界值分析法和錯誤推測法3種。
28.str+strlen(p1)-1或str+strlen(str)-1殘str-1+strlen(str)或3tr-1+strlen(p1)t==0或!t或t=='\0'huiwen(str)str+strlen(p1)-1或str+strlen(str)-1殘str-1+strlen(str)或3tr-1+strlen(p1)\r\nt==0或!t或t=='\\0'\r\nhuiwen(str)解析:判斷回文教一般使用兩個指針或下標(biāo)變量分別從檢查串的第1個字符和最后一個字符開始相向移動,并比較兩者內(nèi)容是否相同,直到中間相遇一直相同則是回文數(shù),否則不是。函數(shù)huiwen中開始定義了兩個字符指針p1和p2,并讓p1指向str的開始位置,所以p2應(yīng)該指向str的尾部,即&str[strlen(sir)-1]或?qū)懗蓅tr+strlen(str)-1或者其他等價形式。然后使用一個循環(huán),循環(huán)str的長度的一半次數(shù),比較p1和p2的內(nèi)容,并分別遞增和遞減這兩個指針。若有不同,則讓標(biāo)志t為1,并跳出循環(huán)。所以最后一個if語句應(yīng)該為判斷標(biāo)志t是否為1,即應(yīng)該填t==0或者其他等價形式。在主函數(shù)中,應(yīng)該輸出huiwen()函數(shù)的返回結(jié)果,印最后一空應(yīng)該填huiwen(str)。
29.數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)
30.float*z
31.333,3解析:本題在while(n++<=1)語句后,直接加了分號,說明如果while()的條件為真時,該循環(huán)什么都不做:n++是先取n的當(dāng)前值和1做比較,然后再將n加1。第一次循環(huán),n=0時,循環(huán)條件n++=<1成立,執(zhí)行循環(huán),然后得到n=1。第二次循環(huán),n=1時,循環(huán)條件n++=1<=1成立,執(zhí)行循環(huán),然后得到n=2。第三次循環(huán),n=2時,循環(huán)條件n++=2<=1不成立,不執(zhí)行循環(huán),但在判斷循環(huán)條件時仍將n加1,得到n=3.退出循環(huán)后執(zhí)行printf語句,第二個printf語句輸出n++,是先輸出n的當(dāng)前值3,然后再將n加l,即程序結(jié)束后得到n=4,但輸出的是3。
32.lett.dat6*sizeof(char)lett.dat6*sizeof(char)解析:本題主要考查函數(shù)fwrite(char*pt,unsignedsize,unsignedn,F(xiàn)ILE*fp),把pt所指向的n*size個字節(jié)輸出到fp所指定的文件中。
33.s[i]>='0'&&s[i]<='9'或isdigit(s[i])或s[i]>=48&&s[i]<=57或s[i]<='9'&&s[i]>='0'或'9'>=s[i]&&'0'<=s[i]或'0'<=s[i]&&'9'>=s[i]或s[i]<=57&&s[i]>=48或57>=s[i]&&48<=s[i]或48<=s[i]&&57>=s[i]s[i]>=\'0\'&&s[i]<=\'9\'或isdigit(s[i])或s[i]>=48&&s[i]<=57或s[i]<=\'9\'&&s[i]>=\'0\'或\'9\'>=s[i]&&\'0\'<=s[i]或\'0\'<=s[i]&&\'9\'>=s[i]或s[i]<=57&&s[i]>=48或57>=s[i]&&48<=s[i]或48<=s[i]&&57>=s[i]解析:本題中,chars[80],d[80];定義了兩個字符型數(shù)組,可以放入80個字符。gets函數(shù)是C語言提供的一個專門用于讀字符串的函數(shù),它讀入全部字符(包括空格),直到遇到回車為止。本題中,讀入字符串s后,開始比較s中的每個字符是否為數(shù)字字符,因為字符數(shù)據(jù)在內(nèi)存中以相應(yīng)的ASCII碼存放,所以只需比較相應(yīng)的ASCII碼值是否在48(\'0\'的ASCII代碼)與57(\'9\'的ASCII代碼)之間,或者直接與\'0\',\'9\'進(jìn)行比較,如果是數(shù)字字符則將此字符存入d數(shù)組中,不是則繼續(xù)進(jìn)行下一字符的比較,直至s結(jié)束(即\'\\0\'的出現(xiàn))。將'\\0'字符作為字符串d結(jié)束標(biāo)志,最后調(diào)用puts函數(shù)輸出d。所以在空格處應(yīng)填入比較語句s[i]>=\'0\'&&s[i]<=\'9\'或isdigit(s[i])或s[i]>=48&&s[i]<=57或s[i]<=\'9\'&&s[i]>=\'0\'或9\'>>=s[i]&&\'0\'<=s[i]或\'0\'<=s[i]&&\'9\'>=s[i]或s[i]<=57&&s[i]>=48或57>=s[i]&&48<=s[i]或48<=s[i]&&57>=s[i]。
34.66解析:++的優(yōu)先級高于*,先作自加運算,b=++a*++a=2.0*3.0=6.0。b按實型輸出6.000000。
35.int**zint*\r\n*z解析:函數(shù)希望通過形參z帶回結(jié)果,形參z必須是指針類型的。由于返回整型結(jié)果,所以第一處填int*;函數(shù)返回前必須先把結(jié)果通過形參z間接引用傳回,第二處應(yīng)填*z。
36.黑箱法黑箱法
37.相鄰位置鄰接指針相鄰位置\r\n鄰接指針
38.0
39.原型化原型化
40.3535解析:考查swap()函數(shù)。函數(shù)swap(int*a,int*b)的功能是實現(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。
41.C解析:本題主要考查的知識點是聯(lián)合體的內(nèi)存使用。聯(lián)合體所占用的內(nèi)存空間為最長的成員所占用的空間,各個成員分量全部是從低地址方向開始使用內(nèi)存單元。不能在定義共用體變量時對它初始化。
42.D自然連接是一種特殊的等值連接,它要求兩個關(guān)系中進(jìn)行比較的分量必須是相同的屬性組,并且在結(jié)果中把重復(fù)的屬性列去掉,因此B錯誤。笛卡兒積是用R集合中的元素為第一元素,s集合中的元素為第二元素構(gòu)成的有序?qū)Γ虼薈錯誤。根據(jù)關(guān)系T可以很明顯地看出是從關(guān)系R與是系s中取得相同的關(guān)系組,所以使用的是交運算,選擇D。
43.D解析:字符在進(jìn)行數(shù)學(xué)運算時取其ASCⅡ碼值,“b”的ASCⅡ碼為98,則D項中表達(dá)式的值不為1。
44.B解析:字符串比較不能用兩個等號(==)來進(jìn)行比較,應(yīng)使用stremp(s1,s2)函數(shù)來比較。strcmp(s1,s2)函數(shù)的功能是:當(dāng)字符串s1和s2相等時,返回值為0,因此,當(dāng)表達(dá)式!strcmp(s1,s2)==1時,條件成立,執(zhí)行后面的語句,輸出theyareEqua1。
45.D解析:對二叉樹的前序遍歷是指先訪問根結(jié)點,然后訪問左于樹,最后訪問右子樹,并且在訪問左、右子樹時,先訪問根結(jié)點,再依次訪問其左、右于樹。
46.A解析:static聲明的外部變量只限于被本文件引用,而不能被其他文件引用static來聲明—個變量的作用有:①對局部變量用static聲明,則為該變量分配的空間在整個程序執(zhí)行期間始終存在;②全部變量用static聲明,則該變量的作用域只限于本文件模塊(即被聲明的文件中)。調(diào)用第—個fun,其兩個實參的值為(3,5+3)與7即8與7,在函數(shù)fun執(zhí)行結(jié)束返回15。第二次調(diào)用fun時,由于static為靜態(tài)類型,其值保留,執(zhí)行fun(5,3)后,其返回值為23,故選A。
47.B解析:continue是結(jié)束本次循環(huán),直接進(jìn)入到下次循環(huán)中,break用于循環(huán)語句中的作用是直接跳出本層循環(huán),能從多層循環(huán)中退出的語句除了goto語句,exit,return等語句也能直接跳出多層循環(huán)。注意:continue和break語句在while語句中的作用。
48.B解析:此題考查了字符串輸入函數(shù)gets和字符串比較函數(shù)strcmp,另外還有字符輸出函數(shù)putchar。Gets從標(biāo)準(zhǔn)輸入設(shè)備中讀入全部字符,包括空格,直到遇到回車符為止。strcmp是字符串比較函數(shù),strcmp(字符串1,字符串2),如果字符串1=字符串2,則函數(shù)值為0;如果字符串1>字符串2,則函數(shù)值為一正整數(shù);如果字符串1<字符串2,則函數(shù)值為一負(fù)整數(shù)。putchar(c)函數(shù)將字符c輸出到標(biāo)準(zhǔn)輸出設(shè)備上。
49.A本題考查的知識點是轉(zhuǎn)義字符。題目中的關(guān)鍵是八進(jìn)制101的十進(jìn)制是多少.八進(jìn)制的101轉(zhuǎn)換為十進(jìn)制為65,也就是字符A的ASCII。
50.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為所選。
51.A解析:本題考查ifelse語句的使用。先判斷第1個if語句,因為c=1>0,所以x=x+y=0+2=2。第1個if語句,因為a=-5<0,所以進(jìn)入下列的復(fù)合語句。經(jīng)判斷發(fā)現(xiàn),復(fù)合語句中第2個if語句的條件均不滿足,不執(zhí)行任何語句退出,在這個過程中y和z的值沒有發(fā)生變化。
52.C解析:C語言中可以使用typedef來重新定義已有的數(shù)據(jù)類型,相當(dāng)于為數(shù)據(jù)類型取個別名。
53.B解析:example是結(jié)構(gòu)體變量名。
54.A解析:觀察題目,可以發(fā)現(xiàn),*p=&aa[0][0]語句實際是將數(shù)組aa的首地址賦給了指針變量p,將i的值帶入for循環(huán)中,i=0時,aa[0][1]=3,*p=2;*p輸出的是指針?biāo)赶虻臄?shù)組值,此時p所指向的是aa[O][0],輸出2,而i=1時執(zhí)行了++p操作使指針向后移動指向了aa[0][1],所以在輸出*p時應(yīng)為3。
55.B
56.C
57.C解析:逗號表達(dá)式的求解步驟是先求解表達(dá)式1,然后依次求解表達(dá)式2,直到表達(dá)式N的值。整個逗號表達(dá)式的值就是最后一個表達(dá)式N的值。
表達(dá)式(x=3*y,x+1)中,第一個表達(dá)式x=3*y=3*5=15;第二個表達(dá)式x+1=16,但沒有給x或y賦值,所以x還是等于15;第3個表達(dá)式x-1=15-1=14,所以y的值為14。
58.C解析:本題主要考查的是用二維數(shù)組首地址和下標(biāo)來引用二維數(shù)組元素的方法。通過分析可知,程序中的雙重循環(huán)定義了一個如下的二維數(shù)組:
01
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 安徽省-2023年-社區(qū)工作者-上半年筆試真題卷
- 包裝衛(wèi)生材料的防水透氣性和紫外線輻射性鑒定考核試卷
- 福州房產(chǎn)轉(zhuǎn)讓合同起草與審核
- 供水廠改造評審案例
- 文化產(chǎn)業(yè)項目招投標(biāo)
- 醫(yī)療機(jī)構(gòu)市場營銷與市場調(diào)研
- 環(huán)保行業(yè)質(zhì)量獎評選
- 短視頻編劇合作合同樣本
- 遼陽市物業(yè)應(yīng)急預(yù)案編制
- 眼鏡連鎖店前臺聘用協(xié)議
- 【課件】Unit4Readingforwriting課件高中英語人教版(2019)必修第二冊
- 一年級海洋教育教案
- 分布函數(shù)(課堂PPT)
- 聚氨酯硬泡沫配方及計算
- 國家開放大學(xué)電大《物流信息系統(tǒng)管理》期末題庫及答案
- 中國聯(lián)通M2M UICC卡技術(shù)規(guī)范
- 田徑運動會的編排和記錄
- 反歧視、反騷擾、反強(qiáng)迫管理程序
- 質(zhì)控圖與質(zhì)控規(guī)則
- 小學(xué)科學(xué)月相變化(課堂PPT)
- 220KV變電站工程標(biāo)準(zhǔn)化工藝施工實施細(xì)則DOC
評論
0/150
提交評論