版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2022年河北省邯鄲市全國計算機等級考試C語言程序設計學校:________班級:________姓名:________考號:________
一、單選題(20題)1.一個有8個頂點的有向圖,所有頂點的入度出度之和與所有頂點的出度之和的差是()
A.16B.4C.0D.2
2.
3.設x=011050,則x=x&01252的值是()。A.0000001000101000
B.1111110100011001
C.0000001011100010
D.1100000000101000
4.以下敘述中錯誤的是()。
A.可以通過typedef增加新的類型
B.可以typedef將已存在的類型用一個新的名字來代表
C.用typedef定義新的類型名后,原有類型名仍有效
D.用typedef可以為各種類型起別名,但不能為變量起別名
5.有下列程序:
程序執(zhí)行后的輸出結果是()。A.3,7,3,7B.7,3,7,3C.3,7,7,3D.7,3,3,7
6.有以下程序:#include<stdio.h>voidfun(char*a,charB){while(*(a++)!=‘0’);while(*(a-1)<B)*(a--)=*(a-1);*(a--)=b;}main(){chars[8]=“pmfc”,r,c;c=getchar();fun(s,c);puts(s);}程序運行時輸入k并按<Enter>鍵,則輸出結果為()。
A.pmfkcB.pmfckC.kpmfcD.pmkfc
7.以下有關scanf函數(shù)的敘述中錯誤的是()。
A.在scanf函數(shù)的格式字符前既可以加入正整數(shù)指定輸入數(shù)據(jù)所占的寬度,也可以對實數(shù)指定小數(shù)位的寬度
B.scanf函數(shù)有返回值,其值就是本次調用scanf函數(shù)時正確讀入的數(shù)據(jù)項個數(shù)
C.scanf函數(shù)從輸入字符流中按照格式控制指定的格式解析出相應數(shù)據(jù),送到指定地址中
D.在scanf函數(shù)中的格式控制字符串不會輸出到屏幕上
8.棧和隊列的共同點是()。
A.都是先進先出B.都是先進后出C.只允許在端點處插入和刪除元素D.沒有共同特點
9.以下敘述中錯誤的是()。
A.形參可以是常量、變量或表達式
B.實參可以是常量、變量或表達式
C.實參的類型應與形參的類型賦值兼容
D.實參的個數(shù)應與形參的個數(shù)一致
10.
11.采用表結構來表示數(shù)據(jù)和數(shù)據(jù)間聯(lián)系的模型是()。
A.層次模型B.概念模型C.網(wǎng)狀模型D.關系模型
12.已知函數(shù)的調用形式為fread(buf,size,count,fp),參數(shù)buf的含義是
A.一個整型變量,代表要讀入的數(shù)據(jù)項總數(shù)
B.一個文件指針,指向要讀的文件
C.一個指針;指向要讀入數(shù)據(jù)的存放地址
D.一個存儲區(qū),存放要讀的數(shù)據(jù)項
13.
14.第
4
題
棧底至棧頂依次存放元素A、B、C、D,在第五個元素E入棧前,棧中元素可以出棧,則出棧序列可能是
A.ABCEDB.DCBEAC.DBCEAD.CDABE
15.下列敘述中錯誤的是()。A.在程序中凡是以“#”開始的語句行都是預處理命令行
B.預處理命令行的最后不能以分號表示結束
C.#defineMAX是合法的宏定義命令行
D.C程序對預處理命令行的處理是在程序執(zhí)行的過程中進行的
16.按照“先進先出”組織數(shù)據(jù)的數(shù)據(jù)結構是()。
A.隊列B.棧C.雙向鏈表D.二叉樹
17.
18.用樹形結構來表示實體之間聯(lián)系的模型稱為()。
A.關系模型B.層次模型C.網(wǎng)狀模型D.數(shù)據(jù)模型
19.以下程序的輸出結果是()。main(){inti,a[4][4]一{{1,3,5),{2,4,6},{3,5,7}};printf("%(1%d%d%d\n".a[O][3],a[1][2],a[2][1],a[3][0];}A.0650B.1470C.5430D.輸出值不定
20.若輸入“abcdef”“abdef”,下述程序的輸出結果為()。#include<stdio.h>#include<string.h>main{intn;chars1[20],s2[20],*p1,*p2;scanf("%s",s1);scanf("%S",s2);p1=s1;p2=s2;n=strcmp(p1,p2);printf("Vood\n",n);}A.-1B.0C."abcdef"D."abdef"
二、2.填空題(20題)21.下列程序的功能是將字符串s中所有的字符c刪除。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{chars[80];
inti,j;
gets(s);
for(i=j=0;s[i]!='\0';i++)
if(s[i]!='c')
s[j]='\0';
puts(s);
}
22.以下程序的作用是:從名為filea.dat的文本文件中逐個讀入字符并顯示在屏幕上。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{FILE*fp;charch;
fp=fopen(【】);
ch=fsetc(fp);
while(!feof(fp)){putchar(ch);ch=fgetc(fp);}
putchar('\n');fclose(fp);
}
23.以下程序用于判斷a,b,c能否構成三角形,若能,輸出YES,否則輸出NO。當給a,b,c輸入三角形三條邊長時,確定a,b,c能構成三角形的條件是需同時滿足三個條件:a+b>c,a+c>b,b+c>a。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{floata,b,c;
scanf("%f%f%f",&a,&b,&c);
if(【】)printf("YES\n");/*a.b.c能構成三角形*/
elseprinff("NO\n");/*a.b.c不能構成三解形*/
}
24.x和y都是double型變量,x的初值為4.0,y的初值為2.0,則表達式pow(y,fabs(x))的值為______。
25.語句:x++;++x;x=1+x;執(zhí)行后都使變量x中的值增1,請寫出一條同一功能的賦值語句______。
26.若x為int類型,請寫出與!x等價的C語言表達式______。
27.函數(shù)my_cmp()的功能是比較字符串s和t的大小,當s等于t時返回0,否則返回s和t的第一個不同字符的ASCII碼差值,即s>t時返回正值,s<t時返回負值。請?zhí)羁铡?/p>
My_cmp(char*s,char*t)
{while(*s==*t)
{if(*s==′\0)return0;
++s;++t;
}return【】;
}
28.在先左后右的原則下,根據(jù)訪問根結點的次序,二叉樹的遍歷可以分為三種;前序遍歷、【】遍歷和后序遍歷。
29.有以下程序:
main()
{inta[]={1,2,3,4,5,6,7,8,9,0},*p;
for(p=a;p<a+10;p++)printf("%d,",*p);
}
程序運行后的輸出結果是【】。
30.下面程序把從終端讀入的10個整數(shù)以二進制方式寫入一個名為bi.dat的新文件中。
#include<stdio.h>
FILE*fp;
main()
{inti,j;
if(fp=fopen(【】)==NULL)exit(0);
for(i=0;i<10;i++)
{scanf("%d",&j);
fwrite(&j,sizeof(int),1,【】;
}
fclose(fp);
}
31.下列程序的功能是對輸入的一行字符中的數(shù)字字符的字面值累加,輸出此累加和,請?zhí)羁铡?/p>
#include<stdio.h>
#include<ctype.h>
main()
{charc;
inta,s=0;
while(______)
if(isdigit(C))
{a=c-'0';s+=a;}
printf("s=%d",s);
}
32.設有以下定義:
structss
{intinfo;structss*link;}x,y,z;
且已建立如下圖所示鏈表結構,
請寫出刪除點y的賦值語句【】。
33.排序是計算機程序設計中的一種重要操作,常見的排序方法有插入排序、______和選擇排序。
34.若想通過以下輸入語句給a賦值1,給b賦值2.則輸入數(shù)據(jù)的形式應該是【】。
inta,b;
scanf("a=%d,b=%d",&a,&b);
35.數(shù)據(jù)結構分為邏輯結構與()。
36.某二叉樹中度為2的結點有18個,則該二叉樹中有【】個葉子結點。
37.下列程序段的輸出結果是【】。
intn='c';
switch(n++)
{default:printf("error");break;
case'a':
case'A':
case'b':
case'B':printf("good");break;
case'c':case'C':printf("pass");
case'd':case'D':printf("warn");
}
38.數(shù)據(jù)結構包括數(shù)據(jù)的邏輯結構、數(shù)據(jù)的【】以及對數(shù)據(jù)的操作運算。
39.設有如下宏定義
#defineMYSWAP(z,x,y)
{z=x;x=y;y=z;}
以下程序段通過宏調用實現(xiàn)變量a,b內容交換,請?zhí)羁铡?/p>
floata=5,b=16,c;
MYSWAP(【】a,b);
40.若s是int型變量,且s=8,則s%3+(s+1)%3表達式的值為()。
三、1.選擇題(20題)41.C語言程序的基本單位是______。
A.程序行B.語句C.函數(shù)D.字符
42.語句“printf("a\bhow\'are\'y\\\bou\n");”的輸出結果是()。
A.a\bhow\'are\'y\\bou
B.a\bhow\'are\'y\bou
C.how'are'you
D.ahow'are'y\bou
43.下列關于棧的描述中錯誤的是()
A.棧是先進后出的線性表B.棧只能順序存儲C.棧具有記憶作用D.對棧的插入與刪除操作中,不需要改變棧底指針
44.可在C程序中用作用戶標識符的一組標識符是A.and2007
B.Date_y-m-d
C.HiDr.Tom
D.caseBigl
45.軟件開發(fā)離不開系統(tǒng)環(huán)境資源的支持,其中必要的測試數(shù)據(jù)屬于A.硬件資源B.通信資源C.支持軟件D.輔助資源
46.下列有關數(shù)據(jù)庫的描述,正確的是______。
A.數(shù)據(jù)庫是一個DBF文件B.數(shù)據(jù)庫是一個關系C.數(shù)據(jù)庫是一個結構化的數(shù)據(jù)集合D.數(shù)據(jù)庫是一組文件
47.已知字母A的ASCII碼為十進制的65,下面程序main(){charch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}的輸出是_________。
A.67,DB.B,CC.C,DD.不確定的值
48.下列程序段的運行結果是()。#include<stdio.h>voidmain(){charstr[]="ABC",*p=str;printf("%d\n",*(p+3));}
A.67B.0C.字符'C'的地址D.字符'C'
49.在下列選項中,沒有構成死循環(huán)的程序段是()。
A.inti=100;for(;;){i=i%10+1;if(i>10)break;}
B.while(1);
C.intk=0;do{++k;}while(k<=10);
D.ints=12;while(s);--s;
50.若有如下程序:main(){intn;for(n=0;n<9;n++){if(n<1){printf("%d",n);continue;}if(n==4)break;printf("%d",n);}}則循環(huán)體執(zhí)行的次數(shù)是()。
A.1B.5C.9D.死循環(huán)
51.以下程序輸出的結果為______。main(){char*alpha[6]={"ABCD","EFGH","IJKL","MNOP","QRST","UVWX"};char**p;inti;p=alpha;for(i=0;i<4;i++)printf("%s",p[i]);}
A.ABCDEFGHIJKLB.ABCDC.ABCDEFGHIJKLMNOPD.AEIM
52.有以下程序:voidswap1(intC[]){intt;t=c[0];c[0]=C[1];c[1]=t;}voidswap2(intc0,intc1){intt;t=c0;c0=c1;c1=t;}main(){inta[2]={3,5},b[2]={3,5);swapl(a);swap2(b[0],b[1]);printf("%d%d%d%d\n",a[0],a[1],b[0],b[1]);}其輸出結果是
A.5353B.5335C.3535D.3553
53.有以下程序:#include<string.h>main(){charstr[][20]={"Hello","Beijing"},*p=str;printf("%d\n",strlen(p+20));}程序運行后的輸出結果是______。
A.0B.5C.7D.20
54.按照“后進先出”原則組織數(shù)據(jù)的數(shù)據(jù)結構是()。
A.隊列B.棧C.雙向鏈表D.二叉樹
55.若x為int類型變量,則執(zhí)行以下程序段后的x值是______。x=6;x+=x-=x*x;
A.36B.-60C.60D.-24
56.有以下程序floatfun(intx,inty){return(x+y);}main(){inta=2,b=5,c=8;printf("%3.0f\n",fun((int)fun(a+c,b),a-c));}程序運行后的輸出結果是
A.編譯出錯B.9C.21D.9
57.有如下程序段int*p,a=10,b=1;p=&a;a=*p+b;執(zhí)行該程序段后,a的值為______。
A.12B.11C.10D.編譯出錯
58.以下符合C語言語法的實型常量是
A.1.2E0.5B.3.14159EC.5.00E-03D.E15
59.下列選項中不合法的十六進制數(shù)是()。
A.OxffB.OXllC.OxlgD.OXabc
60.下列關系運算中,能使經運算后得到的新關系中元組個數(shù)少于原來關系中元組個數(shù)的是()。
A.選擇B.投影C.連接D.并
四、選擇題(20題)61.下列敘述中正確的是()。
A.線性表的鏈式存儲結構與順序存儲結構所需要的存儲空間是相同的
B.線性表的鏈式存儲結構所需要的存儲空間一般要多于順序存儲結構
C.線性表的鏈式存儲結構所需要的存儲空間一般要少于順序存儲結構
D.線性表的鏈式存儲結構所需要的存儲空間與順序存儲結構沒有任何關系
62.有以下程序
#include"stdio.h"
main()
{charstr[]="tomeetme",str1[]="toseeyou";
char*p=str,*p1=str1;
inti;
for(i=0;i<7;i++)
if(*(p+i)==*(p1+i))
putchar(*(p+i));
printf("\n");
}
程序的運行結果是
A.to
B.tomeet
C.toee
D.程序段不能通過編譯
63.在軟件開發(fā)中,需求分析階段可以使用的工具是()。A.N—s圖B.DFD圖C.PAD圖D.程序流程圖
64.
有以下程序:
main()
{intk=5,n=0;
do
{switch(k)
{case1:
case3:n+=l;k--;break;
defalut:n=0;k--;
case2:
case4:n+=2;k--;break:
}
printf("%d",n);
}while(k>0&&n<5);
}
程序運行后的輸出結果是()。
A.235B.0235C.02356D.2356
65.
66.有以下程序:#include<stdio.h>main(){charcl=1,c2=2;cl=getchar();c2=getchar();putchar(c1);putcha:(c2);}當程序運行時輸入a<回車>后,下列敘述中正確的是()。A.變量c1被賦予字符a,c2被賦予回車符
B.程序將等待用戶輸入第2個字符
C.變量c1被賦予字符a,c2中仍是原有字符2
D.變量c1被賦予字符a,c2中將無確定值
67.第
42
題
下面說明不正確的是
A.chara[10]="china";
B.chara[10],*p=a;p="china"
C.char*a;a="china";
D.chara[10],*p;p=a="china"
68.有以下程序:
程序運行后的輸出結果是()。
A.61B.70C.63D.71
69.
70.下面不屬于需求分析階段任務的是()。
A.確定軟件系統(tǒng)的功能需求B.確定軟件系統(tǒng)的性能需求C.制定軟件集成測試計劃D.需求規(guī)格說明書評審
71.有以下程序:
程序運行后的輸出結果是()。.
A.3,3B.1,1C.2,3D.1,2
72.對下列二叉樹
進行中序遍歷的結果是()。
A.ACBDFEGB.ACBDFGEC.ABDCGEFD.FCADBEG
73.設有定義:,以下不能將一行(不超過80個字符)帶有空格的字符串正確讀入的語句或語句組是()。
74.設有下列二叉樹:
對此二叉樹中序遍歷的結果為()。
A.ACBDEFB.DEBFCAC.ABDECFD.DBEAFC
75.有以下程序:
程序運行后的輸出結果是()。
A.b,B"b,AB.b,B,B,AC.a,B,B,aD.a,B,a,B
76.
77.有以下程序:
若想通過鍵盤輸入,使得al的值為12,a2的值為34,cl的值為字符a,c2的值為字符b,程序運行后的輸出結果是:l2,a,34,b。則正確的輸入格式是(以下-代表空格,<;CR>;代表回車)()。
A.12-a34-b<CR>
B.12-a-34-b<CR>
C.12,a,34,b<CR>
D.12a34b<CR>
78.下列關于二叉樹的敘述中,正確的是()。
A.葉子結點總是比度為2的結點少一個
B.葉子結點總是比度為2的結點多一個
C.葉子結點數(shù)是度為2的結點數(shù)的兩倍
D.度為2的結點數(shù)是度為1的結點數(shù)的兩倍
79.若有定義:inta,h;通過語句:scanf(”%d;%d”,&a,&B.;,能把整數(shù)3賦給變量a,5賦給變量b的輸入數(shù)據(jù)是()。
A.35B.3,5C.3;5D.35
80.(55)在設計程序時,應采納的原則之一是()
A.程序結構應有助于讀者理解
B.不限制goto語句的使用
C.減少或取消注解行
D.程序越短越好
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:判斷一個整數(shù)m是否是素數(shù),若是返回1,否則返回0。在main()函數(shù)中,若proc()返回1,則輸出″YES″;若proc()返回0,則輸出″NO″!
請修改程序中的錯誤,使它能得出正確的結果。
注意:不要改動main)函數(shù),不得增行或刪行,也不得,t更改程序的結構。
試題程序:
六、程序設計題(1題)82.編寫函數(shù)fun,其功能是:求ss所指字符串中指定字符的個數(shù),并返回此值。例如,若輸入字符串123412132,輸入字符為1,則輸出3。
注意:部分源程序在文件PROCl.C中。
請勿改動主函數(shù)main和其他函數(shù)中的任何內容,僅在函數(shù)fun的花括號中填人你編寫的若干語句。
參考答案
1.C
2.B
3.A本題考查按位與運算,按位與就是相同為1,不同為0,把x=011050化成二進制為0001001000101000,把01252化成二進制為0000001010101010,兩者相與得0000001000101000。
4.A關鍵字typedet的作用只是將C語言中的已有的數(shù)據(jù)類型作了置換,并不是增加新的類型,所以A)錯誤。
5.C程序定義兩個整型變量i、j,初值為3,7。另外,定義兩個整型指針變量p、q,其中p指向i,q指向j。將i、j的地址傳給swap函數(shù)。在swap函數(shù)中,a指向i,b指向j。通過臨時變量t交換a和b指向的值,此時a指向的實參i、b指向的實參j的值發(fā)生了交換。即a指向i的值為7,b指向j的值為3;再通過臨時變量tp交換a和b的指針值,使得a指向j,b指向i。所以swap中輸出a指向的值為3(j),b指向的值為7(i);swap函數(shù)調用結束后,輸出p和q指向的值,即i、j的值為7、3。所以程序輸出:3,7,7,3。本題答案為C選項。
6.Dmain函數(shù)定義一個字符數(shù)組s,使用字符串“pmfc”初始化;然后通過getchar讀取一個字符k到字符變量c;再將字符串s和字符c傳入fun函數(shù)。函數(shù)fun首先通過while循環(huán)遍歷字符串s,直到指針a指向字符串結束標識‘\\0’后的一個字符,如下圖所示。接著通過while循環(huán)逆序遍歷字符串s,首先a-1的字符位‘\\0’,它的ASCII值為0,小于b(字符‘k’)的ASCII值107,那么將‘\\0’賦給下標為5的元素位置。接著繼續(xù)向前遍歷,同理,將‘c’(ASCII值為99)賦給下標為4的元素位置,將‘f’(ASCII值為102)賦給下標為3的元素位置。由于‘m’(ASCII值為109)大于b,因此循環(huán)結束,將b(字符‘k’)賦給下標為2的元素位置,此時str字符串如下。故本題答案為D選項。
7.A在scanf函數(shù)的格式字符前可以加入一個正整數(shù)指定輸入數(shù)據(jù)所占的寬度,但不可以對實數(shù)指定小數(shù)位的寬度,選項A錯誤,其他選項正確。故本題答案為A選項。
8.C解析:棧和隊列都是操作受限制的線性表,只允許在端點插入和刪除。不同點是:棧只允許在表的一端進行插入和刪除操作,而隊列允許在表的一端進行插入操作,而在另一端進行刪除操作。
9.A函數(shù)中,形參必須是變量,實參可以是常量、變量或表達式,選項A錯誤,選項B正確;實參的個數(shù)和類型要與形參一致,選項C、D正確。本題答案為A選項。
10.C
11.D關系模型采用二維表來表示,簡稱表。本題答案為D選項。
12.C解析:這是一道考查fread函數(shù)的題。buf是一個指針,fread是讀入數(shù)據(jù)的存放地址;fwrite是輸出數(shù)據(jù)的地址(以上指的是起始地址)。
13.A
14.B解析:棧操作原則上“后進先出”,棧底至棧頂依次存放元素A、B、C、D,則表明這4個元素中D是最后進棧,B、C處于中間,A最早進棧。所以出棧時一定是先出D,再出C,最后出A。
15.C解析:預處理命令行是以“#”開始的語句,預處理命令行的最后不能以分號表示結束,預處理命令行。其中宏定義的字符替換的定義格式為:#define標識符字符串,預處理命令行是在系統(tǒng)對源程序進行編譯之前進行處理的,不是在程序執(zhí)行的過程中。
16.A隊列是一種特殊的線性表,只允許在表的一端插八元素,在表的另一端刪除元素,插入元素的一端叫“隊尾”,刪除元素的一端叫“隊頭”。先插入的元素先被刪除,是按“先進先出”的原則組織數(shù)據(jù)的。
【知識拓展】“隊列”和“?!倍际且环N特殊的線性表。之所以稱之為“隊列”,其形式如“排隊”。要講究“先來后到”,先進先出,后進后出。
17.C
18.B解析:在數(shù)據(jù)庫系統(tǒng)中,由于采用的數(shù)據(jù)模型不同,相應的數(shù)據(jù)庫管理系統(tǒng)(DBMS)也不同。目前常用的數(shù)據(jù)模型有3種:層次模型、網(wǎng)狀模型和關系模型。在層次模型中,實體之間的聯(lián)系是用樹結構來表示的,其中實體集(記錄型)是樹中的結點,而樹中各結點之間的連線表示它們之間的關系。所以,本題的正確答案是B。
19.A當所賦的值不夠其列的寬度時,系統(tǒng)在其后自動補0,因此a[0][3]=0,a[1][2]=6,a[2][1]=5,a[3][0]=0,故選擇A選項。
20.D本題考查字符串比較函數(shù)strcmp(s1,s2),若s1>s2,則返回1;若s1=s2,則返回0;若s1<s2,則返回-1。字符串依次比較的是它們字符的ASCIl碼值。
21.S[j++]=s[i]S[j++]=s[i]解析:循環(huán)開始后如果數(shù)組s中儲存值與字符c相同,則i++直接跳過當前值;如果不相同,則將當前值賦予數(shù)組指定位置,并通過j++將下標加1,指向下一元素要存儲的位置。
22.filea.dat"r"filea.dat,'r'解析:fopen函數(shù)的調用方式通常為fopen(文件名,使用文件方式)。本題中要求程序可以打開filea.dat文件,并且是要讀取文件中的內容,所以空白處應當填入'filea.dat','r'。
23.(a+b>c)&&(a+c>b)&&(b+c>a)(a+b>c)&&(a+c>b)&&(b+c>a)解析:根據(jù)構成三角形的條件:兩邊之和大于第三邊,得出空格應該填(a+b>c)&&(a+c>b)&&(b+c>a)或與其等價的形式。
24.1616解析:函數(shù)運算不改變數(shù)據(jù)類型,所以結果也是double型,fabs(x)是對x取絕對值,pow(y,fabs(x))是y的labs(x)次冪,即2.04。0=16.000000(注意;結果為double型)。
25.x+=1x+=1解析:本題考查“++”,“--”運算符。“++”、“--”只能作用于變量,不能用于表達式或常量;前綴形式是在使用變量之前先將其值增1或減1,后綴形式是先使用變量原來的值,使用完后再使其增1或減1。
26.x==0x==0解析:!x的邏輯意思就是x為非,即x==0。
27.*s-*t*s-*t解析:兩字符串大小比較必須從它們的首字符開始,在對應字符相等情況下循環(huán),直至不相等結束。相等時,若字符串已到了字符串的結束標記符,則兩字符串相同,函數(shù)返回0值;如還有后繼字符,則準備比較下一對字符。對應字符不相同,循環(huán)結束。循環(huán)結束時,就以兩個當前字符的差返回,所以在空框處應填入*s-*t,保證在s>t時,返回正值,當s<t時,返回負值。
28.中序中序解析:在先左后右的原則下,根據(jù)訪問根結點的次序,二叉樹的遍歷可以分為三種:前序遍歷、中序遍歷和后序遍歷.前序遍歷是指在訪問根結點、遍歷左子樹與遍歷右子樹這三者中,首先訪問根結點,然后遍歷左子樹,最后遍歷右子樹;并且遍歷左、右子樹時,仍然先訪問根結點,然后遍歷左子樹,最后遍歷右子樹。中序遍歷指在訪問根結點、遍歷左了樹與遍歷右子樹這三者中,首先遍歷左子樹,然后訪問根結點,最后遍歷右子樹:并且遍歷左、右子樹時,仍然先遍歷左子樹,然后訪問根結點,最后遍歷右子樹。后序遍歷指在訪問根結點、遍歷左子樹與遍歷右子樹這三者中,首先遍歷右子樹,然后訪問根結點,最后遍歷左子樹;并且遍歷左、右子樹時,仍然光遍歷右子樹,然后訪問根結點,最后遍歷左子樹。
29.12345678901,2,3,4,5,6,7,8,9,0,解析:p指向a的首地址。a+10表示的是a[10]的地址,嘲此此程序的功能就是輸出數(shù)組a。
30."bi.dat"fp'bi.dat'\r\nfp解析:打開文件函數(shù)fopen的參數(shù)是文件名,因此有fopen('bi.dat');而寫文件的參數(shù)是文件指針,因此有fwrite(&j,sizeof(int),1,fp);
31.(c=getchar())!='\n'(c=getchar())!='\\n'解析:分析題目可知,程序中運用函數(shù)c=getchar()從標準輸入設備讀取下一個字符,而且是一行的字符(即沒有換行),所以條件為(c=getchar())!='\\n'。
32.x.link=&z;或x.link=y.link;或x.link=x.link->link;或x.link=*(x.link).link;x.link=&z;或x.link=y.link;或x.link=x.link->link;或x.link=*(x.link).link;解析:要刪除結點y,只需讓結點x的指針域指向y結點的指針域所指向的后續(xù)結點就可,因此把結點z的地址賦給x的指針域就可以了,即讓結點x的指針域指向結點z。而結點z的地址保存在結點y的指針域中,因此只需把結點y的指針域賦值給結點x的指針域即可。
33.交換排序交換排序解析:所謂排序是指將一個無序序列整理成按值非遞減順序排列成的有序序列,常用的排序方法有:交換排序、插入排序和選擇排序。其中交換排序包括冒泡排序和快速排序,插入排序包括簡單插入排序和希爾排序,選擇排序包括直接選擇排序和堆排序。
34.a=1b=2
35.存儲結構存儲結構解析:數(shù)據(jù)結構是指相互之間存在一種或多種特定關系的數(shù)據(jù)元素的集合,即數(shù)據(jù)的組織形式。它分為數(shù)據(jù)的邏輯結構和數(shù)據(jù)的存儲結構。
36.1919解析:根據(jù)二叉樹的性質:在任意一棵二叉樹中,度為。的結點(即葉子結點)總是比度為2的結點多一個。本題中度為2的結點數(shù)為18,故葉子結點數(shù)為18+1=19個。
37.passwarnpasswarn解析:n++是在執(zhí)行完其所在的語句后再加1,因此,在執(zhí)行case的時候,n的值依然為'c',執(zhí)行case'c'后面的語句,先打印出“pass”;在執(zhí)行完case'c'后,未遇到break跳出switch,便接著執(zhí)行下面的語句,又打印出warn。所以此題輸出結果是passwarn。
38.存儲結構數(shù)據(jù)結構包括3個方面,即數(shù)據(jù)的邏輯結構、數(shù)據(jù)的存儲結構及對數(shù)據(jù)的操作運算。
39.cc解析:該題考查以下兩個知識點:
(1)用一個指定的標識符(即名字)來代表一個字符串,它的一般形式為#define標識符字符串
(2)在MYSWAP宏定義中,利用中間變量z來交換x和y的值,所以要實現(xiàn)a和b的交換,只需通過中間變量即可,所以,此處應填c。
40.22解析:考查基本表達式的計算,“%”運算符的功能是取余。題中條件s=8,則s%3=2,(s+1)%3=9%3=0,所以表達式s%3+(s+1)%3=2+0=2。
41.C解析:C語言是一個函數(shù)語言,C語言的主體就是一個主函數(shù),然后有庫函數(shù)和用戶自定義的函數(shù)來配合主函數(shù)完成一系列的任務,所以說,C語言的基本單位是函數(shù)。
42.C解析:“\\b”格式符表示退格,功能是將它后面的字母把它前面的字母覆蓋,導致“\\b'’格式符前面的字母不能輸出;“\\'”格式符表示輸出單引號字符;“\\\\”格式符表示輸出反斜線字符。
43.B解析:在棧中,允許插入與刪除的一端稱為棧頂,不允許插入與刪除的另一端稱為棧底。棧頂元素總是最后被插入的元素,從而也是最先能被刪除的元素;棧底元素總是最先被插入的元素,從而也是最后才能被刪除的元素。即棧是按照先進后出(FILO,F(xiàn)irstInLastOut)或后進先出(LIFO,LastInFirstOut)的原則組織數(shù)據(jù)的,因此,棧也被稱為先進后出表或后進先出表。由此可以看出,棧具有記憶作用。答案B錯在帶鏈的棧的結點存儲順序與其邏輯順序是可以不一致的。
44.A解析:在C語言中,合法標識符的命名規(guī)則是:標識符可以由字母、數(shù)字和下畫線3種字符組成,且第一個字符必須為字母或下畫線。C語言的標識符可以分為關鍵字、預定義標識符和用戶標識符。選項B)和C)中的橫線以及點都不合法,選項D)中的case為C語言關鍵字。
45.D軟件開發(fā)離不開系統(tǒng)環(huán)境資源的支持,其中主要的資源有硬件資源、通信資源、輔助資源等。(1)硬件資源是指組成計算機及相關應用所需要的硬件,它是軟件開發(fā)必不可少的資源,因為無論什么樣的軟件工具都需要在硬件上完成任務,它是其他資源的基礎資源。(2)通信資源是指為軟件開發(fā)提供通信支撐的資源,它與測試數(shù)據(jù)無關。(3)支持軟件是指為軟件開發(fā)提供操作平臺的軟件,如常用的面向對象開發(fā)的Rose軟件,它主要是軟件開發(fā)的工具。通過對上述分析的總結,可以知道本題的正確答案選D。
46.C解析:數(shù)據(jù)庫(Database,簡稱DB)是數(shù)據(jù)的集合,它具有統(tǒng)一的結構形式并存放于統(tǒng)一的存儲介質內,是多種應用數(shù)據(jù)的集成,并可被各個應用程序所共享。數(shù)據(jù)庫中的數(shù)據(jù)具有“集成”、“共事”之特點。
47.A解析:由于字符“5”和“3”的ASCII碼相差為2,所以ch1經過運算后的值應為65+2=67;同理,ch2經過運算后的值應為65+3=68,即是字符“D”。
48.B解析:先定義了一個指向字符型數(shù)組str的指針p,指針p旨向數(shù)組str的首地址,p+3將指針指向str[3],又因為字符型數(shù)組在存放字符串時會自動在末尾加上'\\0',所以*(p+3)=0。
49.C
50.B解析:因為在循環(huán)中存在一條這樣的語句“if(n=4)break;”,所以循環(huán)變量n遞增到4的時候循環(huán)會被強行結束。故一共循環(huán)了5次,每次n的值分別為0、1、2、3、4。應該選擇B。
51.C解析:alpha[0]指向“ABCD”的首地址;alpha[1]指向“EFGH”的首地址;alpha[2]指向“IJKL”的首地址,依此類推。當執(zhí)行p=alpha后,p指向指針數(shù)組alpha的首地址。for循環(huán)中輸出了4個字符串。
52.B解析:本題中函數(shù)swapl()是傳遞的地址。所以對該形參c的改變將影響實參,分析可知該函數(shù)的作用,是使數(shù)組c的第一個元素和第二個元素的值互換。主函數(shù)中調用該函數(shù)將a作為實參傳遞給形參c,故執(zhí)行該函數(shù)后a的第一個元素和第二個元素的值將交換。分別為5和3。函數(shù)swap2()是值傳遞的,所以該函數(shù)執(zhí)行后對數(shù)組b將沒有任何改變,此時該數(shù)組的第一個和第二個元素依然為3和5,因此最后的輸出為5、3、3和5,所以,4個選項中選項B符合題意。
53.C解析:二維數(shù)組的初始化及庫函數(shù)strlen()的應用,主函數(shù)中定義了一個二維字符數(shù)組并初始化,初始化后的結果為str[0]=“Hello”、str[1]=“Beijing”,然后定義一個字符指針變量p并讓它指向數(shù)組的首地址,即指向str[0],而在C語言中無論是一維還是多維數(shù)組,其元素在內存中都是順序存放的,故p+20后指針指向str[1],所以strlen(p+20);返回的是str[1]中的字符串的長度,即Beijing的長度為7,所以最后輸出的值為7。
54.B解析:“后進先出”表示最后被插入的元素最先能被刪除。選項A中,隊列是指允許在—端進行插入、而在另一端進行刪除的線性表,在隊列這種數(shù)據(jù)結構中,最先插入的元素將最先能夠被刪除,反之,最后插入的元素將最后才能被刪除,隊列又稱為“先進先出”的線性表,它體現(xiàn)了“先來先服務”的原則:選項B中,棧頂元素總是最后被插入的元素,從而也是最先能被刪除的元素,棧底元素總是最先被插入的元素,從而也是最后才能被刪除的元素。隊列和棧都屆于線性表,它們具有順序存儲的特點,所以才有“先進先出”和“后進先出”的數(shù)據(jù)組織方式。雙向鏈表使用鏈式存儲方式,二叉樹也通常采用鏈式存儲方式,它們的存儲數(shù)據(jù)的空間可以是不連續(xù)的,各個數(shù)據(jù)結點的存儲順序與數(shù)據(jù)元素之間的邏輯關系可以不一致。所以選項C和選項D錯誤。本題的正確答案為選項B。
55.B
56.B解析:本題考查函數(shù)的綜合知識。首先,我們可以利用強制轉換類型轉換運算符將一個表達式轉換成所需類型。如:(double)a是將a轉換成double類型;(int)(x+y)是將x+y的值轉換成整型。
本題可按部就班地逐步運算:
fun((int)fun(a+c,b),a-c)
fun((int)fun(10,5),2-8)
fun((int)15.000000,-6)
fun(15,-6)
9
57.B解析:執(zhí)行p=&a;后,p指向整數(shù)a,*p即p的目標變量,也就是a;所以a=*p+b等價于a=a+b,可知a的值最終為11。
58.C解析:在C語言中,可以用指數(shù)形式將實型常量表示為數(shù)值和指數(shù)兩部分,數(shù)值部分不能為空,指數(shù)部分只能為整數(shù)表示。選項A中1.2和0.5都不是整數(shù),故選項A不正確;選項B中3.14159也不是整數(shù),故選項B不正確;選項D中數(shù)值部分不能為空,故選項D也不正確。所以,4介選項中選項C符合題意。
59.C解析:十六進制是以“0x”或“0X”開頭的字符串,字符串中只能含有0~9這10個數(shù)字和a、b、c、d、e、f這6個字母。
60.A解析:選擇運算是在指定的關系中選取所有滿足給定條件的元組,構成一個新的關系,而這個新的關系是原關系的一個子集。因此,一個關系經選擇運算后得到的新關系中,元組個數(shù)少于原來關系中元組個數(shù)。
61.B線性鏈式存儲結構中每個結點都由數(shù)據(jù)域與指針域兩部分組成,增加了存僻:空間,因此一般要多于順序存儲結構,選項B)正確。
62.C本題屬于綜合性題目,考查的知識點有字符數(shù)組的指針表示,for循環(huán)與if語句的結合,初始時定義兩個字符數(shù)組:str和str1,用兩個指針p、p1分別指向這兩個數(shù)組,每個數(shù)組中都是長度為8的字符串。定義變量i作為數(shù)組下標的增量,if語句表示如果有*(p+i)=*(p1+i),即str[i]=str1[i],則將相同的字符輸出。tomeetme中與toseeyou相同位置上具有的相同字符為toee。
63.B在需求分析階段可以使用的工具有數(shù)據(jù)流圖(DFD),數(shù)據(jù)字典(DD),判定樹與判定表,因此本題答案為B)。
64.B
\n本題考查分支語句用法加個句號因為變量的初始值分別為k一5、n一0,所以程序第1次進入循環(huán)時,執(zhí)行default語句,輸出0,k減1;這時n=0、k=4,程序進行第2次循環(huán),執(zhí)行case4:這個分支,結果是n=2、k=3,打印出2;這時n=2、k=3,break跳出,程序進行第3次循環(huán),執(zhí)行case3:這個分支,結果是n=3、k=2,打印出3;這時n一3、k2,b¨ak跳出,程序然后進行第4次循環(huán),執(zhí)行case2:case4:這個分支,結果是n=5、k=1,打印出5,break跳出,這時因為n=5不滿足n<5的循環(huán)條件,因此循環(huán)結束。
\n
65.C
66.A本題考查getchar函數(shù),從終端讀入一個字符作為函數(shù)值。在輸入時,空格、回車符都將作為字符讀入,而且只有在用戶敲入回車鍵時,讀入才開始執(zhí)行。所以當輸入a<回車>后,變量c1被賦予字符a,而變量c2被賦予回車符。
67.DC語言中操作一個字符串常量的方法有:①把字符串常量存放在一個字符數(shù)組中;②用字符指針指向字符串,然后通過字符指針來訪問字符串存儲區(qū)域。當字符串常量在表達式中出現(xiàn)時,根據(jù)數(shù)組的類型轉換規(guī)則,它被轉換成字符指針。本題D項中錯誤的關鍵是對數(shù)組初始化時,可以在變量定義時整體賦初值,但不能在賦值語句中整體賦值。
68.Bsizeof是返回字符串在內存中所占用的
69.A
70.C【答案】:C
【知識點】:需求分析階段的任務
【解析】:需求分析階段的任務是深入描述軟件的功能和性能,確定軟件設計的約束和軟件同其他系統(tǒng)元素的接口細節(jié),定義軟件的其他有效性需求,借助于當前系統(tǒng)的邏輯模型導出目標系統(tǒng)邏輯模型,解決目標系統(tǒng)“做什么”的問題。可分為需求提出、需求描述及需求評審三個階段。從此可以看出需求分析的任務不包括制定軟件集成測試計劃,故選C。
71.D該題目中首先區(qū)別++n和n++,第一次調用f函數(shù)時,將++n(n自增l后再參與運算)作為參數(shù)進行傳遞,此時變量m的值為1,執(zhí)行n+=m;后,n=1,將l返回主函數(shù),并輸出。第二次調用f函數(shù)時,將n++(n參與運算后再自增1)作為參數(shù)進行傳遞,此時變量m的值為1,執(zhí)行語句n+=m;,由于n是靜態(tài)存儲變量,因此n=2,將2返回主函數(shù)并輸出。因此D選項正確。
72.A解析:二叉樹的中序遍歷指在訪問根結點、遍歷左子樹與遍歷右子樹這三者中,首先遍歷左子樹,然后訪問根結點,最后遍歷右子樹;并且遍歷左、右子樹時,仍然先遍歷左子樹,然后訪問根結點,最后遍歷右子樹。
73.A字符串的輸入不能使用“scarf(%s"s);",而應該使用‘‘gets(s)”,因此選擇A)。
74.D前序遍歷:ABDECF\n中序:DBEAFC\n后序:DEBFCA
75.A本題重點考察函數(shù)的調用,首先要了解字母對應的ASCIl碼。例如A為65,a為97。即字母+1劂可得到下一個字母。-其次是函數(shù)形參和實參的問題,運行過程如下:在fun(&b,a)中,}c=.a-,d=65。}c+l=V,d+1=66,prinff(”%c,%c,”,}C,d);輸出b,B,因為指針c指向地址的值為b,此時b=}C=.b.;豳數(shù)返回執(zhí)行ptud(。%C,%c、n”,b,8);輸出b,A,因此A選項正確。
76.D
77.D在輸入多個數(shù)據(jù)時,若格式控制串中無非格式字符,則認為所有輸入的字符均為有效字符。所以應按選項D的順序輸入數(shù)據(jù)。
78.B根據(jù)二叉樹的基本性質3:在任意一棵二叉樹中,度為0的葉子結點總是比度為2的結點多一個。所以選擇8。
79.C輸入數(shù)據(jù)的格式必須與seanf()的格式控制串完全匹配,所以輸入時必須在3和5之間輸入“;”。
80.A注:和設計風格有關
81.(1)錯誤:k++
正確:k++;
(2)錯誤:if(m=k)
正確:if(m==k)
【解析】根據(jù)C語言的語法規(guī)則,每一條語句都要以分號結束,因此,要在語句“k++”之后加上分號。判斷變量m與變量k是否相等應該用符號“==”,符號“=”為賦值符號,因此,“if(m=k)”應改為“if(m==k)”。
82.
intfun(char*ss,charc)
inti=0;
for(;*ss!=’\0‘;ss++)if(}ss==c
i++/*求出*所指字符串中指定字符的個數(shù)*/
returni;
【考點分析】
本題考查:for循環(huán)語句遍歷字符串,并通過if條件語句,判斷字符串是否結束。
【解題思路】
從字符串中查找指定字符,需要使用循環(huán)判斷結構,循環(huán)語句用來遍歷字符串,循環(huán)條件為字符串沒有結束,即當前字符不是‘\0’,判斷語句用來判斷當前字符是否為指定字符。最后返回指定字符的個數(shù)。2022年河北省邯鄲市全國計算機等級考試C語言程序設計學校:________班級:________姓名:________考號:________
一、單選題(20題)1.一個有8個頂點的有向圖,所有頂點的入度出度之和與所有頂點的出度之和的差是()
A.16B.4C.0D.2
2.
3.設x=011050,則x=x&01252的值是()。A.0000001000101000
B.1111110100011001
C.0000001011100010
D.1100000000101000
4.以下敘述中錯誤的是()。
A.可以通過typedef增加新的類型
B.可以typedef將已存在的類型用一個新的名字來代表
C.用typedef定義新的類型名后,原有類型名仍有效
D.用typedef可以為各種類型起別名,但不能為變量起別名
5.有下列程序:
程序執(zhí)行后的輸出結果是()。A.3,7,3,7B.7,3,7,3C.3,7,7,3D.7,3,3,7
6.有以下程序:#include<stdio.h>voidfun(char*a,charB){while(*(a++)!=‘0’);while(*(a-1)<B)*(a--)=*(a-1);*(a--)=b;}main(){chars[8]=“pmfc”,r,c;c=getchar();fun(s,c);puts(s);}程序運行時輸入k并按<Enter>鍵,則輸出結果為()。
A.pmfkcB.pmfckC.kpmfcD.pmkfc
7.以下有關scanf函數(shù)的敘述中錯誤的是()。
A.在scanf函數(shù)的格式字符前既可以加入正整數(shù)指定輸入數(shù)據(jù)所占的寬度,也可以對實數(shù)指定小數(shù)位的寬度
B.scanf函數(shù)有返回值,其值就是本次調用scanf函數(shù)時正確讀入的數(shù)據(jù)項個數(shù)
C.scanf函數(shù)從輸入字符流中按照格式控制指定的格式解析出相應數(shù)據(jù),送到指定地址中
D.在scanf函數(shù)中的格式控制字符串不會輸出到屏幕上
8.棧和隊列的共同點是()。
A.都是先進先出B.都是先進后出C.只允許在端點處插入和刪除元素D.沒有共同特點
9.以下敘述中錯誤的是()。
A.形參可以是常量、變量或表達式
B.實參可以是常量、變量或表達式
C.實參的類型應與形參的類型賦值兼容
D.實參的個數(shù)應與形參的個數(shù)一致
10.
11.采用表結構來表示數(shù)據(jù)和數(shù)據(jù)間聯(lián)系的模型是()。
A.層次模型B.概念模型C.網(wǎng)狀模型D.關系模型
12.已知函數(shù)的調用形式為fread(buf,size,count,fp),參數(shù)buf的含義是
A.一個整型變量,代表要讀入的數(shù)據(jù)項總數(shù)
B.一個文件指針,指向要讀的文件
C.一個指針;指向要讀入數(shù)據(jù)的存放地址
D.一個存儲區(qū),存放要讀的數(shù)據(jù)項
13.
14.第
4
題
棧底至棧頂依次存放元素A、B、C、D,在第五個元素E入棧前,棧中元素可以出棧,則出棧序列可能是
A.ABCEDB.DCBEAC.DBCEAD.CDABE
15.下列敘述中錯誤的是()。A.在程序中凡是以“#”開始的語句行都是預處理命令行
B.預處理命令行的最后不能以分號表示結束
C.#defineMAX是合法的宏定義命令行
D.C程序對預處理命令行的處理是在程序執(zhí)行的過程中進行的
16.按照“先進先出”組織數(shù)據(jù)的數(shù)據(jù)結構是()。
A.隊列B.棧C.雙向鏈表D.二叉樹
17.
18.用樹形結構來表示實體之間聯(lián)系的模型稱為()。
A.關系模型B.層次模型C.網(wǎng)狀模型D.數(shù)據(jù)模型
19.以下程序的輸出結果是()。main(){inti,a[4][4]一{{1,3,5),{2,4,6},{3,5,7}};printf("%(1%d%d%d\n".a[O][3],a[1][2],a[2][1],a[3][0];}A.0650B.1470C.5430D.輸出值不定
20.若輸入“abcdef”“abdef”,下述程序的輸出結果為()。#include<stdio.h>#include<string.h>main{intn;chars1[20],s2[20],*p1,*p2;scanf("%s",s1);scanf("%S",s2);p1=s1;p2=s2;n=strcmp(p1,p2);printf("Vood\n",n);}A.-1B.0C."abcdef"D."abdef"
二、2.填空題(20題)21.下列程序的功能是將字符串s中所有的字符c刪除。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{chars[80];
inti,j;
gets(s);
for(i=j=0;s[i]!='\0';i++)
if(s[i]!='c')
s[j]='\0';
puts(s);
}
22.以下程序的作用是:從名為filea.dat的文本文件中逐個讀入字符并顯示在屏幕上。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{FILE*fp;charch;
fp=fopen(【】);
ch=fsetc(fp);
while(!feof(fp)){putchar(ch);ch=fgetc(fp);}
putchar('\n');fclose(fp);
}
23.以下程序用于判斷a,b,c能否構成三角形,若能,輸出YES,否則輸出NO。當給a,b,c輸入三角形三條邊長時,確定a,b,c能構成三角形的條件是需同時滿足三個條件:a+b>c,a+c>b,b+c>a。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{floata,b,c;
scanf("%f%f%f",&a,&b,&c);
if(【】)printf("YES\n");/*a.b.c能構成三角形*/
elseprinff("NO\n");/*a.b.c不能構成三解形*/
}
24.x和y都是double型變量,x的初值為4.0,y的初值為2.0,則表達式pow(y,fabs(x))的值為______。
25.語句:x++;++x;x=1+x;執(zhí)行后都使變量x中的值增1,請寫出一條同一功能的賦值語句______。
26.若x為int類型,請寫出與!x等價的C語言表達式______。
27.函數(shù)my_cmp()的功能是比較字符串s和t的大小,當s等于t時返回0,否則返回s和t的第一個不同字符的ASCII碼差值,即s>t時返回正值,s<t時返回負值。請?zhí)羁铡?/p>
My_cmp(char*s,char*t)
{while(*s==*t)
{if(*s==′\0)return0;
++s;++t;
}return【】;
}
28.在先左后右的原則下,根據(jù)訪問根結點的次序,二叉樹的遍歷可以分為三種;前序遍歷、【】遍歷和后序遍歷。
29.有以下程序:
main()
{inta[]={1,2,3,4,5,6,7,8,9,0},*p;
for(p=a;p<a+10;p++)printf("%d,",*p);
}
程序運行后的輸出結果是【】。
30.下面程序把從終端讀入的10個整數(shù)以二進制方式寫入一個名為bi.dat的新文件中。
#include<stdio.h>
FILE*fp;
main()
{inti,j;
if(fp=fopen(【】)==NULL)exit(0);
for(i=0;i<10;i++)
{scanf("%d",&j);
fwrite(&j,sizeof(int),1,【】;
}
fclose(fp);
}
31.下列程序的功能是對輸入的一行字符中的數(shù)字字符的字面值累加,輸出此累加和,請?zhí)羁铡?/p>
#include<stdio.h>
#include<ctype.h>
main()
{charc;
inta,s=0;
while(______)
if(isdigit(C))
{a=c-'0';s+=a;}
printf("s=%d",s);
}
32.設有以下定義:
structss
{intinfo;structss*link;}x,y,z;
且已建立如下圖所示鏈表結構,
請寫出刪除點y的賦值語句【】。
33.排序是計算機程序設計中的一種重要操作,常見的排序方法有插入排序、______和選擇排序。
34.若想通過以下輸入語句給a賦值1,給b賦值2.則輸入數(shù)據(jù)的形式應該是【】。
inta,b;
scanf("a=%d,b=%d",&a,&b);
35.數(shù)據(jù)結構分為邏輯結構與()。
36.某二叉樹中度為2的結點有18個,則該二叉樹中有【】個葉子結點。
37.下列程序段的輸出結果是【】。
intn='c';
switch(n++)
{default:printf("error");break;
case'a':
case'A':
case'b':
case'B':printf("good");break;
case'c':case'C':printf("pass");
case'd':case'D':printf("warn");
}
38.數(shù)據(jù)結構包括數(shù)據(jù)的邏輯結構、數(shù)據(jù)的【】以及對數(shù)據(jù)的操作運算。
39.設有如下宏定義
#defineMYSWAP(z,x,y)
{z=x;x=y;y=z;}
以下程序段通過宏調用實現(xiàn)變量a,b內容交換,請?zhí)羁铡?/p>
floata=5,b=16,c;
MYSWAP(【】a,b);
40.若s是int型變量,且s=8,則s%3+(s+1)%3表達式的值為()。
三、1.選擇題(20題)41.C語言程序的基本單位是______。
A.程序行B.語句C.函數(shù)D.字符
42.語句“printf("a\bhow\'are\'y\\\bou\n");”的輸出結果是()。
A.a\bhow\'are\'y\\bou
B.a\bhow\'are\'y\bou
C.how'are'you
D.ahow'are'y\bou
43.下列關于棧的描述中錯誤的是()
A.棧是先進后出的線性表B.棧只能順序存儲C.棧具有記憶作用D.對棧的插入與刪除操作中,不需要改變棧底指針
44.可在C程序中用作用戶標識符的一組標識符是A.and2007
B.Date_y-m-d
C.HiDr.Tom
D.caseBigl
45.軟件開發(fā)離不開系統(tǒng)環(huán)境資源的支持,其中必要的測試數(shù)據(jù)屬于A.硬件資源B.通信資源C.支持軟件D.輔助資源
46.下列有關數(shù)據(jù)庫的描述,正確的是______。
A.數(shù)據(jù)庫是一個DBF文件B.數(shù)據(jù)庫是一個關系C.數(shù)據(jù)庫是一個結構化的數(shù)據(jù)集合D.數(shù)據(jù)庫是一組文件
47.已知字母A的ASCII碼為十進制的65,下面程序main(){charch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}的輸出是_________。
A.67,DB.B,CC.C,DD.不確定的值
48.下列程序段的運行結果是()。#include<stdio.h>voidmain(){charstr[]="ABC",*p=str;printf("%d\n",*(p+3));}
A.67B.0C.字符'C'的地址D.字符'C'
49.在下列選項中,沒有構成死循環(huán)的程序段是()。
A.inti=100;for(;;){i=i%10+1;if(i>10)break;}
B.while(1);
C.intk=0;do{++k;}while(k<=10);
D.ints=12;while(s);--s;
50.若有如下程序:main(){intn;for(n=0;n<9;n++){if(n<1){printf("%d",n);continue;}if(n==4)break;printf("%d",n);}}則循環(huán)體執(zhí)行的次數(shù)是()。
A.1B.5C.9D.死循環(huán)
51.以下程序輸出的結果為______。main(){char*alpha[6]={"ABCD","EFGH","IJKL","MNOP","QRST","UVWX"};char**p;inti;p=alpha;for(i=0;i<4;i++)printf("%s",p[i]);}
A.ABCDEFGHIJKLB.ABCDC.ABCDEFGHIJKLMNOPD.AEIM
52.有以下程序:voidswap1(intC[]){intt;t=c[0];c[0]=C[1];c[1]=t;}voidswap2(intc0,intc1){intt;t=c0;c0=c1;c1=t;}main(){inta[2]={3,5},b[2]={3,5);swapl(a);swap2(b[0],b[1]);printf("%d%d%d%d\n",a[0],a[1],b[0],b[1]);}其輸出結果是
A.5353B.5335C.3535D.3553
53.有以下程序:#include<string.h>main(){charstr[][20]={"Hello","Beijing"},*p=str;printf("%d\n",strlen(p+20));}程序運行后的輸出結果是______。
A.0B.5C.7D.20
54.按照“后進先出”原則組織數(shù)據(jù)的數(shù)據(jù)結構是()。
A.隊列B.棧C.雙向鏈表D.二叉樹
55.若x為int類型變量,則執(zhí)行以下程序段后的x值是______。x=6;x+=x-=x*x;
A.36B.-60C.60D.-24
56.有以下程序floatfun(intx,inty){return(x+y);}main(){inta=2,b=5,c=8;printf("%3.0f\n",fun((int)fun(a+c,b),a-c));}程序運行后的輸出結果是
A.編譯出錯B.9C.21D.9
57.有如下程序段int*p,a=10,b=1;p=&a;a=*p+b;執(zhí)行該程序段后,a的值為______。
A.12B.11C.10D.編譯出錯
58.以下符合C語言語法的實型常量是
A.1.2E0.5B.3.14159EC.5.00E-03D.E15
59.下列選項中不合法的十六進制數(shù)是()。
A.OxffB.OXllC.OxlgD.OXabc
60.下列關系運算中,能使經運算后得到的新關系中元組個數(shù)少于原來關系中元組個數(shù)的是()。
A.選擇B.投影C.連接D.并
四、選擇題(20題)61.下列敘述中正確的是()。
A.線性表的鏈式存儲結構與順序存儲結構所需要的存儲空間是相同的
B.線性表的鏈式存儲結構所需要的存儲空間一般要多于順序存儲結構
C.線性表的鏈式存儲結構所需要的存儲空間一般要少于順序存儲結構
D.線性表的鏈式存儲結構所需要的存儲空間與順序存儲結構沒有任何關系
62.有以下程序
#include"stdio.h"
main()
{charstr[]="tomeetme",str1[]="toseeyou";
char*p=str,*p1=str1;
inti;
for(i=0;i<7;i++)
if(*(p+i)==*(p1+i))
putchar(*(p+i));
printf("\n");
}
程序的運行結果是
A.to
B.tomeet
C.toee
D.程序段不能通過編譯
63.在軟件開發(fā)中,需求分析階段可以使用的工具是()。A.N—s圖B.DFD圖C.PAD圖D.程序流程圖
64.
有以下程序:
main()
{intk=5,n=0;
do
{switch(k)
{case1:
case3:n+=l;k--;break;
defalut:n=0;k--;
case2:
case4:n+=2;k--;break:
}
printf("%d",n);
}while(k>0&&n<5);
}
程序運行后的輸出結果是()。
A.235B.0235C.02356D.2356
65.
66.有以下程序:#include<stdio.h>main(){charcl=1,c2=2;cl=getchar();c2=getchar();putchar(c1);putcha:(c2);}當程序運行時輸入a<回車>后,下列敘述中正確的是()。A.變量c1被賦予字符a,c2被賦予回車符
B.程序將等待用戶輸入第2個字符
C.變量c1被賦予字符a,c2中仍是原有字符2
D.變量c1被賦予字符a,c2中將無確定值
67.第
42
題
下面說明不正確的是
A.chara[10]="china";
B.chara[10],*p=a;p="china"
C.char*a;a="china";
D.chara[10],*p;p=a="china"
68.有以下程序:
程序運行后的輸出結果是()。
A.61B.70C.63D.71
69.
70.下面不屬于需求分析階段任務的是()。
A.確定軟件系統(tǒng)的功能需求B.確定軟件系統(tǒng)的性能需求C.制定軟件集成測試計劃D.需求規(guī)格說明書評審
71.有以下程序:
程序運行后的輸出結果是()。.
A.3,3B.1,1C.2,3D.1,2
72.對下列二叉樹
進行中序遍歷的結果是()。
A.ACBDFEGB.ACBDFGEC.ABDCGEFD.FCADBEG
73.設有定義:,以下不能將一行(不超過80個字符)帶有空格的字符串正確讀入的語句或語句組是()。
74.設有下列二叉樹:
對此二叉樹中序遍歷的結果為()。
A.ACBDEFB.DEBFCAC.ABDECFD.DBEAFC
75.有以下程序:
程序運行后的輸出結果是()。
A.b,B"b,AB.b,B,B,AC.a,B,B,aD.a,B,a,B
76.
77.有以下程序:
若想通過鍵盤輸入,使得al的值為12,a2的值為34,cl的值為字符a,c2的值為字符b,程序運行后的輸出結果是:l2,a,34,b。則正確的輸入格式是(以下-代表空格,<;CR>;代表回車)()。
A.12-a34-b<CR>
B.12-a-34-b<CR>
C.12,a,34,b<CR>
D.12a34b<CR>
78.下列關于二叉樹的敘述中,正確的是()。
A.葉子結點總是比度為2的結點少一個
B.葉子結點總是比度為2的結點多一個
C.葉子結點數(shù)是度為2的結點數(shù)的兩倍
D.度為2的結點數(shù)是度為1的結點數(shù)的兩倍
79.若有定義:inta,h;通過語句:scanf(”%d;%d”,&a,&B.;,能把整數(shù)3賦給變量a,5賦給變量b的輸入數(shù)據(jù)是()。
A.35B.3,5C.3;5D.35
80.(55)在設計程序時,應采納的原則之一是()
A.程序結構應有助于讀者理解
B.不限制goto語句的使用
C.減少或取消注解行
D.程序越短越好
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:判斷一個整數(shù)m是否是素數(shù),若是返回1,否則返回0。在main()函數(shù)中,若proc()返回1,則輸出″YES″;若proc()返回0,則輸出″NO″!
請修改程序中的錯誤,使它能得出正確的結果。
注意:不要改動main)函數(shù),不得增行或刪行,也不得,t更改程序的結構。
試題程序:
六、程序設計題(1題)82.編寫函數(shù)fun,其功能是:求ss所指字符串中指定字符的個數(shù),并返回此值。例如,若輸入字符串123412132,輸入字符為1,則輸出3。
注意:部分源程序在文件PROCl.C中。
請勿改動主函數(shù)main和其他函數(shù)中的任何內容,僅在函數(shù)fun的花括號中填人你編寫的若干語句。
參考答案
1.C
2.B
3.A本題考查按位與運算,按位與就是相同為1,不同為0,把x=011050化成二進制為0001001000101000,把01252化成二進制為0000001010101010,兩者相與得0000001000101000。
4.A關鍵字typedet的作用只是將C語言中的已有的數(shù)據(jù)類型作了置換,并不是增加新的類型,所以A)錯誤。
5.C程序定義兩個整
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版軟件系統(tǒng)合同
- 2025年度合伙企業(yè)持股合同糾紛調解與仲裁規(guī)則3篇
- 2024物流金融服務框架協(xié)議
- 2025年度寵物活體產業(yè)鏈上下游資源整合合同3篇
- 2025年中國豪華客車行業(yè)市場調查研究及投資前景預測報告
- 2025個人虛擬貨幣購買分期還款協(xié)議3篇
- 2025年度個人汽車消費貸款標準合同范本4篇
- 2025年度個人公司代持股解除協(xié)議書4篇
- 2025年湖北工業(yè)建筑集團有限公司招聘筆試參考題庫含答案解析
- 2025年安徽港口集團五河有限公司招聘筆試參考題庫含答案解析
- 《色彩基礎》課程標準
- 人力資源 -人效評估指導手冊
- 大疆80分鐘在線測評題
- 2024屆廣東省廣州市高三上學期調研測試英語試題及答案
- 中煤平朔集團有限公司招聘筆試題庫2024
- 2023年成都市青白江區(qū)村(社區(qū))“兩委”后備人才考試真題
- 不付租金解除合同通知書
- 區(qū)域合作伙伴合作協(xié)議書范本
- 中學數(shù)學教學設計全套教學課件
- 環(huán)衛(wèi)公司年終工作總結
- 2023年德宏隴川縣人民法院招聘聘用制書記員考試真題及答案
評論
0/150
提交評論