《2019年3月全國計算機(jī)等級考試二級C語言筆試試題(含參考答案)》由會員分享,可在線閱讀,更多相關(guān)《2019年3月全國計算機(jī)等級考試二級C語言筆試試題(含參考答案)(26頁珍藏版)》請在裝配圖網(wǎng)上搜索。
2019年3月全國計算機(jī)等級考試二級C語言筆試試卷
(考試時間120分鐘,滿分100分)
一、選擇題((1)~(10)、(21)~(40)每題2分,(11)~(20)每題1分,70分)下列
各題A)、B)、C)、D)四個選項中,只有一個選項是正確的,請將正確選擇涂寫在答題卡相應(yīng)位置上,答在試卷上不得分。
(1)下列敘述中正確的是
A)棧是“先進(jìn)先出”的線性表
B)隊列是“先進(jìn)后出”的線性表
C)循環(huán)隊列是非線性結(jié)構(gòu)
D)有序線性表既可以采用順序存儲結(jié)構(gòu),也可以采用鏈?zhǔn)酱鎯Y(jié)構(gòu)
(2)支持子程序調(diào)用的數(shù)據(jù)結(jié)構(gòu)是
A)棧
B)樹
C)隊列
D)二叉樹
(3)某二叉樹有5個度為z的結(jié)點,則該二叉樹中的葉子結(jié)點數(shù)是
A)10
B)8
C)6
D)4
(4)下列排序方法中,最壞情況下比較次數(shù)最少的是
A)冒泡排序
B)簡單選擇排序
C)直接插入排序
D)堆排序
(5)軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于應(yīng)用軟件的是
A)編譯程序
B)操作系統(tǒng)
C)教務(wù)管理系統(tǒng)
D)匯編程序
(6)下面敘述中錯誤的是
A)軟件測試的目的是發(fā)現(xiàn)錯誤并改正錯誤
B)對被調(diào)試的程序進(jìn)行“錯誤定位”是程序調(diào)試的必要步驟
C)程序調(diào)試通常也稱為Debug
D)軟件測試應(yīng)嚴(yán)格執(zhí)行測試計劃,排除測試的隨意性
(7)耦合性和內(nèi)聚性是對模塊獨立性度量的兩個標(biāo)準(zhǔn)。下列敘述中正確的是A)提高耦合性降低內(nèi)聚性有利于提高模塊的獨立性
B)降低耦合性提高內(nèi)聚性有利于提高模塊的獨立性
C)耦合性是指一個模塊內(nèi)部各個元素間彼此結(jié)合的緊密程度
D)內(nèi)聚性是指模塊間互相連接的緊密程度
(8)數(shù)據(jù)庫應(yīng)用系統(tǒng)中的核心問題是
A)數(shù)據(jù)庫設(shè)計
B)數(shù)據(jù)庫系統(tǒng)設(shè)計
C)數(shù)據(jù)庫維護(hù)
D)數(shù)據(jù)庫管理員培訓(xùn)
(9)有兩個關(guān)系R, S如下:
由關(guān)系R通過運(yùn)算得到關(guān)系S,則所使用的運(yùn)算為
A)選擇
B)投影
C)插入
D)連接
(10)將E-R圖轉(zhuǎn)換為關(guān)系模式時,實體和聯(lián)系都可以表示為
A)屬性
B)鍵
C)關(guān)系
D)域
(11)以下選項中合法的標(biāo)識符是
A)1_1
B)1-1
C)_11
D)1_ _
(12)若函數(shù)中有定于語句:int k;,則
A)系統(tǒng)將自動給K賦初值0
B)這時k中的值無定義
C)系統(tǒng)將自動給k賦初值-1
D)這時k中無任何值
(13)以下選項中,能用作數(shù)據(jù)常量的是
A)o115
B)0118
C)1.5e1.5
D)115L
(14)設(shè)有定義:int x=2;,以下表達(dá)式中,值不為6的是
A)x*=x+1
B)x++,2*x
C)x*=(1+x)
D)2*x, x+=2
(15)程序段:int x=12; double y=3.141593; printf(“%d%8.6f”, x, y);的輸出結(jié)果是
A)123.141593
B)12 3.141593
C)12, 3.141593
D)123.1415930
(16)若有定義語句:double x, y,*px,*pY; 執(zhí)行了px=&x; py=&y;之后,正確的輸入語句是
A)scanf(“%f%f”,x,y);
B)scanf(“%f%f”,&x,&y);
C)scanf(“%lf%le”,px,py);
D)scanf(“%lf%lf”,x,y);
(17)以下是if語句的基本形式:
if(表達(dá)式)語句
其中“表達(dá)式”
A)必須是邏輯表達(dá)式
B)必須是關(guān)系表達(dá)式
C)必須是邏輯表達(dá)式或關(guān)系表達(dá)式
D)可以是任意合法的表達(dá)式
(18)有以下程序
#include
main()
{ int x;
scanf(“%d”,&x);
if (x<=3);else
if (x!=10) printf(“ %d\n”,x);
}
程序運(yùn)行時,輸入的值在哪個范圍才會有輸出結(jié)果A)不等于10的整數(shù)
B)大于3且不等10的整數(shù)
C)大于3或等于10的整數(shù)
D)小于3的整數(shù)
(19)有以下程序
#include
main()
{ int a=1,b=2,c=3,d=0;
if (a==1&&b++==2)
if (b!=2||c--!=3)
printf(“%d,%d,%d\n”,a,b, c);
else printf(“%d, %d, %d\n”,a,b, c);
else printf(“%d, %d,%d\n”,a,b,c);
}
程序運(yùn)行后的輸出結(jié)果是
A)1,2,3
B)1,3,2
C)1,3,3
D)3,2,1
(20)以下程序段中的變量已正確定義
for( i=0; i<4; i++,i++)
for( k=l; k<3; k++);printf(“*”);
程序段的輸出結(jié)果是
A)********
B)****
C)**
D)*
(21)有以下程序
#iinclude
main()
{ char *s= {“ABC”};
do
{ printf(“%d”;*s%l0); s++
}whi1e(*s);
}
注意:字母A的ASCII碼值為65。程序運(yùn)行后的輸出結(jié)果是
A)5670
B)656667
C)567
D)ABC
(22)設(shè)變量己正確定義,以下不能統(tǒng)計出一行中輸入字符個數(shù)(不包含回車符)的程序段是
A)n=0; while((ch=getchar())!='\n') n++;
B)n=0; while(getchar()!='\n') n++;
C)for( n=0;getchar()!='\n';n++);
D)n=0; for(ch=getchar();ch! ='\n';n++);
(23)有以下程序
#include
main()
{ int al,a2; char cl,c2;
scanf(“%d%c%d%c”,&a1,&cl,&a2,&c2);
printf(“%d, %c,%d, %c”,a1,c1,a2, c2);
}
若想通過鍵盤輸入,使得a1的值為12,a2的值為34,c1的值為字符a,c2的值為字符b,程序輸出的結(jié)果是:12,a,34,b 則正確的輸入格式是(以下~代表空格,代表回車)
A)12a34b
B)12~a~34~b
C)12,a,34,b
D)12~a34~b
(24)有以下程序
#include
int f(int x, int y)
{return((y-x)*x);)
main()
{int a=3,b=4,c=5,d;
d=f(f(a,b),f(a, c));
printf(“%d\n”,d);
}
程序運(yùn)行后的輸出結(jié)果是
A)10
B)9
C)8
D)7
(25)有以下程序
#include
void fun (char *s)
{while(*s)
{if(*s%2==0)printf(“%c”,*s);
s++;
}
}
main()
{char a[]=(“good”};
fun(a);printf(“\n”);
}
注意:字母a的ASCII碼值為97,程序運(yùn)行后的輸出結(jié)果是A)d
B)go
C)god
D)good
(26)有以下程序
#include
void fun(int *a,int *b)
{int *c;
c=a;a=b;b=c;
}
main()
{int x=3, y=5,*p=&x, *q=&y;
fun(p,q);printf(“%d,%d,”,*p,*q):
fun(&x, &y);printf(“%d,%d\n”;*p, *q);
}
程序運(yùn)行后的輸出結(jié)果是
A)3,5,5,3
B)3,5,3,5
C)5,3,3,5
D)5,3,5,3
(27)有以下程序
#include
void f(int *p, int *q);
main()
int m=l, n=2,*r=&m;
f(r, &n);printf(“%d,%d”,m, n);
}
void f(int *p,int *q)
{p=p+l: *q=*q+1;}
程序運(yùn)行后的輸出結(jié)果是
A)1,3
B)2,3
C)1,4
D)1,2
(28)以卜函數(shù)按每行8個輸出數(shù)組中的數(shù)據(jù)
vold fun(int *w,int n)
{int i;
for(i=0;i
main()
{char *a[ ]=(“abcd”,“ef”,“gh”,“ijk”}; int i;
for(i=0;i<4;i++)printf(“%c”,*a[i]);
}
程序運(yùn)行后的輸出結(jié)果是
A)aegi
B)dfhk
C)abcd
D)abcdefghijk
(32)以下選項中正確的語句組是
A)char s[]; s=“BOOK!”;
B)char *s; s={“BOOK!”};
C)char s[10]; s=“BOOK!”;
D)char *s; s=“BOOK!”;
(33)有以下程序
#include
int fun(int x, int y)
{if (x==y) return(x);
else return((x+y)/2);}
main()
{ int a=4,b=5,c=6;
printf(“%d\n”, fun(2*a, fun(b,c)));
}
程序運(yùn)行后的輸出結(jié)果是
A)3
B)6
C)8
D)12
(34)設(shè)函數(shù)中有整型變量n,為保證其在未賦初值的情況下初值為0,應(yīng)選擇的存儲類別是
A)auto
B)register
C)static
D)auto或register
(35)有以下程序
#include
int b=2.;
int fun(int *k)
{b=*k+b; return(b);}
main()
{int a[10]={1,2,3, 4,5,6,7,8),i;
for(i=2;i<4;i++){b=fun(&a[i])+b; printf(“%d”,b);} printf(“\n”);
}
程序運(yùn)行后的輸出結(jié)果是
A)10 12
B)8 10
C)10 28
D)10 16
(36)有以下程序
#include
#define PT 3.5;
#define S(x) PT*x*x;
main()
{ int a=1,b=2; printf(“%4.1f\n”,S(a+b));}
程序運(yùn)行后的輸出結(jié)果是
A)14.0
B)31.5
C)7.5
D)程序有錯無輸出結(jié)果
(37)有以下程序
#include
struct ord
{int x,y;} dt[2]={1,2,3,4};
main()
{struct ord *p=dt;
printf(“%d”,++p->x); printf(“%d\n”,++p->y);
}
程序的運(yùn)行結(jié)果是
A)1,2
B)2,3
C)3,4
D)4,1
(38)設(shè)有宏定義:#define IsDIV(k,n)((k%n==1)?1:0)且變量m己正確定義并賦值,則宏調(diào)用:IsDIV(m,5)&&IsDIV(m,7)
為真時所要表達(dá)的是
A)判斷m是否能被5或者7整除
B)判斷m是否能被5和7整除
C)判斷m被5或者7整除是否余1
D)判斷m被5和7整除是否都余
(39)有以一下程序
#include
main()
{int a=5, b=1, t;
t=(a<<2)|b; printf(“%d\n”,t);
}
程序運(yùn)行后的輸出結(jié)果是
A)21
B)11
C)6
D)1
(40)有以下程序
#include
main()
{FILE *f;
f=fopen(“filea.txt”,“w”);
fprintf(f,“abc”);
fclose(f);
}
若文本文件filea.txt中原有內(nèi)容為:hello,則運(yùn)行以上程序后,文件filea.txt 中的內(nèi)容為
A)helloabc
B)abclo
C)abc
D)abchello
二、填空題
(1)假設(shè)用一個長度為50的數(shù)組(數(shù)組元素的下標(biāo)從0到49)作為棧的存儲空間,棧底指針bottom指間棧底元素,棧頂指針top指向棧頂元素,如果bottom=49,top=30(數(shù)組下標(biāo)),則棧中具有【1】個元素。
(2)軟件測試可分為白盒測試和黑盒測試。基本路徑測試屬于【2】測試。
(3)符合結(jié)構(gòu)化原則的三種基本控制結(jié)構(gòu)是:選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)和【3】。
(4)數(shù)據(jù)庫系統(tǒng)的核心是【4】。
(5)在E-R圖中,圖形包括矩形框、菱形框、橢圓框。其中表示實體聯(lián)系的是【5】框。
(6)表達(dá)式(int)((double)(5/2)+2.5)的值是【6】
(7)若變量x、y已定義為int類型且x的值為99,y的值為9,請將輸出語句printf(【7】,x/y);補(bǔ)充完整,使其輸出的計算結(jié)果形式為:x/y=11。
(8)有以下程序
#include
main()
{char c1, c2;
scanf(“%c”,&c1);
while(c1<65||c1>90) scanf(“%c”,&c1);
c2=c1+32;
printf(“%c, %c\n”,c1, c2);
}
程序運(yùn)行輸入65回車后,能否輸出結(jié)果、結(jié)束運(yùn)行(請回答能或不能)【8】。
(9)以下程序運(yùn)行后的輸出結(jié)果是【9】。
#include
main()
{int k=1, s=0;
if((k%2)!=0) continue;
s+=k; k++;
}while(k>10);
printf(“s=%d\n”,s);
}
(10)下列程序運(yùn)行時,若輸入1abcedf2df<回車> 輸出結(jié)果為【10】。#include
main.()
{char a=0,ch;
while((ch=getchar())!='\n')
{if (a%2!=0&&(ch>='a'&&ch<='z'))ch=ch-'a' +'A';
a++;putchar(ch);
}
printf(“\n”);
}
(11)有以下程序,程序執(zhí)行后,輸出結(jié)果是【11】。
#include
void fun{int *a)
{a[0]=a[1];}
main()
{int a[10]={10, 9, 8,7,6, 5,4,3, 2,1},i;
for(i=2;i>=0;i--)fun(&a[i]);
for.(i=0;i<10;i++)printf(“%d”},a[1]);
printf(“\n”);
}
(12)請將以下程序中的函數(shù)聲明語句補(bǔ)充完整。
#include
int【12】;
main()
{int x, y,(*p)();
scanf(“%d%d”,&x,&y);
p=max;
printf(“%d\n”,(*p)(x, y));
int max(int a, int b)
{return (a>b?a:b);}
(13)以下程序用來判斷指定文件是否能正常打開,請?zhí)羁?
#include
main()
{FILE *fp;
if(((fp=fopen(“test.txt”,“r”))==【13】))
printf(“未能打開文件!\n”);
else
printf(“文件打開成功!\n”);
}
(14)下列程序的運(yùn)行結(jié)果為【14】
#include
#include
struct A
{int a; char b [10]; double c;};
void f(struct A *t);
main()
{ struct A a=(1001,“ZhangDa”,1098.0};
f(&a);printf(“%d,%s,%6.1f\n”,a.a, a.b, a.c);
}
void f(struct A *t)
{ strcpy(t->b,“ChangRong”);}
(15)以下程序把三個NODETYPE型的變量鏈接成一個簡單的鏈表,并在while 循環(huán)中輸出鏈表結(jié)點數(shù)據(jù)域中的數(shù)據(jù)。請?zhí)羁铡?
#include
struct node
{int data;struct node *next:};
typedef struct node NODETYPE;
main()
{NODETYPE a, b, c,*h,*p:
a .data=10;b.data=20; c.data=30; h=&a;
a .next=&b;
b .next=&c;
c .next='\0’;
p=h;
while(p){printf(“%d,”, p->data);【15】;} printf(“\n”);
}
一、選擇題
二、填空題
(1)19
(2)白盒
(3)順序結(jié)構(gòu)
(4)數(shù)據(jù)庫管理系統(tǒng)
(5)菱形
(6)4
(7)“x/y=%d”
(8)不能
(9)s=0
(10)1AbCeDf2Df
(11)7777654321
(12)max(int a,int b)
(13)NULL
(14)1001 ,ChangRong,1098.0
c5ca55a7ef06eff9aef8941ea76e58fafab045cd
鏈接地址:http://www.3dchina-expo.com/p-723856.html