- 相關(guān)推薦
2024年計算機二級《C語言》備考試題及答案
無論是身處學校還是步入社會,我們都經(jīng)?吹皆囶}的身影,試題是用于考試的題目,要求按照標準回答。那么你知道什么樣的試題才能有效幫助到我們嗎?以下是小編為大家收集的2024年計算機二級《C語言》備考試題及答案,歡迎大家分享。
計算機二級《C語言》備考試題及答案 1
(1)軟件設計中劃分模塊的一個準則是( )。
A.低內(nèi)聚低耦合
B.高內(nèi)聚低耦合
C.低內(nèi)聚高耦合
D.高內(nèi)聚高耦合
(2)下列數(shù)據(jù)結(jié)構(gòu)中,屬于非線性結(jié)構(gòu)的是( )。
A.循環(huán)隊列
B.帶鏈隊列
C.二叉樹
D.帶鏈棧
(3)算法的空間復雜度是指( )。
A.算法在執(zhí)行過程中所需要的計算機存儲空間
B.算法所處理的數(shù)據(jù)量
C.算法程序中的語句或指令條數(shù)
D.算法在執(zhí)行過程中所需要的臨時工作單元數(shù)
(4)下列選項中不屬于結(jié)構(gòu)化程序設計原則的是( )。
A.可封裝。
B.自頂向下
C.模塊化
D.逐步求精
(5)在E—R圖中,用來表示實體聯(lián)系的圖形是( )。
A.橢圓形
B.矩形
C.菱形
D.三角形
(6)有三個關(guān)系R、S和T如下:
其中關(guān)系T由關(guān)系R和S通過某種操作得到,該操作為( )。
A.選擇
B.投影
C.交
D.并
(7)數(shù)據(jù)庫應用系統(tǒng)中的核心問題是( )。
A.數(shù)據(jù)庫設計
B.數(shù)據(jù)庫系統(tǒng)設計
C.數(shù)據(jù)庫維護
D.數(shù)據(jù)庫管理員培訓
(8)下面敘述中錯誤的是( )。
A.軟件測試的目的是發(fā)現(xiàn)錯誤并改正錯誤
B.對被調(diào)試的程序進行“錯誤定位”是程序調(diào)試的必要步驟
C.程序調(diào)試通常也稱為Debug
D.軟件測試應嚴格執(zhí)行測試計劃,排除測試的隨意性
(9)將E-R圖轉(zhuǎn)換為關(guān)系模式時,實體和聯(lián)系都可以表示為( )。
A.屬性
B.鍵
C.關(guān)系
D.域
(10)以下敘述中錯誤的是( )。
A.使用三種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡單問題
B.結(jié)構(gòu)化程序由順序、分支、循環(huán)三種基本結(jié)構(gòu)組成
C.C語言是一種結(jié)構(gòu)化程序設計語言
D.結(jié)構(gòu)化程序設計提倡模塊化的設計方法
(11)耦合性和內(nèi)聚性是對模塊獨立性度量的兩個標準。下列敘述中正確的是( )。
A.提高耦合性降低內(nèi)聚性有利于提高模塊的獨立性
B.降低耦合性提高內(nèi)聚性有利于提高模塊的獨立性
C.耦合性是指一個模塊內(nèi)部各個元素間彼此結(jié)合的緊密程度
D.內(nèi)聚性是指模塊間互相連接的緊密程度
(12)下列敘述中正確的是( )。
A.棧是“先進先出”的線性表
B.隊列是“先進后出”的線性表
C.循環(huán)隊列是非線性結(jié)構(gòu)
D.有序線性表既可以采用順序存儲結(jié)構(gòu),也可以采用鏈式存儲結(jié)構(gòu)
(13)支持子程序調(diào)用的`數(shù)據(jù)結(jié)構(gòu)是( )。
A.棧
B.樹
C.隊列
D.二叉樹
(14)下列排序方法中,最壞情況下比較次數(shù)最少的是( )。
A.冒泡排序
B.簡單選擇排序
C.直接插入排序
D.堆排序
(15)C源程序中不能表示的數(shù)制是( )。
A.十六進制
B.八進制
C.十進制
D.二進制
(16)下列數(shù)據(jù)結(jié)構(gòu)中,能夠按照“先進后出”原則存取數(shù)據(jù)的是( )。
A.循環(huán)隊列
B.棧
C.隊列
D.二叉樹
(17)對于循環(huán)隊列,下列敘述中正確的是( )。
A.隊頭指針是固定不變的
B.隊頭指針一定大于隊尾指針
C.隊頭指針一定小于隊尾指針
D.隊頭指針可以大于隊尾指針,也可以小于隊尾指針
(18)程序流程圖中帶有箭頭的線段表示的是( )。
A.圖元關(guān)系
B.數(shù)據(jù)流
C.控制流
D.調(diào)用關(guān)系
(19)結(jié)構(gòu)化程序設計的基本原則不包括( )。
A.多態(tài)性
B.自頂向下
C.模塊化
D.逐步求精
(20)軟件設計中模塊劃分應遵循的準則是( )。
A.低內(nèi)聚低耦合
B.高內(nèi)聚低耦合
C.低內(nèi)聚高耦合
D.高內(nèi)聚高耦合
參考答案與解析
(1)B
【解析】一般較優(yōu)秀的軟件設計。應盡量做到高內(nèi)聚,低耦合,即減弱模塊之問的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨立性。
(2)C
【解析】樹是簡單的非線性結(jié)構(gòu),所以二叉樹作為樹的一種也是一種非線性結(jié)構(gòu)。
(3)A
【解析】算法的空間復雜度是指算法在執(zhí)行過程中所需要的內(nèi)存空間。所以選擇A。
(4)A
【解析】結(jié)構(gòu)化程序設計的思想包括:自頂向下、逐步求精、模塊化、限制使用goto語句,所以選擇A。
(5)C
【解析】在E-R圖中實體集用矩形,屬性用橢圓,聯(lián)系用菱形。
(6)D
【解析】關(guān)系T中包含了關(guān)系R與S中的所有元組,所以進行的是并的運算。
(7)A
【解析】數(shù)據(jù)庫應用系統(tǒng)中的核心問題是數(shù)據(jù)庫的設計。
(8)A
【解析】軟件測試的目的是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程,并不涉及改正錯誤,所以選項A錯誤。程序調(diào)試的基本步驟有:錯誤定位、修改設計和代碼,以排除錯誤、進行回歸測試,防止引進新的錯誤。程序調(diào)試通常稱為Debug,即排錯。軟件測試的基本準則有:所有測試都應追溯到需求、嚴格執(zhí)行測試計劃,排除測試的隨意性、充分注意測試中的群集現(xiàn)象、程序員應避免檢查自己的程序、窮舉測試不可能、妥善保存測試計劃等文件。
(9)C
【解析】從E-R圖到關(guān)系模式的轉(zhuǎn)換是比較直接的,實體與聯(lián)系都可以表示成關(guān)系,E-R圖中屬性也可以轉(zhuǎn)換成關(guān)系的屬性。
(10)A
【解析】使用順序,選擇(分支),循環(huán)三種基本結(jié)構(gòu)構(gòu)成的程序可以解決所有問題,而不只是解決簡單問題,所以A錯誤。
(11)B
【解析】模塊獨立性是指每個模塊只完成系統(tǒng)要求的獨立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。一般較優(yōu)秀的軟件設計,應盡量做到高內(nèi)聚,低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨立性,所以A錯誤,B正確。耦合性是模塊間互相連接的緊密程度的度量而內(nèi)聚性是指一個模塊內(nèi)部各個元素間彼此結(jié)合的緊密程度,所以C與D錯誤。
(12)D
【解析】棧是先進后出的線性表,所以A錯誤;隊列是先進先出的線性表,所以B錯誤;循環(huán)隊列是線性結(jié)構(gòu)的線性表,所以C錯誤。
(13)A
【解析】棧支持子程序調(diào)用。棧是一種只能在一端進行插入或刪除的線性表,在主程序調(diào)甩子函數(shù)時要首先保存主程序當前的狀態(tài),然后轉(zhuǎn)去執(zhí)行子程序,最終把子程序的執(zhí)行結(jié)果返回到主程序中調(diào)用子程序的位置,繼續(xù)向下執(zhí)行.這種調(diào)用符合棧的特點,因此本題的答案為A。
(14)D
【解析】冒泡排序與簡單插入排序與簡單選擇排序法在最壞情況下均需要比較n(n-1)/2次,而堆排序在最壞情況下需要比較的次數(shù)是nlog2n。
(15)D
【解析】在C語言中整型常量可以用十進制、八進制和十六進制等形式表示,但不包括二進制,所以選擇D。
(16)B
【解析】棧是按先進后出的原則組織數(shù)據(jù)的。隊列是先進先出的原則組織數(shù)據(jù)。
(17)D
【解析】循環(huán)隊列的隊頭指針與隊尾指針都不是固定的,隨著人隊與出隊操作要進行變化。因為是循環(huán)利用的隊列結(jié)構(gòu),所以隊頭指針有時可能大于隊尾指針,有時也可能小于隊尾指針。
(18)C
【解析】在數(shù)據(jù)流圖中,用標有名字的箭頭表示數(shù)據(jù)流。在程序流程圖中,用標有名字的箭頭表示控制流。所以選擇C。
(19)A
【解析】結(jié)構(gòu)化程序設計的思想包括:自頂向下、逐步求精、模塊化、限制使用goto語句,所以選擇A。
(20)B
【解析】軟件設計中模塊劃分應遵循的準則是高內(nèi)聚低偶合、模塊大小規(guī)模適當、模塊的依賴關(guān)系適當?shù)取DK的劃分應遵循一定的要求,以保證模塊劃分合理,并進一步保證以此為依據(jù)開發(fā)出的軟件系統(tǒng)可靠性強,易于理解和維護。模塊之間的耦合應盡可能的低,模塊的內(nèi)聚度應盡可能的高。
計算機二級《C語言》備考試題及答案 2
c語言試題
一 選擇題(7分,每小題0.5分)
1.C語言源程序的基本單位是( )。
A 過程 B 函數(shù) C 子程序 D 標識符
2.下列程序的輸出結(jié)果是( )。
main( )
{ int a=7,b=5;
printf("%d ",b=b/a);
}
A 5 B 1 C 0 D不確定值
3.假設變量a,b均為整型,表達式(a=5,b=2,a>b?a++:b++,a+b)的值是( )。
A 7 B 8 C 9 D 2
4.設a為int型變量,執(zhí)行下列賦值語句后,a的取值分別是( )。
a=125.534; a=(int)125.521%4; a=5<<2;
A 125,31,1 B 125,1,20 C 125,31,20 D 125.534,2,20
5.設有如下程序段,下面描述中正確的是 ( )。
int k=10; while(k=0) k=k-1;
A 循環(huán)執(zhí)行一次 B循環(huán)是無限循環(huán) C循環(huán)體語句一次也不執(zhí)行 D循環(huán)體語句執(zhí)行一次
6.以下程序的輸出結(jié)果為( )。
int i;
void prt( )
{ for(i=5;i<8;i++) printf("%c",*);
printf(" ");
}
main( )
{ for(i=5;i<=8;i++) prt( );
}
A *** B *** *** *** *** C *** *** D * * *
7.在C語言程序中,以下說法正確的是( )。
A函數(shù)的定義可以嵌套,但函數(shù)的調(diào)用不可以嵌套
B函數(shù)的定義不可以嵌套,但函數(shù)的調(diào)用可以嵌套
C函數(shù)的定義和函數(shù)的調(diào)用都不可以嵌套
D函數(shù)的定義和函數(shù)的調(diào)用都可以嵌套
8.以下函數(shù)調(diào)用語句中含有( )個實參。
func((e1,e2),(e3,e4,e5));
A 2 B 3 C 5 D 語法錯誤
9.以下程序的輸出結(jié)果為( )。
#define ADD(x) x*x
main( )
{ int a=4,b=6,c=7,d=ADD(a+b)*c;
printf("d=%d",d);
}
A d=70 B d=80 C d=140 D d=700
10.已知職工記錄描述如下,在Turbo C中,系統(tǒng)為變量w分配( )字節(jié)的空間。
struct worker
{ int no;
char name[20];
char sex;
union
{ int day; int month; int year;}birth;
} w;
A 29 B 20 C 25 D 6
11.設有以下定義,值為5的枚舉常量是( )。
enum week{sun,mon=4,tue,wed,thu,fri,sat} w;
A tue B sat C fri D thu
12.下面選項中正確的賦值語句是(設 char a[5],*p=a;)( )。
A p="abcd"; B a="abcd"; C *p="abcd"; D *a="abcd";
13.設有以下程序段,則值為6的表達式是( )。
struct st { int n; struct st *next;};
static struct st a[3]={5,&a[1],7,&a[2],9,0 },*p;
p=&a[0];
A p++->n B ++p->n C p->n++ D (*p).n++
14.C語言中的文件類型只有( )。
A 索引文件和文本文件兩種 B 文本文件一種
C 二進制文件一種 D ASCII碼文件和二進制文件兩種
二 判斷對錯,對的劃“√”,錯的劃“×”(5分,每小題0.5分)
1.在Turbo C中,整型數(shù)據(jù)在內(nèi)存中占2個字節(jié)。( )
2.int i=20;switch(i/10){case 2:printf("A");case 1:printf("B");}的輸出結(jié)果為A。( )
3.break語句用在循環(huán)體中,可結(jié)束本層循環(huán),continue語句用在循環(huán)體中,可結(jié)束本次循環(huán)。( )
4.函數(shù)的遞歸調(diào)用不過是一個函數(shù)直接或間接地調(diào)用它自身。( )
5.函數(shù)strlen("ASDFG ")的值是7。( )
6.通過return語句,函數(shù)可以帶回一個或一個以上的返回值。( )
7.結(jié)構(gòu)體類型只有一種。 ( )
8.char *p="girl";的含義是定義字符型指針變量p,p的值是字符串"girl"。( )
9.若有定義:char *p(char a[10]);則p是函數(shù)名。( )
10.用fopen("file","r+");打開的文件"file"可以進行修改。 ( )
三 寫出下列程序的運行結(jié)果(10分,每小題2分)
1.float average (float array[10])
{ int i;
float aver,sum=array[0];
for (i=1;i<10;i++)
sum=sum+array[i];
aver=sum/10;
return(aver);
}
main( )
{ float score[10]={89,67.5,78,91,56,82.5,65,70,79,88},aver;
int i;
aver=average (score);
printf (“average score is %5.2f ”,aver);
}
2.main( )
{ char a[5]={‘A’,‘B’,‘C’,‘D’,‘E’},*p=a,**pa;
printf(“%2c”,*p);
printf(“ ”);
printf(“%2c ”,**(pa=&p));
}
3.main( )
{ int a,b,s=0;
for(a=1,b=1;a<=100;a++)
{ if(b>=20) break;
if(b%3==1)
{ b+=3; continue; }
b-=5;
}
printf(“a=%d b=%d ”,a,b);
}
4.main()
{ printf(“main( ) :%d ”,fact(5));
fact(-5);
}
fact(int value)
{ int f;
if(value<0)
{ printf(“Arg error ");
return(-1);
}
else if(value==1||value==0) f=1;
else f=value*fact(value-1)+1;
printf(“This called value=%d ”,f);
return f;
}
5.main( )
{ int a=012,b=0x12,k=12;
char c=‘102’,d=‘ ’;
printf(“a=%d b=%d k=%d ”,a,b,k);
printf(“c=%c,d=%c%o ”,c,d,a);
a=‘A’; c=49;
printf(“a=%d c=%c ”,a,c);
}
四 閱讀下列程序,在 處填入適當內(nèi)容,使程序完整(8分,每個空1分)
1.有一個3*4矩陣,求其中的最大元素。
max_value( (1) )
{ int i,j,max;
max=array[0][0];
for(i=0;i<3;i++)
for(j=0;j<4;j++)
if(array[i][j]>max)
max=array[i][j];
(2) ;
}
main( )
{ int a[3][4], i,j;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
(3) ;
printf(“max value is %d ”,max_value(a));
}
2.輸入x、y兩個整數(shù),按先大后小的順序輸出x、y。
#include “stdio.h”
main( )
{ int x,y, *px,*py, (4) ;
scanf(“%d%d”,&x,&y);
(5) ; (6) ;
if(x
{ p=px; px=py; py=p; }
printf(“x=%d,y=%d ”,x,y);
printf(“MAX=%d,MIN=%d ”,*px,*py);
}
3.用選擇排序法對任意10個整數(shù)按照由小到大排序。
main()
{ int a[11],i,j,k,t;
printf("Please input 10 numbers: ");
for(i=1;i<11;i++) scanf("%d",&a[i]);
printf(" ");
for(i=1;i<=9;i++)
{ (7) ;
for(j=i+1; (8) ;j++)
if(a[j]>a[k]) k=j;
if(k!=i)
{ t=a[k]; a[k]=a[i]; a[i]=t;}
}
printf("The sorted numbers: ");
for(i=1;i<11;i++) printf("%d ",a[i]);
}
答案
一 選擇題(7分,每小題0.5分)
1. B 2. C 3. B 4. B 5. C
6. A 7. B 8. A 9. A 10. C
11. A 12. A 13. B 14. D
二 判斷對錯,對的劃“√”,錯的劃“×”(5分,每小題0.5分)
1.× 2.× 3.√ 4.√ 5.×
6.× 7.× 8.× 9.√ 10.√
三 寫出下列程序的運行結(jié)果(10分,每小題2分)
1. 2. 3.
4. 5.
四 閱讀下列程序,在 處填入適當內(nèi)容,使程序完整(8分,每個空1分)
1.(1)int array[3][4](int array[][4]) (2)return(max) (3)scanf(“%d”,&a[i][j])
2.(4)*p (5)px=&x(py=&y) (6)py=&y(px=&x)
3.(7) (8)
2003C語言試題3
一 選擇題(24分,每小題2分)
1.已知函數(shù)fread的調(diào)用形式為fread(buffer,size,count,fp),其中buffer代表的是( )。
A 存放讀入數(shù)據(jù)項的存儲區(qū) B 存放讀入數(shù)據(jù)的地址或指向此地址的指針
C 一個指向所讀文件的文件指針 D 一個整形變量,代表要讀入的數(shù)據(jù)項總數(shù)
2.以下程序的輸出結(jié)果為( )。
main( )
{ int i=010,j=10;
printf("%d,%d ",i++,j--);
}
A 11,9 B 9,10 C 8,10 D 9,9
3.設a為int型變量,執(zhí)行下列賦值語句后,a的取值分別是( )。a=125.534;a=20.0/3;a=(int)125.521%4;a=5<<2;
A 125,6,31,1 B 125,6,1,20 C 125,6.666666,31,20 D 125.534,6.666666,2,20
4.設i和k都是int類型,則for循環(huán)語句( )。
for(i=0,k=-1;k=1;i++,k++) printf("****");
A 循環(huán)結(jié)束的條件不合法 B 循環(huán)體一次也不執(zhí)行 C 循環(huán)體只執(zhí)行一次 D 是無限循環(huán)
5.以下程序的輸出結(jié)果為( )。
main( )
{ char c;
int i;
for(i=65;i<68;i++)
{ c=i+32;
switch(c)
{ case a:case b:case c:printf("%c,",c);break; default:printf("end");}
}
}
A a,b,c,end B a,a,a,end C a,a,a, D a,b,c,
6.函數(shù)調(diào)用語句:fseek(fp,-10L,2);的含義是( )。
A 將文件位置指針從文件末尾處向文件頭的方向移動10個字節(jié)
B 將文件位置指針從當前位置向文件頭的方向移動10個字節(jié)
C 將文件位置指針從當前位置向文件末尾方向移動10個字節(jié)
D 將文件位置指針移到距離文件頭10個字節(jié)處
7.以下程序的輸出結(jié)果為( )。
main( )
{ char s1[40]="country",s2[20]="side";
int i=0,j=0;
while(s1[i]!=) i++;
while(s2[j]!=) s1[i++]=s2[j++];
s1[i]=0;
printf("%s ",s1);
}
A side B country C sidetry D countryside
8.下列說法不正確的是( )。
A 主函數(shù)main中定義的變量在整個文件或程序中有效
B 不同函數(shù)中,可以使用相同名字的變量
C 形式參數(shù)是局部變量
D 在一個函數(shù)內(nèi)部,可以在復合語句中定義變量,這些變量只在本復合語句中有效
9.在下列程序段中,枚舉變量 c1的值是( )。
enum color { red,yellow,blue=4,green,white}c1; c1=yellow; c1=white;
A 1 B 3 C 5 D 6
10.設有說明 int (*ptr)();其中標識符ptr是( )。
A 是一個指向整形變量的指針 B 是一個指針,它指向一個函數(shù)值是int的函數(shù)
C 是一個函數(shù)名 D定義不合法
11.定義由n個指向整形數(shù)據(jù)的指針組成的數(shù)組p,其正確的方式為( )。
A int p; B int (*p)[n]; C int *p[n]; D int (*p)( );
12.具有相同類型的指針類型變量p與數(shù)組a,不能進行的操作是( )。
A p=a; B *p=a[0]; C p=&a[0]; D p=&a;
二 判斷對錯,對的劃“√”,錯的劃“×”(20分,每小題2分)
1.參加位運算的數(shù)據(jù)可以是任何類型的`數(shù)據(jù)。( )
2.若有定義和語句:int a;char c;float f;scanf("%d,%c,%f",&a,&c,&f);若通過鍵盤輸入:10,A,12.5,則a=10,c=‘A’,f=12.5。( )
3.C語言把文件看作是一個字符(字節(jié))的序列。( )
4.若有宏定義:#define S(a,b) t=a;a=b;b=t由于變量t沒定義,所以此宏定義是錯誤的。( )
5.在Turbo C中,下面的定義和語句是合法的:file *fp;fp=fopen("a.txt","r");( )
6.若有定義:char s[ ]="china";則Turbo C系統(tǒng)為數(shù)組s開辟6個字節(jié)的內(nèi)存單元。( )
7.若有定義和語句:int a[3][3]={{3,5},{8,9},{12,35}},i,sum=0;for(i=0;i<3;i++) sum+=a[i][2-i];則sum=21。( )
8.若有定義和語句:struct student { int num; char name[10]; float score;} s[5]={{1,"lili",98.5},{9,"xiaohua",66}},*p=s;printf("%d",*p++);輸出結(jié)果是1。( )
9.在程序中定義了一個結(jié)構(gòu)體類型后,可以多次用它來定義具有該類型的變量。( )
10.在Turbo C中,此定義和語句是合法的:enum aa{ a=5,b,c}bb;bb=(enum aa)5;( )
三 寫出下列程序的運行結(jié)果(36分,每小題6分)
1.main( )
{ int i=29,j=6,k=2,s;
s=i+i/j%k-9;
printf(“s=%d ”,s);
}
2.main( )
{ int x=31,y=2,s=0;
do
{ s-=x*y;
x+=2;
y-=3;} while( x%3==0);
printf(“x=%d y=%d s=%d ”,x,y,s);
}
3.main( )
{ int a[6]={10,20,30,40,50,60},i;
invert(a,0,5);
for(i=0;i<6;i++) printf(“%d,”,a[i]);
printf(“ ”);
}
invert(int s[ ],int i,int j)
{ int t;
if(i
{ invert(s,i+1j-1);
t=s[i];s[i]=s[j];s[j]=t;
}
}
4.#include
main()
{ char str[ ]=“The C program”,c;
int i;
for(i=2;(c=str[i])!=‘’;i++)
{ switch(c)
{ case ‘g’: ++i; break;
case ‘o’: continue;
default: printf(“%c”,c); continue;
}
printf(“*”);
}
printf(“ ”);
}
5.struct w
{ char low;
char high;
};
union u
{ struct w byte;
short word;
}uw;
main( )
{ int result;
uw.word=0x1234;
printf(“word value:%04x ”,uw.word);
printf(“high byte:%02x ”,uw.byte.high);
printf(“l(fā)ow byte:%02x ”,uw.byte.low);
uw.byte.low=0x74;
printf(“word value:%04x ”,uw.word);
result=uw.word+0x2a34;
printf(“the result:%04x ”,result);
}
6.main()
{ char *s2=“I love China!”,**s1=&s2;
char *s3,c,*s4=“w”;
s3=&c;
*s3=‘H’;
s2=s2+2;
printf(“%s %c %s %c ”,s2,*s3,s4,**s1);
}
四 閱讀下列程序,在 處填入適當內(nèi)容,使程序完整(20分,每個空2分)
1. 百馬百擔問題:有100匹馬,馱100擔貨,大馬馱3擔,中馬馱2擔,兩匹小馬馱1擔,問大、中、小馬各多少匹?
main( )
{ int hb,hm,hl,n=0;
for(hb=0;hb<=100;hb+= (1) )
for(hm=0;hm<=100-hb;hm+= (2) )
{ hl=100-hb- (3) ;
if(hb/3+hm/2+2* (3) ==100)
{ n++;
printf("hb=%d,hm=%d,hl=%d ",hb/3,hm/2,2*hl);
}
}
printf("n=%d ",n);
}
2.用“起泡法”對輸入的10個字符排序后按從小到大的次序輸出。
#define N 10
char str[N];
main()
{ int i,flag;
for(flag=1;flag==1;)
{ scanf("%s",str);
flag=0;
printf(" ");
}
sort(___(4)___);
for(i=0;i
printf("%c",str[i]);
printf(" ");
}
sort(char str[N])
{ int i,j;
char t;
for(j=1;j
for(i=0;(i
if(str[i]>str[i+1])
{ t=str[i];
____(5)____;
____(6)____;
}
}
3.以下程序是一個函數(shù),功能是求二階矩陣(m行n列矩陣)的所有靠外側(cè)的各元素值之和。(本程序中二階矩陣用一維數(shù)組來表示。)
例如,矩陣為:
3 0 0 3
2 5 7 3
1 0 4 2
則所有靠外側(cè)的各元素值之和為3+0+0+3+2+3+1+0+4+2=18。
add(int m,int n,int arr[])
{ int i,j,sum=0;
for(i=0;i
for(j=0;j
sum=sum+ (7) ;
for(j=0;j
for(i=1; (8) ;i++)
sum=sum+arr[i*n+j];
return(sum);
}
4.用指針作函數(shù)參數(shù),編程序求一維數(shù)組中的最大和最小的元素值。
#define N 10
main()
{ void maxmin(int arr[],int *pt1,int *pt2,int n);
int array[N]={10,7,19,29,4,0,7,35,-16,21},*p1,*p2,a,b;
p1=&a; p2=&b;
maxmin(array,p1,p2,N);
printf("max=%d,min=%d",a,b);
}
void maxmin(int arr[],int *pt1,int *pt2,int n)
{ int i;
*pt1=*pt2=arr[0];
for(i=1;i
{ if(arr[i]>*pt1) (9) ;
if(arr[i]<*pt2) (10) ;
}
}
答案
一 選擇題(24分,每小題2分)
1.( B ) 2.( C ) 3.( B ) 4.( D ) 5.( D ) 6.( A )
7.( D ) 8.( A ) 9.( D ) 10.( B ) 11.( C ) 12.( D )
二 判斷對錯,對的劃“√”,錯的劃“×”(20分,每小題2分)
1.( × ) 2.( √ ) 3.( √ ) 4.( × ) 5.( × )
6.( √ ) 7.( √ ) 8.( × ) 9.( √ ) 10.( √ )
三 寫出下列程序的運行結(jié)果(36分,每小題6分)
1. s=20 2.x=35 y=-4 s=-29 3.60,50,40,30,20,10,
4.e C pr*am 5.word value:1234 6.love China! H w l
high byte:12
low byte:34
word value:1274
the result:3ca8
四 閱讀下列程序,在 處填入適當內(nèi)容,使程序完整(20分,每個空2分)
1.(1) 3 (2) 2 (3)hm hl
2.(4) str (5) str[i]=str[i+1] (6) str[i+1]=t
3.(7) arr[i*n+j](或者arr[i*10+j])
(8) i
4.(9) *ptr1=arr[i] (10) *ptr2=arr[i]
計算機二級《C語言》備考試題及答案 3
1: 第1題請編寫函數(shù)fun,其功能使:將兩個兩位正整數(shù)a b合并形成一個整數(shù)放在c中。合并的方式使:將a數(shù)的十位和個位數(shù)依次放在c數(shù)的百位和個位上,b數(shù)的十位和個位數(shù)依次放在c數(shù)的千位和十位上。
答案:
void fun(int a,int b,long *c)
{*c=(b/10)*1000+(a/10)*100+(b%10)*10+a%10;}
2: 第2題請編寫一個函數(shù)fun,它的功能使:計算n門課程的平均分,計算結(jié)果作為函數(shù)值返回。
答案:
float fun(float *a,int n)
{float ave=0.0;
int i;
for(i=0;i
ave+=a;
ave/=n;
return ave;}
3: 第3題假定輸入的字符串中只包含字母和*號。請編寫函數(shù)fun,它的功能使:將字符串尾部的*號全部刪除,前面和中間的*號不刪除。
答案:
void fun(char *a)
{int i=0;
char *p,*q;
p=q=a;
while(*p)
p++;
p--;
while(*p==‘*’)
p--;
while(q<=p)
{a=*q;
i++;
q++;}
a=‘’;}
4: 第4題請編寫函數(shù)fun,其功能是:將兩個兩位數(shù)的正整數(shù)a b合并形成一個整數(shù)放在c中,合并的方式是:將a數(shù)的十位和個位數(shù)依次放在c的個位和百位上,b數(shù)的十位和個位數(shù)依次放在c數(shù)的千位和十位上。
答案:
void fun(int a,int b,long *c)
{c=(b/10)*1000+(a%10)*100+(b%10)*10+a/10;}
5: 第5題 n名學生的成績已在主函數(shù)中放入一個帶頭節(jié)點的鏈表結(jié)構(gòu)中,h指向鏈表的.頭節(jié)點。請編寫函數(shù)fun,它的功能是:求出平均分,由函數(shù)值返回。
答案:
double fun(strec *h)
{double aver=0.0;
while(h!=null)
{aver+=h->s;
hy=h->next;}
aver/=n;
return aver;}
6: 第6題請編寫函數(shù)fun,計算并輸出給定10個數(shù)的方差。
答案:
double fun(double x[10])
{int i,j;
double s=0.0,s1=0.0;
for(i=0;i<10;i++)
s1+=x;
s1/=10;
for(j=0;j<10;j++)
s+=(x[j]-s1)*(x[j]-s1);
s/=10;
s=pow(s,0.5);
return s;}
7: 第7題請編寫函數(shù)fun,其功能是:將兩個兩位數(shù)的正整數(shù)a b合并形成一個整數(shù)放在c 中。合并的方式是:將a數(shù)的十位和個位數(shù)依次放在c數(shù)的千位和十位上,b數(shù)的十位和個位數(shù)依次放在c數(shù)的個位和百位上。
答案:
void fun(int a,int b,long *c)
{*c=(a/10)*1000+(a%10)*10+(b%10)*100+b/10;}
計算機二級《C語言》備考試題及答案 4
(1)算法的時間復雜度是指_______。
A)執(zhí)行算法程序所需要的時間
B)算法程序的長度
C)算法執(zhí)行過程中所需要的基本運算次數(shù)
D)算法程序中的指令條數(shù)
答案:C
評析:所謂算法的時間復雜度,是指執(zhí)行算法所需要的計算工作量。
(2)下列敘述中正確的是________。
A)線性表是線性結(jié)構(gòu)B)棧與隊列是非線性結(jié)構(gòu)
C)線性鏈表是非線性結(jié)構(gòu)D)二叉樹是線性結(jié)構(gòu)
答案:A
評析:一般將數(shù)據(jù)結(jié)構(gòu)分為兩大類型:線性結(jié)構(gòu)與非線性結(jié)構(gòu)。線性表、棧與隊列、線性鏈表都是線性結(jié)構(gòu),而二叉樹是非線性結(jié)構(gòu)。
(3)下面關(guān)于完全二叉樹的敘述中,錯誤的是_________。
A)除了最后一層外,每一層上的結(jié)點數(shù)均達到最大值
B)可能缺少若干個左右葉子結(jié)點
C)完全二叉樹一般不是滿二叉樹
D)具有結(jié)點的完全二叉樹的深度為[log2n]+1
答案:B
評析:滿二叉樹指除最后一層外每一層上所有結(jié)點都有兩個子結(jié)點的二叉樹。完全二叉樹指除最后一層外,每一層上的結(jié)點數(shù)均達到最大值,在最后一層上只缺少右邊的若干子結(jié)點(葉子結(jié)點)的二叉樹。
C語言筆試題答案篇
(1)結(jié)構(gòu)化程序設計主要強調(diào)的.是_________。
A)程序的規(guī)模B)程序的易讀性
C)程序的執(zhí)行效率D)程序的可移植性
答案:B
評析:結(jié)構(gòu)化程序設計主要強調(diào)的是結(jié)構(gòu)化程序清晰易讀,可理解性好,程序員能夠進行逐步求精、程序證明和測試,以保證程序的正確性。
(2)在軟件生命周期中,能準確地確定軟件系統(tǒng)必須做什么和必須具備哪些功能的階段是________。
A)概要設計B)詳細設計C)可行性分析D)需求分析
答案:D
評析:需求分析是對待開發(fā)軟件提出的需求進行分析并給出詳細定義,即準確地確定軟件系統(tǒng)的功能。編寫軟件規(guī)格說明書及初步的用戶手冊,提交評審。
(3)數(shù)據(jù)流圖用于抽象描述一個軟件的邏輯模型,數(shù)據(jù)流圖由一些特定的圖符構(gòu)成。下列圖符名標識的圖符不屬于數(shù)據(jù)流圖合法圖符的是_________。
A)控制流B)加工C)數(shù)據(jù)存儲D)源和潭
答案:A
評析:數(shù)據(jù)流圖從數(shù)據(jù)傳遞和加工的角度,來刻畫數(shù)據(jù)流從輸入到輸出的移動變換過程。數(shù)據(jù)流圖中的主要圖形元素有:加工(轉(zhuǎn)換)、數(shù)據(jù)流、存儲文件(數(shù)據(jù)源)、源和潭。
(4)軟件需求分析一般應確定的是用戶對軟件的__________。
A)功能需求B)非功能需求C)性能需求D)功能需求和非功能需求
答案:D
評析:軟件需求分析中需要構(gòu)造一個完全的系統(tǒng)邏輯模型,理解用戶提出的每一功能與性能要求,是用戶明確自己的任務。因此,需求分析應確定用戶對軟件的功能需求和非功能需求。
C語言筆試題答案篇
(1)下述關(guān)于數(shù)據(jù)庫系統(tǒng)的敘述中正確的是________。
A)數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余
B)數(shù)據(jù)庫系統(tǒng)避免了一切冗余
C)數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的一致性是指數(shù)據(jù)類型的一致
D)數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù)
答案:A
評析:由數(shù)據(jù)的共享自身又可極大地減少數(shù)據(jù)冗余性,不僅減少了不必要的存儲空間,更為重要的是可以避免數(shù)據(jù)的不一致性。所謂數(shù)據(jù)的一致性是指在系統(tǒng)中同一數(shù)據(jù)的不同出現(xiàn)應保持相同的值。
(2)關(guān)系表中的每一橫行稱為一個________。
A)元組B)字段C)屬性D)碼
答案:A
評析:在關(guān)系數(shù)據(jù)庫中,關(guān)系模型采用二維表來表示,簡稱“表”。二維表是由表框架及表元組組成。在表框架中,按行可以存放數(shù)據(jù),每行數(shù)據(jù)稱為元組。
(3)數(shù)據(jù)庫設計包括兩個方面的設計內(nèi)容,它們是________。
A)概念設計和邏輯設計B)模式設計和內(nèi)模式設計
C)內(nèi)模式設計和物理設計D)結(jié)構(gòu)特性設計和行為特性設計
答案:A
評析:數(shù)據(jù)庫設計可分為概念設計與邏輯設計。概念設計的目的是分析數(shù)據(jù)間內(nèi)在語義關(guān)聯(lián),在此基礎(chǔ)上建立一個數(shù)據(jù)的抽象模型。邏輯設計的主要工作是將ER圖轉(zhuǎn)換為指定的RDBMS中的關(guān)系模型。
(4)請讀程序:
#include
main
{
int a;float b,c;
scanf(“%2d%3P%4f’,&a,&b,&C);
printf(” a=%d,b=%ec。%f ”,a,b,C);
}
若運行時從鍵盤上輸入9876543210l,則上面程序的輸出結(jié)果是________。
A)a=98,b=765,c=432 1
B)a=1 0,b=432,c=8765
C)a=98,b=765.000000,c=432 1.000000
D)a=98,b=765.0,c=432 1.0
答案:C
評析:scanf把用戶從鍵盤錄入的數(shù)字的第1、2位存入整型變量a;把第3、4、5位存入單精度實型變量b,把第6、7、8、9位存入單精度實型變量c,用戶錄入的第10位被scanf遺棄。這時變量a、b、c的值分別為:98、765.000000、4321.000000。
(5)一個良好的算法由下面的基本結(jié)構(gòu)組成,但不包括__________。
A)順序結(jié)構(gòu)B)選擇結(jié)構(gòu)C)循環(huán)結(jié)構(gòu)D)跳轉(zhuǎn)結(jié)構(gòu)
答案:D
評析:1966年,Bohra和Jacopini提出了以下三種基本結(jié)構(gòu),用這三種基本結(jié)構(gòu)作為表示一個良好算法的基本單元:1、順序結(jié)構(gòu);2、選擇結(jié)構(gòu);3、循環(huán)結(jié)構(gòu)。
(6)請選出以下程序的輸出結(jié)果________。
#include
sub(x,y,z)
int x,y,星符號z:
{星符號z變化,所以此次函數(shù)被調(diào)用后,a的值為y-x=-5,同理可知,在sub(7,a,&b)后,b的值發(fā)生變化,其值為-5-7=-12,在sub(a,b,&C)后,c的值發(fā)生變化,其值為-12-(-5)=-7。
(7)下面程序在屏幕上的輸出是________。
main
{
printf(”ab c”);
}
A)ab c B)a c C)abc D)ab c
答案:B
評析:c語言中允許使用一種特殊形式的字符常量,、就是以一個“”開頭的字符序列,這樣的字符稱為“轉(zhuǎn)義字符”。常用的轉(zhuǎn)義字符有: ,換行;,水平制表;,退格;,回車。
(8)若x是整型變量,pb是基類型為整型的指針變量,則正確的賦值表達式是_______。
A)pb=&x; B)pb=x; C)星符號pb=星符號、/)還包括自增自減運算符(++、–),在c語言解析表達式時,它總是進行貪婪咀嚼,這樣,該表達式就被解析為i++ ++ +i,顯然該表達式不合c語言語法。
(10)若要用下面的程序片段使指針變量p指向一個存儲整型變量的動態(tài)存儲單元
int星符號int) D)(int星符號)
答案:D
評析:不論p是指向什么類型的指針變量,都可以通過強制類型轉(zhuǎn)換的方法使之類型一致,強制類型轉(zhuǎn)換的格式為(數(shù)據(jù)類型+)。
(11)下面程序輸出的結(jié)果是__________。
main
{
int i=5,J=9,x;
x=(I==j?i:(j=7));
printf(” %d,%d”,I,J);
}
A)5,7 B)5,5 C)語法錯誤D)7,5
答案:A
評析:條件表達式的一般形式為:表達式I?表達式2:表達式3;先求解表達式1,若為真則求解表達式2;若表達式l的值為假,則求解表達式3。本題中先判斷i==j,不等,執(zhí)行j=7;然后執(zhí)行x=7。故本題為A。
計算機二級《C語言》備考試題及答案 5
1、 在C語言中,下列標識符中合法的是( ) A). -int B). in1_3 C). A_B!D D). const
2、 不屬于C語言基本數(shù)據(jù)類型的是( )
A). int B). union C). char D). unsigned
3、 下面是對宏定義的描述。不正確的是( )
A). 宏不存在類型問題,宏名無類型,它的參數(shù)也無類型 B). 宏替換不占用運行時間
C). 宏替換只是字符串的簡單替代
D). 宏替換時先檢查類型,類型一致時才可以替換
4、 C語言中,″xfds″在內(nèi)存中占用的字節(jié)數(shù)是( )
A).3 B).4 C).5 D).6
5、 設int x;則執(zhí)行printf(″%x ″,~x^x);的結(jié)果是( )
A). ffffffff B). ff C). 0 D). 1
6、 對于while( )
A).用條件控制循環(huán)體的執(zhí)行次數(shù) B).循環(huán)體至少要執(zhí)行一次
C).循環(huán)體有可能一次也不執(zhí)行 D).循環(huán)體中可以包含若干條語句
7、 執(zhí)行下列語句后輸出的結(jié)果是( )
int a=8,b=7,c=6;
if(ac){a=c;c=b;})if(b>
printf("%d,%d,%d ",a,b,c);
A).6,7,7 B).6,7,8 C).8,7,6 D).8,7,8
8、 設int a=9,b=20;則printf(″%d,%d ″,a--,--b);的輸出結(jié)果是( )
A).9,19 B).9,20 C).10,19 D).10,20
9、 設static char x[ ]=″12345″,y[ ]={′1′,′2′,′3′,′4′,′5′,′′};那么( )
A).x數(shù)組的長度等于y數(shù)組的長度 B).x數(shù)組的長度大于y數(shù)組的長度
C).x數(shù)組的長度少于y數(shù)組的長度 D).x數(shù)組與y數(shù)組的存儲區(qū)域相同
10、 設int i,x[3][3]={1,2,3,4,5,6,7,8,9};則下面語句的輸出結(jié)果是( )
for(i=0;i<3;i++)
printf(″%d″,x[i][2-i]);
A).147 B).159 C).357 D).369
11、 執(zhí)行完下列語句后,n的'值是( )
int n;
for (n=0 ; n<100 ; n=2*n+1);
A).125 B).126 C).127 D).128
12、 有以下語句:int a=6;a+=a-=a*a;printf(“%d”,a);輸出結(jié)果( )
A).–132 B).–60 C). -24 D). 0
13、 為了連接兩個字符串s1與s2,應當使用( )
A). strcat( s1,s2 ) B). strcpy( s1, s2 ) C). strlen( s1, s2 ) D). strcmp( s1, s2 )
14、 設int a,*p;則語句p=&a;中的運算符“&”的含義是( )
A).位與運算 B).邏輯與運算 C).取指針內(nèi)容 D).取變量地址
15、 下面輸出的結(jié)果為( )
int a=13, b=64;
printf(“%d ”, !a || (b>>3) ); A).13 B).64 C).1 D).0
16、 下列定義正確的是( )
A).enum t={a,b}x; B). enum t{1,2}x; C). enum {′+′,′-′}x; D). enum t{a,b}x;
17、 設有定義:struct u{int a[4];float b[3]; char c[16];}aa;
則printf(″%d ″,sizeof(aa));的輸出是( ) A).32 B).36 C).12 D).8
18、 數(shù)據(jù)-54.78在文本文件中占用的字節(jié)個數(shù)是( )
A).4 B).5 C).6 D).8
19、 在宏定義#define p(r) 3.14*r中,請問宏名是( )
A). p B). p(r) C). 3.14*r D). p(r) 3.14*r 20、 要打開一個已存在的用于修改的非空二進制文件“hello.txt”,正確語句是( )
A). fp=fopen( "hello.txt ","r" ) B). fp=fopen( "hello.txt ","ab+" ) C). fp=fopen( "hello.txt ","w" ) D). fp=fopen( "hello.txt ","r+" ) 密 封 線 內(nèi) 答 題 無 效
計算機二級《C語言》備考試題及答案 6
(1)下面關(guān)于算法說法錯誤的是_______。
a. 算法最終必須由計算機程序?qū)崿F(xiàn)
b. 為解決某問題的算法同為該問題編寫的程序含義是相同的
c. 算法的可行性是指指令不能有二義性
d. 以上幾個都是錯誤的
(2)下面說法錯誤的是______.
a. 算法原地工作的含義是指不需要任何額外的輔助空間
b. 在相同的規(guī)模n下,復雜度O(n)的算法在時間上總是優(yōu)于復雜度O(2n)的算法
c. 所謂時間復雜度是指最壞情況下,估算算法執(zhí)行時間的一個上界
d. 同一個算法,實現(xiàn)語言的級別越高,執(zhí)行效率就越低
(3)在下面的程序段中,對x的賦值語句的頻度為_____。
for (int i; i
{ for (int j=o; j
{ x:=x+1;
} }
a. 0(2n) b. 0(n) c. 0(n2) d. O(log2n)
(4)下面說法正確的是______。
a. 數(shù)據(jù)元素是數(shù)據(jù)的最小單位;
b. 數(shù)據(jù)元素是數(shù)據(jù)的.最小單位;
c. 數(shù)據(jù)的物理結(jié)構(gòu)是指數(shù)據(jù)在計算機內(nèi)的實際存儲形式
d. 數(shù)據(jù)結(jié)構(gòu)的抽象操作的定義與具體實現(xiàn)有關(guān)
(5)下面說法正確的是_______。
a. 在順序存儲結(jié)構(gòu)中,有時也存儲數(shù)據(jù)結(jié)構(gòu)中元素之間的關(guān)系
b. 順序存儲方式的優(yōu)點是存儲密度大,且插入、刪除運算效率高
c. 數(shù)據(jù)結(jié)構(gòu)的基本操作的設置的最重要的準則是,實現(xiàn)應用程序與存儲結(jié)構(gòu)的獨立
d. 數(shù)據(jù)的邏輯結(jié)構(gòu)說明數(shù)據(jù)元素之間的順序關(guān)系,它依賴于計算機的儲存結(jié)構(gòu)
【計算機二級《C語言》備考試題及答案】相關(guān)文章:
計算機二級C語言模擬試題及答案12-08
計算機二級《C語言》試題及答案201611-21
2017計算機二級C語言備考習題及答案03-18
計算機二級C語言備考習題及答案201712-05
全國計算機二級《C語言》備考復習試題12-08
2017計算機二級C語言測試題及答案12-04