- 相關(guān)推薦
全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語言筆試第二套
在學(xué)習(xí)、工作生活中,我們經(jīng)常接觸到試卷,經(jīng)過半個(gè)學(xué)期的學(xué)習(xí),究竟學(xué)到了什么?需要試卷來幫我們檢驗(yàn)。你知道什么樣的試卷才是好試卷嗎?下面是小編幫大家整理的全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語言筆試第二套,僅供參考,大家一起來看看吧。
全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語言筆試第二套 1
一、選擇題
在下列各題的A)、B)、C)、D)四個(gè)選項(xiàng)中,只有一個(gè)選項(xiàng)是正確的,請(qǐng)將正確的選項(xiàng)涂寫在答題卡相應(yīng)位置上,答在試卷上不得分。
(1)算法的空間復(fù)雜度是指
A)算法程序的長(zhǎng)度 B)算法程序中的指令條數(shù) C)算法程序所占的存儲(chǔ)空間 D)執(zhí)行算法需要的內(nèi)存空間
(2)在結(jié)構(gòu)化程序設(shè)計(jì)中,模塊劃分的原則是
A)各模塊應(yīng)包括盡量多的功能 B)各模塊的規(guī)模應(yīng)盡量大 C)各模塊之間的聯(lián)系應(yīng)盡量緊密
D)模塊內(nèi)具有高內(nèi)聚度、模塊間具有低耦合度
(3)下列敘述中,不屬于測(cè)試的特征的是
A)測(cè)試的挑剔性 B)完全測(cè)試的不可能性 C)測(cè)試的可靠性 D)測(cè)試的經(jīng)濟(jì)性
(4)下面關(guān)于對(duì)象概念的描述中,錯(cuò)誤的是
A)對(duì)象就是C語言中的結(jié)構(gòu)體變量 B)對(duì)象代表著正在創(chuàng)建的系統(tǒng)中的一個(gè)實(shí)體
C)對(duì)象是一個(gè)狀態(tài)和操作(或方法)的封裝體 D)對(duì)象之間的信息傳遞是通過消息進(jìn)行的
(5)下列關(guān)于隊(duì)列的敘述中正確的是
A)在隊(duì)列中只能插入數(shù)據(jù) B)在隊(duì)列中只能刪除數(shù)據(jù) C)隊(duì)列是先進(jìn)先出的線性表 D)隊(duì)列是先進(jìn)后出的線性表
(6)已知二叉樹后序遍歷序列是dabec,中序遍歷序列是debac,它的前序遍歷序列是
A)acbed B)decab C)deabc D)cedba
(7)某二叉樹中有n個(gè)度為2的結(jié)點(diǎn),則該二叉樹中的葉子結(jié)點(diǎn)數(shù)為
A)n+1 B)n-1 C)2n D)n/2
(8)設(shè)有如下三個(gè)關(guān)系表
R S T
A B C A B C
m 1 3 m 1 3
n n 1 3
下列操作中正確的是
A) T=R∩S B) T=R∪S C) T=R×S D) T=R/S
(9)下列敘述中,正確的是
A)用E-R圖能夠表示實(shí)體集間一對(duì)一的聯(lián)系、一對(duì)多的聯(lián)系和多對(duì)多的聯(lián)系 B)用E-R圖只能表示實(shí)體集之間一對(duì)一的聯(lián)系 C)用E-R圖只能表示實(shí)體集之間一對(duì)多的聯(lián)系 D)用E-R圖表示的概念數(shù)據(jù)模型只能轉(zhuǎn)換為關(guān)系數(shù)據(jù)模型
(10)下列有關(guān)數(shù)據(jù)庫(kù)的描述,正確的是
A)數(shù)據(jù)處理是將信息轉(zhuǎn)化為數(shù)據(jù)的過程 B)數(shù)據(jù)的物理獨(dú)立性是指當(dāng)數(shù)據(jù)的邏輯結(jié)構(gòu)改變時(shí),數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)不變
C)關(guān)系中的每一列稱為元組,一個(gè)元組就是一個(gè)字段 D)如果一個(gè)關(guān)系中的屬性或?qū)傩越M并非該關(guān)系的關(guān)鍵字,但它是另一個(gè)關(guān)系的關(guān)鍵字,則稱其為本關(guān)系的外關(guān)鍵字
(11)C語言規(guī)定,在一個(gè)源程序中,main函數(shù)的位置
A)必須在最開始 B)必須在系統(tǒng)調(diào)用的庫(kù)函數(shù)的后面 C)可以任意 D)必須在最后
(12)以下敘述中錯(cuò)誤的是
A)計(jì)算機(jī)不能直接執(zhí)行用C語言編寫的源程序 B)C程序經(jīng)C編譯程序編譯后,生成后綴為.obj的文件是一個(gè)二進(jìn)制文件
C)后綴為.obj的文件,經(jīng)連接程序生成后綴為.exe的文件是一個(gè)二進(jìn)制文件 D)后綴為.obj和.exe的二進(jìn)制文件都可以直接運(yùn)行
(13)下列選項(xiàng)可以正確表示字符型常量的是
A)′\r′ B)"a" C)"\897" D)296
(14)以下敘述中正確的是
A)構(gòu)成C程序的基本單位是函數(shù) B)可以在一個(gè)函數(shù)中定義另一個(gè)函數(shù)
C)main( )函數(shù)必須放在其他函數(shù)之前 D)C函數(shù)定義的格式是K&R格式
(15)設(shè)變量均已正確定義,若要通過scanf("%d%c%d%c",&a1,&c1,&a2,&c2);語句為變量a1和a2賦數(shù)值10和20,為變量c1和c2賦字符X和Y。以下所示的輸入形式中正確的是(注:□代表空格字符)
A) 10□X□20□Y<回車> B) 10□X20□Y<回車> C) 10□X<回車> 20□Y<回車> D) 10X<回車>
20Y<回車>
(16)若有說明:int *p,m=5,n;,以下正確的程序段是
A)p=&n;scanf("%d",&p); B)p=&n;scanf("%d",*p) C)scanf("%d",&n);*p=n; D)p=&n;*p=m;
(17)在執(zhí)行下述程序時(shí),若從鍵盤輸入6和8,則結(jié)果為
main( )
{ int a,b,s;
scanf("%d%d",&a,&b);
s=a
if(a
s=b;
s*=s;
printf("%d",s); }
A)36 B)64 C)48 D)以上都不對(duì)
(18)若執(zhí)行下面的程序時(shí),從鍵盤輸入5和2,則輸出結(jié)果是
main( )
{ int a,b,k;
scanf("%d,%d ",&a,&b);
k=a;
if(a
else k=b%a;
printf("%d\n",k);}
A)5 B)3 C)2 D)0
(19)在C語言中,函數(shù)返回值的類型最終取決于
A)函數(shù)定義時(shí)在函數(shù)首部所說明的函數(shù)類型 B)return語句中表達(dá)式值的類型 C)調(diào)用函數(shù)時(shí)主調(diào)函數(shù)所傳遞的實(shí)參類型 D)函數(shù)定義時(shí)形參的類型
(20)已知大寫字母A的ASCII碼是65,小寫字母a的ASCII碼是97。以下不能將變量c中的大寫字母轉(zhuǎn)換為對(duì)應(yīng)小寫字母的語句是
A)c=(c-′A′)%26+′a′ B)c=c+32 C)c=c-′A′+′a′ D)c=(′A′+c)%26-′a′
(21)以下選項(xiàng)中,當(dāng)x為大于l的奇數(shù)時(shí),值為0的表達(dá)式是
A)x%2==1 B)x/2 C)x%2!=0 D)x%2==0
(22)有以下程序
main( )
{int k=5,n=0;
do
{switch(k)
{case 1: case 3:n+=1;k--;break;
default:n=0;k--;
case 2: case 4:n+=2;k--;break;
}
printf("%d",n);
}while(k>0 && n<5);
}
程序運(yùn)行后的輸出結(jié)果是
A)235 B)0235 C)02356 D)2356
(23)有如下程序
main( )
{ int n=9;
while(n>6){n--; printf("%d",n);} }
該程序的輸出結(jié)果是
A)987 B)876 C)8765 D)9876
(24)有以下程序
#include
main( )
{ int c;
while((c=get ))!=′\n)
{ switch(c-′2′)
{ case 0:
case 1:putc+4);
case 2:putc+4);break;
case 3:putc+3);
case 4:putc+3);break; } }
printf("\n")}
從第一列開始輸入以下數(shù)據(jù)代表一個(gè)回車符。
2743
程序的輸出結(jié)果是
A)66877 B)668966 C)6677877 D)6688766
(25)有以下程序
main( )
{ int x=0,y=0,i;
for (i=1;;++i)
{ if (i%2==0) {x++;continue;}
if (i%5==0) {y++;break;} }
printf (" %d,%d",x,y); }
程序的輸出結(jié)果是
A)2,1 B)2,2 C)2,5 D)5,2
(26)有以下程序
main( )
{int a[4][4]={{l,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}},i,j,k,t;
for(i=0;i<4;i++)
for(j=0;j<3;j++)
for(k=j+1;k<4;k++)
if(a[j][i]>a[k][i]){t=a[j][i];a[j][i]=a[k][i];a[k][i]=t;}/*按列排序*/
for(i=0;i<4;i++)printf("%d,",a[i][i]);
}
程序運(yùn)行后的輸出結(jié)果是
A)1,6,5,7, B)8,7,3,1, C)4,7,5,2, D)1,6,2,1,
(27)有以下程序
int f(int n)
{ if(n==1)return 1;
else return f(n-1)+1;}
main( )
{ int i,j=0;
for(i=1;i<3;i++)j+=f(i);
printf("%d\n",j);}
程序運(yùn)行后的輸出結(jié)果是
A)4 B)3 C)2 D)1
(28)當(dāng)運(yùn)行以下程序時(shí),從鍵盤輸入AhaMA(空格)Aha,則下面程序的運(yùn)行結(jié)果是
#include
main( )
{ char s[80],c=′a′;
int i=0;
scanf("%s",s);
while(s[i]!=′
{ if(s[i]==c)s[i]-32;
else if(s[i]==c-32)s[i]=s[i]+32;
i++; }
puts(s); }
A)ahaMa B)AbAMa C)AhAMa[空格]ahA D)ahAMa[空格]ahA
(29)下面程序輸出的結(jié)果是
main( )
{ int i;
int a[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)
printf("%d ",a[2-i][i]); }
A)1 5 9 B)7 5 3 C)3 5 7 D)5 9 1
(30)現(xiàn)有如下程序段
#include "stdio.h"
main( )
{ int a[5][6]={23,3,65,21,6,78,28,5,67,25,435,76,8,22,45,7,8,34,6,78,32,4,5,67,4,21,1};
int i=0,j=5;
printf("%d\n",*(&a[0][0]+2*i+j-2));}
則程序的輸出結(jié)果為
A)21 B)78 C)23 D)28
(31)請(qǐng)選出正確的程序段
A)int *p;
scanf("%d",p);
…
B)int *s, k;
*s=100;
…
C)int *s, k;
char *p, c;
s=&k;
p=&c;
*p=′a′;
…
D)int *s, k;
char *p, e;
s=&k;
p=&c;
s=p;
*s=1;
…
(32)下面程序段的運(yùn)行結(jié)果是
char a[]="lanuage",*p;
p=a;
while(*p!=′u′){printf("%c",*p-32);p++;}
A)LANGUAGE B)language C)LAN D)langUAGE
(33)以下程序的輸出結(jié)果是
#include
int a[3][3]={1,2,3,4,5,6,7,8,9,},*p;
main( )
{ p=(int*)malloc(sizeof(int));
f(p,a);
printf("%d\n",*p);
free(p); }
f(int *s, int p[][3])
{ *s=p[1][1];}
A)1 B)4 C)7 D)5
(34)有以下程序
void f(int *q)
{int i=0;
for(;i<5; i++) (*q)++;
}
main( )
{int a[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,
(35)以下合法的字符型常量是
A)′\x13′ B) ′\081′ C) ′65′ D)"\n"
(36)有以下語句,則對(duì)a數(shù)組元素的引用不正確的是
int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;
A)a[p-a] B)*(&a[i]) C)p[i] D)*(*(a+i))
(37)有以下程序
# include
main( )
{char p[20]={′a′, ′b′, ′c′, ′d′}, q[]="abc", r[]="abcde";
strcat(p, r); strcpy(p+strlen(q), q);
printf("%d\n",strlen(p));
}
程序運(yùn)行后的輸出結(jié)果是
A)9 B)6 C)11 D)7
(38)在C語言中,變量的隱含存儲(chǔ)類別是
A)auto B)static C)extern D)無存儲(chǔ)類別
(39)以下程序的輸出結(jié)果是
main( )
{ int c=35; printf("%d\n",c&c);}
A)0 B)70 C)35 D)1
(40)有以下程序
#include
main( )
{ FILE *fp; int i=20,j=30,k,n;
fp=fopen("d1.dat","w");
fprintf(fp,"%d\n",i);fprintf(fp,"%d\n",j);
fclose(fp);
fp=fopen("d1.dat","r");
fscanf(fp,"%d%d",&k,&n); printf("%d %d\n",k,n);
fclose(fp); }
程序運(yùn)行后的`輸出結(jié)果是
A)20 30 B)20 50 C)30 50 D)30 20
二、填空題
請(qǐng)將每一個(gè)空的正確答案寫在答題卡序號(hào)的橫線上,答在試卷上不給分。
(1)設(shè)一棵完全二叉樹共有700個(gè)結(jié)點(diǎn),則在該二叉樹中有 【1】 個(gè)葉子結(jié)點(diǎn)。
(2)常用的黑箱測(cè)試有等價(jià)類劃分法、 【2】 和錯(cuò)誤推測(cè)法3種。
(3)數(shù)據(jù)庫(kù)管理系統(tǒng)常見的數(shù)據(jù)模型有層次模型、網(wǎng)狀模型和 【3】 3種。
(4)通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程稱為 【4】 。
(5)數(shù)據(jù)庫(kù)保護(hù)分為:安全性控制 、 【5】 、并發(fā)性控制和數(shù)據(jù)的恢復(fù)。
(6)執(zhí)行以下程序后的輸出結(jié)果是 【6】 。
main( )
{int a=10;
a=(3*5,a+4);printf("a=%d\n",a);
}
(7)以下程序的輸出結(jié)果是 【7】 。
#include
main( )
{printf("%d\n",strlen("IBM\n012\1\\"));}
(8)已定義char ch=′$′; int i=1,j;,執(zhí)行j!=ch&&i++以后,i的值為 【8】 。
(9)以下程序的運(yùn)行結(jié)果是 【9】 。
#include
long fib(int g)
{ switch(g)
{ case 0:return 0;
case 1:
case 2:return 1; }
return(fib(g-1)+fib(g-2)); }
main( )
{ long k;
k=fib(5);
printf("k=%5ld\n",k);}
(10)下面程序的功能是輸出數(shù)組s中最大元素的下標(biāo),請(qǐng)?zhí)羁铡?/p>
main( )
{ int k, p,s[]={1, -9, 7, 2, -10, 3};
for(p=0, k=p; p<6; p++)
if(s[p]>s[k]) 【10】
printf("%d\n",k);}
(11)以下程序的功能是:求出數(shù)組x中各相鄰兩個(gè)元素的和依次存放到a數(shù)組中,然后輸出。請(qǐng)?zhí)羁铡?/p>
main( )
{int x[10],a[9],I;
for(I=0; I<10; I++) scanf("%d",&x[I]);
for( 【11】 ; I<10; I++ )
a[I-1]=x[I]+ 【12】 ;.
for(I=0; I<9; I++) printf("%d ",a[I]);
printf("");
}
(12)設(shè)有以下程序,為使之正確運(yùn)行,請(qǐng)?jiān)跈M線中填入應(yīng)包含的命令行。(注:try_me( )函數(shù)在a:\myfile.txt中有定義。)
【13】
main( )
{ printf("\n");
try_me( );
printf("\n");}
(13)以下程序的功能是建立一個(gè)帶有頭結(jié)點(diǎn)的單向鏈表,鏈表結(jié)點(diǎn)中的數(shù)據(jù)通過鍵盤輸入,當(dāng)輸入數(shù)據(jù)為-1時(shí),表示輸入結(jié)束(鏈表頭結(jié)點(diǎn)的data域不放數(shù)據(jù),表空的條件是ph->next==NULL),請(qǐng)?zhí)羁铡?/p>
#include
struct list { int data; struct list *next;};
struct list*creatlist( )
{ struct list *p,*q,*ph;int a;ph=(struct list *)malloc (sizeof(struct list));
p=q=ph;printf("Input an integer number; entre-1 to end:\n");
scanf("%d",&a);
while(a!=-1)
{ p=(struct list*)malloc(sizeof(struct list));
【14】 =a;q->next=p; 【15】 =p;scanf("%d",&a);}
p->next=′\0;return(ph);}
main( )
{struct list * head; head=creatlist( );}
(1)D 【解析】 算法的復(fù)雜度主要包括算法的時(shí)間復(fù)雜度和算法的空間復(fù)雜度。所謂算法的時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量;算法的空間復(fù)雜度是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間。
(2)D 【解析】 在結(jié)構(gòu)化程序設(shè)計(jì)中,一般較優(yōu)秀的軟件設(shè)計(jì)盡量做到高內(nèi)聚、低耦合,這樣有利于提高軟件模塊的獨(dú)立性,也是模塊劃分的原則。
(3)C 【解析】 軟件測(cè)試的目標(biāo)是在精心控制的環(huán)境下執(zhí)行程序,以發(fā)現(xiàn)程序中的錯(cuò)誤,給出程序可靠性的鑒定。它有3個(gè)方面的重要特征,即測(cè)試的挑剔性、完全測(cè)試的不可能性及測(cè)試的經(jīng)濟(jì)性。其中,沒有測(cè)試的可靠性這一說法。
(4)A 【解析】 對(duì)象是由數(shù)據(jù)和容許的操作組成的封裝體,與客觀實(shí)體有直接的對(duì)應(yīng)關(guān)系,對(duì)象之間通過傳遞消息互相聯(lián)系,從模擬現(xiàn)實(shí)世界中不同事物彼此之間的聯(lián)系,B)、C)、D)是正確的,對(duì)象的思想廣泛應(yīng)用于C++、Java等語言中,因此A)錯(cuò)誤。
(5)C 【解析】 隊(duì)列是一種操作受限的線性表。它只允許在線性表的一端進(jìn)行插入操作,另一端進(jìn)行刪除操作。其中,允許插入的一端稱為隊(duì)尾(rear),允許刪除的一端稱為隊(duì)首(front)。隊(duì)列具有先進(jìn)先出的特點(diǎn),它是按"先進(jìn)先出"的原則組織數(shù)據(jù)的。
(6)D 【解析】 依據(jù)后序遍歷序列可確定根結(jié)點(diǎn)為c;再依據(jù)中序遍歷序列可知其左子樹由deba構(gòu)成,右子樹為空;又由左子樹的后序遍歷序列可知其根結(jié)點(diǎn)為e,由中序遍歷序列可知其左子樹為d,右子樹由ba構(gòu)成,如下圖所示,求得該二叉樹的前序遍歷序列為選項(xiàng)D)。
(7)A 【解析】 對(duì)于任何一棵二叉樹T,如果其終端結(jié)點(diǎn)(葉子)數(shù)為n1,度為2的結(jié)點(diǎn)數(shù)為n2,則n1=n2+1,所以該二叉樹的葉子結(jié)點(diǎn)數(shù)等于n+1。
(8)C 【解析】 對(duì)于兩個(gè)關(guān)系的合并操作可以用笛卡爾積表示。設(shè)有n元關(guān)系R和m元關(guān)系S,它們分別有p和q個(gè)元組,則R與S的笛卡兒積記為R×S它是一個(gè)m+n元關(guān)系,元組個(gè)數(shù)是p×q由題意可得,關(guān)系T是由關(guān)系R與關(guān)系S進(jìn)行笛卡爾積運(yùn)算得到的。
(9)A 【解析】 兩個(gè)實(shí)體之間的聯(lián)系實(shí)際上是實(shí)體集間的函數(shù)關(guān)系,這種函數(shù)關(guān)系可以有下面幾種,即一對(duì)一的聯(lián)系、一對(duì)多(或多對(duì)一)的聯(lián)系和多對(duì)多的聯(lián)系;概念模型便于向各種模型轉(zhuǎn)換。由于概念模型不依賴于具體的數(shù)據(jù)庫(kù)管理系統(tǒng),因此,容易向關(guān)系模型、網(wǎng)狀模型和層次模型等各種模型轉(zhuǎn)換。
(10)D 【解析】 數(shù)據(jù)處理是指將數(shù)據(jù)轉(zhuǎn)換成信息的過程,故選項(xiàng)A)敘述錯(cuò)誤;數(shù)據(jù)的物理獨(dú)立性是指數(shù)據(jù)的物理結(jié)構(gòu)的改變,不會(huì)影響數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu),故選項(xiàng)B)敘述錯(cuò)誤;關(guān)系中的行稱為元組,對(duì)應(yīng)存儲(chǔ)文件中的記錄,關(guān)系中的列稱為屬性,對(duì)應(yīng)存儲(chǔ)文件中的字段,故選項(xiàng)C)敘述錯(cuò)誤。
(11)C 【解析】 不論main函數(shù)在整個(gè)過程中的位置如何,一個(gè)C程序總是從main函數(shù)開始執(zhí)行的。
(12)D 【解析】 一個(gè)C語言的源程序(后綴名為.c)在經(jīng)過編譯器編譯后,先生成一個(gè)匯編語言程序,然后由編譯程序再將匯編語言程序翻譯成機(jī)器指令程序,即目標(biāo)程序(后綴名為.obj),目標(biāo)程序不可以直接運(yùn)行,它要和庫(kù)函數(shù)或其他目標(biāo)程序連接成可執(zhí)行文件(后綴名為.exe)后方可運(yùn)行。
(13)A 【解析】 C語言中,一個(gè)字符常量代表ASCII字符集中的一個(gè)字符,在程序中用單引號(hào)括起來作為字符常量,字符常量的的范圍是0~127。由于字符常量用單引號(hào)括起來,所以選項(xiàng)B),C)錯(cuò)誤,選項(xiàng)D)超過了字符常量的表示范圍。
(14)A 【解析】 本題考查C語言的綜合基礎(chǔ)知識(shí)。構(gòu)成C程序的基本單位是函數(shù),不論main函數(shù)在整個(gè)程序中的位置如何,一個(gè)C程序總是從main函數(shù)開始執(zhí)行,C語言的函數(shù)定義都是互相平行、獨(dú)立的,在定義函數(shù)時(shí),一個(gè)函數(shù)內(nèi)不能定義另一個(gè)函數(shù)。C函數(shù)定義的一般格式有兩種:傳統(tǒng)格式和現(xiàn)代格式。傳統(tǒng)格式也稱K&R格式,是早期編譯系統(tǒng)使用的格式;現(xiàn)代格式又稱ANSI格式,是現(xiàn)代編譯系統(tǒng)使用的格式。
(15)D 【解析】 本題中,scanf函數(shù)的格式控制沒有空格,所以,對(duì)于選項(xiàng)A)、B)、C),輸入的第一個(gè)空格會(huì)作為字符賦值給變量c1,而不會(huì)被解釋成分隔符。
(16)D 【解析】 "&"是求址運(yùn)算符,"*"是指變量說明符。選項(xiàng)A)、B)應(yīng)改為scanf("%d",p);選項(xiàng)C)中指針變量p未指向一確定的內(nèi)存單元,不能為其賦值,并且這樣做很危險(xiǎn),建議不使用。
(17)B 【解析】 本題中a的值為6,b的值為8,最后s的值為8,s*=s等價(jià)于s=s*s。
(18)C 【解析】 本題考查簡(jiǎn)單的if…else語句。先執(zhí)行條件if(a
(19)A 【解析】 在C語言中,應(yīng)當(dāng)在定義函數(shù)時(shí)指定函數(shù)值的類型,凡不加類型說明的函數(shù),一律按整型處理。在定義函數(shù)時(shí),對(duì)函數(shù)值說明的類型一般應(yīng)該和return語句中的表達(dá)式類型一致。如果函數(shù)值的類型和return語句中的表達(dá)式類型不一致,則以函數(shù)類型為主,即函數(shù)類型決定返回值的類型。
(20)D 【解析】 C語言中,字符數(shù)據(jù)參加運(yùn)算時(shí),實(shí)際上是其ASCII碼參與運(yùn)算。大寫字母的ASCII碼比其對(duì)應(yīng)的小寫字母的ASCII碼小32。因此大寫字母轉(zhuǎn)化為小寫字母只需將其加上32即可。所以選項(xiàng)B)、C)都符合條件,因?yàn)樽兞縞中存儲(chǔ)的是大寫字母,所以"c-A"的值一定小于26,故選項(xiàng)A)與選項(xiàng)C)的含義相同。
(21)D 【解析】 因?yàn)閤的值為大于1的奇數(shù),所以x除以2的余數(shù)等于1,因此,選項(xiàng)A)、C)中表達(dá)式的結(jié)果為真,不為0;對(duì)于選項(xiàng)B)來說,x除以2的商不會(huì)等于0;選項(xiàng)D)中表達(dá)式的結(jié)果為假,即等于0。
(22)A 【解析】 因?yàn)樽兞康某跏贾捣謩e為"k=5,n=0",所以程序第一次進(jìn)入循環(huán)時(shí),執(zhí)行 default語句,這時(shí)k=4,執(zhí)行"case 4:"這個(gè)分支,結(jié)果是"n=2,k=3",打印出2;程序然后進(jìn)行第二次循環(huán),這時(shí)"n=2,k=3",執(zhí)行"case 3:"這個(gè)分支,結(jié)果是"n=3,k=2",打印出3;程序進(jìn)行第三次循環(huán),這時(shí)"n=3,k=2",執(zhí)行"case 2: case 4:"這兩個(gè)分支,結(jié)果是?"n=5,k=1"?,打印出5,這時(shí)因?yàn)閚=5不滿足n<5的循環(huán)條件,因此退出循環(huán),程序運(yùn)行結(jié)束,故輸出結(jié)果為235。
(23)B 【解析】 該題目應(yīng)該根據(jù)循環(huán)體第一次和最后一次執(zhí)行時(shí)的輸出結(jié)果來決定哪一項(xiàng)是正確的。第一次進(jìn)入循環(huán)時(shí),n的值是9,循環(huán)體內(nèi),先經(jīng)過n--運(yùn)算,n的值變?yōu)?,所以第一次的輸出值是8,由此可以排除選項(xiàng)A)和D)。由循環(huán)條件n>6可以知道,最后一次循環(huán)開始時(shí),n的值應(yīng)該為7,所以最后一次執(zhí)行循環(huán)時(shí),輸出為6,由此可以排除選項(xiàng)C)。
(24)A 【解析】 本題主要考查了字符輸入輸出函數(shù)getchar和putchar的使用。getchar函數(shù)用來從標(biāo)準(zhǔn)輸入設(shè)備上讀入一個(gè)字符,putc)函數(shù)是將字符變量c中的字符輸出到標(biāo)準(zhǔn)輸出設(shè)備上,并且字符可以看作整數(shù)參與運(yùn)算。
(25)A 【解析】 本題考查了continue和break語句在循環(huán)語句中的作用。break語句的作用是結(jié)束本層循環(huán),而continue語句的作用是結(jié)束本次循環(huán)直接進(jìn)入到下次循環(huán)。
(26)A 【解析】 本題利用多重 for循環(huán)的嵌套來實(shí)現(xiàn)對(duì)二維數(shù)組元素的按列排序。利用最外層循環(huán)來實(shí)現(xiàn)對(duì)列的控制。內(nèi)部循環(huán)利用選擇法對(duì)數(shù)組元素按照從小到大的順序進(jìn)行排列,最后輸出對(duì)角線上的元素值。
(27)B 【解析】 在main函數(shù)中,對(duì)f(1)和f(2)的值進(jìn)行了累加。
f(1)=1
f(2)=f(1)+1=2
最后,j的值為1+2=3
(28)A 【解析】 本題主要考查的知識(shí)點(diǎn)是大寫字母比它對(duì)應(yīng)的小寫字母ASCII碼值小32,并且字符可以看作整數(shù)進(jìn)行算術(shù)運(yùn)算等操作。
(29)B 【解析】 本題用循環(huán)的方法考查對(duì)數(shù)組概念的掌握。首先,當(dāng)i=0時(shí),數(shù)組中的位置是a[2][0]=7,當(dāng)然,如果用排除法,就不用考慮后面的循環(huán),因?yàn)樵?個(gè)選項(xiàng)中,第1個(gè)數(shù)為7的選項(xiàng)只有B)。本題執(zhí)行第2次循環(huán)時(shí),i的值為1,則printf函數(shù)中的數(shù)組指向?yàn)閍[1][1]=5,依次循環(huán),可求出答案。
(30)A 【解析】 通過地址來引用二維數(shù)組,若有以下定義:int a[3][4],i,j;且當(dāng)0≤i≤3,0≤j<4則可以有以下幾種方式來引用數(shù)組中的第i行,第j列的元素:?a[i][j]?,?*(a[i]+j),?*(*(a+i)+j),(*(a+i))[j],*(&a[0][0]+4*i+j)。表達(dá)式&a[0][0]+2*i+j-2相當(dāng)于是地址&a[0][0]加上多少偏移量。
(31)C 【解析】 本題的選項(xiàng)A)和B)犯了同樣的錯(cuò)誤,即指針變量在定義后并沒有指向具體的變量。也就是說,指針變量中沒有確定的地址值,它的值是不可預(yù)見的,所指的單元也是不可預(yù)見的,因此不能進(jìn)行賦值操作。另外,在選項(xiàng)D)中,s是int型指針變量,p是char型指針變量,所指向的內(nèi)存單元所占用的字節(jié)數(shù)是不同的,因而不能將字符指針變量p的值賦給整型指針變量s。
(32)C 【解析】 本段程序的作用是輸出字符串"lanuage"中字母u之前的字符,并將其轉(zhuǎn)化為大寫字母。
注意:如果一個(gè)字符數(shù)組用來作為字符串使用,那么在定義該字符數(shù)組時(shí),數(shù)組的大小就應(yīng)該比它將要實(shí)際存放的最長(zhǎng)字符多一個(gè)元素,以存放\0。
(33)D 【解析】 本題考查了二維數(shù)組元素引用的方法。題中用動(dòng)態(tài)存儲(chǔ)分配函數(shù)malloc分配了一個(gè)int型數(shù)據(jù)長(zhǎng)度大小的內(nèi)存,然后指針p指向了這段內(nèi)存,函數(shù)f( )中對(duì)p所指向的數(shù)據(jù)進(jìn)行了賦值,p[1][1]為二維數(shù)組第二行第二列的元素,對(duì)應(yīng)于實(shí)參a的元素5,所以輸出結(jié)果為5。
(34)B 【解析】 調(diào)用函數(shù)f( )時(shí),將數(shù)組a的地址傳遞給了指針q,此時(shí)q指向的就是數(shù)組a的第一個(gè)元素a[0]。在5次循環(huán)過程中,q始終指向a[0],因此a[0]的值增加了5。最后的輸出結(jié)果為"6,2,3,4,5"。
(35)A 【解析】 C語言的字符常量是用單引號(hào)(即撇號(hào))括起來的一個(gè)字符。除此之外,在C語言中還允許用一個(gè)"\" 開頭的字符序列來表示字符常量。其中,形式"\ddd"表示1到3位8進(jìn)制數(shù)所代表的字符;形式"\xhh"表示1到2位16進(jìn)制數(shù)所代表的字符。在本題中,\x13表示回車符,是一個(gè)字符常量;\081用8進(jìn)制數(shù)所代表的字符,但形式不正確,因?yàn)?進(jìn)制數(shù)所代表的字符中不會(huì)出現(xiàn)數(shù)字"8";65不是一個(gè)字符,而是一個(gè)十進(jìn)制數(shù)字;"\n"是用雙引號(hào)括起來的一個(gè)字符,表示一個(gè)字符串,而不是字符常量。
(36)D 【解析】 本題考查數(shù)組指針的應(yīng)用。選項(xiàng)D)第一層括號(hào)中為數(shù)組a中第i項(xiàng)元素的值,外面再加指針運(yùn)算符沒有意義。
(37)B 【解析】 strcpy( )函數(shù)的功能是將字符串q復(fù)制到從p[3]位置開始的存儲(chǔ)單元,同時(shí)復(fù)制字符串結(jié)束標(biāo)志\0 到p[6]中。函數(shù)strlen( )返回的是字符串中不包括\0在內(nèi)的實(shí)際長(zhǎng)度,故本題答案為B)
(38)A 【解析】 auto變量:無static聲明的局部變量。用auto作存儲(chǔ)類別的聲明時(shí),可以不寫auto,存儲(chǔ)類別隱含確定為auto(自動(dòng)存儲(chǔ)類別),是動(dòng)態(tài)存儲(chǔ)方式。大多數(shù)變量是自動(dòng)變量。用static聲明的局部變量是靜態(tài)局部變量。函數(shù)調(diào)用結(jié)束后靜態(tài)局部變量占據(jù)的內(nèi)存存儲(chǔ)單元空間不釋放,局部變量保留原值,下次調(diào)用時(shí)可以繼續(xù)使用該值。用extern聲明外部變量,外部變量即全局變量,可以用extern聲明來改變?nèi)肿兞康淖饔糜,?shí)際上,關(guān)鍵字"auto "可以省略,auto不寫則隱含確定為"自動(dòng)存儲(chǔ)類別",屬于動(dòng)態(tài)存儲(chǔ)方式。
(39)C 【解析】 本題考查按位與"&"。因?yàn)?&1=1,0&0=0,所以任何數(shù)與自身按位與,結(jié)果仍為此數(shù),不發(fā)生變化。
(40)A 【解析】 本題中,最主要的是掌握幾個(gè)有關(guān)文件函數(shù)的應(yīng)用。
函數(shù)名:fopen
功能:打開一個(gè)文件
調(diào)用方式FILE *fp ;
fp=fopen(文件名,使用文件方式);
函數(shù)名:fprintf
功能:傳送格式化輸出到一個(gè)文件中
調(diào)用方式:fprintf(文件指針,格式字符串,輸出表列);
函數(shù)名:fclose
功能:關(guān)閉一個(gè)文件
調(diào)用方式:fclose(文件指針);
函數(shù)名:fscanf
功能:從磁盤文件執(zhí)行格式化輸入
調(diào)用方式:fscanf(文件指針,格式字符串,輸入列表)。
二、填空題
(1)【1】 350 【解析】 完全二叉樹中,設(shè)高度為n,則除h層外其它層結(jié)點(diǎn)數(shù)都到達(dá)最大,可以算出h=10,1至9層結(jié)點(diǎn)個(gè)數(shù)為2^9-1=511,最后一層結(jié)點(diǎn)個(gè)數(shù)為700-511=189個(gè),189/2=95,除最后一層外共有結(jié)點(diǎn)2^(9-1)-95=161個(gè),所以所有的結(jié)點(diǎn)個(gè)數(shù)為:189+161=350個(gè)。
(2)【2】 邊界值分析法 【解析】 黑箱測(cè)試法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征,而只是根據(jù)程序功能導(dǎo)出測(cè)試用例。常用的黑箱測(cè)試有等價(jià)類劃分法、邊界值分析法和錯(cuò)誤推測(cè)法3種。
(3)【3】 關(guān)系模型 【解析】 數(shù)據(jù)庫(kù)管理系統(tǒng)是位于用戶與操作系統(tǒng)之間的一層系統(tǒng)管理軟件,屬于系統(tǒng)軟件是用戶與數(shù)據(jù)庫(kù)之間的一個(gè)標(biāo)準(zhǔn)接口,其總是基于某種數(shù)據(jù)模型,可以分為層次模型、網(wǎng)狀模型和關(guān)系模型。
(4)【4】 軟件生命周期 【解析】 軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個(gè)時(shí)期都屬于軟件生命周期。一般包括可行性研究與需求分析、設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試、交付使用以及維護(hù)等活動(dòng)。
(5)【5】 完整性控制 【解析】 安全性控制:防止未經(jīng)授權(quán)的用戶有意或無意存取數(shù)據(jù)庫(kù)中的數(shù)據(jù),以免數(shù)據(jù)被泄露、更改或破壞;完整性控制:保證數(shù)據(jù)庫(kù)中數(shù)據(jù)及語義的正確性和有效性,防止任何對(duì)數(shù)據(jù)造成錯(cuò)誤的操作;并發(fā)控制:正確處理好多用戶、多任務(wù)環(huán)境下的并發(fā)操作,防止錯(cuò)誤發(fā)生;恢復(fù):當(dāng)數(shù)據(jù)庫(kù)被破壞或數(shù)據(jù)不正確時(shí),使數(shù)據(jù)庫(kù)將其恢復(fù)到正確的狀態(tài)。
(6)【6】 a=14 【解析】 本題考查的是表達(dá)式的優(yōu)先級(jí)問題。先計(jì)算表達(dá)式3*5=15,再計(jì)算a+4=14,將數(shù)據(jù)14賦值給a,根據(jù)printf( )函數(shù)內(nèi)的輸出格式控制串,最后的輸出結(jié)果應(yīng)為"a=14"。
(7)【7】 9 【解析】本題的字符串中共有9個(gè)字符,它們分別是I、B、M、\n、 0、1、2、\1、\\,其中,"\n"表示換行,"\\"表示反斜杠字符"\",所以本題的最后輸出結(jié)果為9。
(8)【8】 1 【解析】 在執(zhí)行邏輯表達(dá)式"j=!ch&&i++"時(shí),首先判斷j=!ch的值,因?yàn)?ch=$"不為0,所以"j=!ch=0",編譯系統(tǒng)便不再計(jì)算表達(dá)式"i++"的值,i的值不變,仍為1。
(9)【9】 k=5 【解析】 本題主要考查了函數(shù)的遞歸調(diào)用方法。g=0或?g=1?或g=2是遞歸的終止條件,然后用回代的方法從一個(gè)已知值推出下一個(gè)值,直到計(jì)算出最終結(jié)果。
(10)【10】 k=p; 【解析】 為尋找數(shù)組中最大元素的下標(biāo),需先預(yù)設(shè)1個(gè)臨時(shí)最大元素的下標(biāo),并順序逐一考查數(shù)組的元素,當(dāng)發(fā)現(xiàn)當(dāng)前元素比臨時(shí)最大元素更大時(shí),就用當(dāng)前元素的下標(biāo)更新臨時(shí)最大元素下標(biāo)。直至考查了數(shù)組的全部元素后,這臨時(shí)最大元素下標(biāo)就是數(shù)組的最大元素下標(biāo)。通常預(yù)設(shè)的最大元素下標(biāo)是數(shù)組的首元素下標(biāo),考查通常從首元素開始順序向后繼元素考查。程序中,存儲(chǔ)臨時(shí)最大元素下標(biāo)的變量是k,變量p控制順序考查的循環(huán)控制變量。當(dāng)發(fā)現(xiàn)當(dāng)前元素s[p]比臨時(shí)最大元素s[k]更大時(shí),應(yīng)該用p更新k,所以在空框處應(yīng)填入代碼"k=p;"。
(11)【11】 I=1 【12】 x[I-1] 【解析】 對(duì)于10個(gè)數(shù),相臨的兩個(gè)數(shù)相加取和,總共要進(jìn)行9次加法運(yùn)算,所以空14處應(yīng)填入I=1。相臨的兩個(gè)數(shù)相加取和,放在數(shù)組a中,x[0]與x[1]的和存放在a[0]中,所以空15處應(yīng)填入x[I-1]。
(12)【13】 #include
(13)【14】 p->data 【15】 q 【解析】 本題考查的是鏈表這一數(shù)據(jù)結(jié)構(gòu)對(duì)結(jié)構(gòu)體變量中數(shù)據(jù)的引用。鏈表的特點(diǎn)是結(jié)構(gòu)體變量中有兩個(gè)域,一個(gè)是數(shù)據(jù),另一個(gè)是指向該結(jié)構(gòu)體變量類型的指針,用以指明鏈表的下一個(gè)結(jié)點(diǎn)。
全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語言筆試第二套 2
一、選擇題((1)—(10)、(21)—(40)每題2分,(11)—(20)每題1分,共70分)
(1)下列數(shù)據(jù)結(jié)構(gòu)中,屬于非線性結(jié)構(gòu)的是
A.循環(huán)隊(duì)列
B.帶鏈隊(duì)列
C.二叉樹
D.帶鏈棧
。2)下列數(shù)據(jù)結(jié)果中,能夠按照“先進(jìn)后出”原則存取數(shù)據(jù)的是
A.循環(huán)隊(duì)列
B.棧
C.隊(duì)列
D.二叉樹
。3)對(duì)于循環(huán)隊(duì)列,下列敘述中正確的是
A.隊(duì)頭指針是固定不變的
B.隊(duì)頭指針一定大于隊(duì)尾指針
C.隊(duì)頭指針一定小于隊(duì)尾指針
D.隊(duì)頭指針可以大于隊(duì)尾指針,也可以小于隊(duì)尾指針
。4)算法的空間復(fù)雜度是指
A.算法在執(zhí)行過程中所需要的計(jì)算機(jī)存儲(chǔ)空間
B.算法所處理的數(shù)據(jù)量
C.算法程序中的語句或指令條數(shù)
D.算法在執(zhí)行過程中所需要的臨時(shí)工作單元數(shù)
(5)軟件設(shè)計(jì)中劃分模塊的一個(gè)準(zhǔn)則是
A.低內(nèi)聚低耦合
B.高內(nèi)聚低耦合
C.低內(nèi)聚高耦合
D. 高內(nèi)聚高耦合
。6)下列選項(xiàng)中不屬于結(jié)構(gòu)化程序設(shè)計(jì)原則的是
A.可封裝.
B. 自頂向下
C.模塊化
D. 逐步求精
。7)軟件詳細(xì)設(shè)計(jì)產(chǎn)生的圖如下:
該圖是
A.N-S圖
B.PAD圖
C.程序流程圖
D. E-R圖
。8)數(shù)據(jù)庫(kù)管理系統(tǒng)是
A.操作系統(tǒng)的一部分
B.在操作系統(tǒng)支持下的系統(tǒng)軟件
C.一種編譯系統(tǒng)
D. 一種操作系統(tǒng)
(9)在E-R圖中,用來表示實(shí)體聯(lián)系的圖形是
A.橢圓圖
B.矩形
C.菱形
D. 三角形
。10)有三個(gè)關(guān)系R,S和T如下:
其中關(guān)系T由關(guān)系R和S通過某種操作得到,該操作為
A.選擇
B.投影
C.交
D.并
。11)以下敘述中正確的是
A.程序設(shè)計(jì)的任務(wù)就是編寫程序代碼并上機(jī)調(diào)試
B.程序設(shè)計(jì)的任務(wù)就是確定所用數(shù)據(jù)結(jié)構(gòu)
C.程序設(shè)計(jì)的任務(wù)就是確定所用算法
D.以上三種說法都不完整
(12)以下選項(xiàng)中,能用作用戶標(biāo)識(shí)符的是
A.void
B.8_8
C._0_
D.unsigned
。13)閱讀以下程序
#include
main( )
{ int case; float printF;
printf(“請(qǐng)輸入2個(gè)數(shù):”);
scanf(“%d %f”,&case,&pjrintF);
printf(“%d %f ”,case,printF);
}
該程序編譯時(shí)產(chǎn)生錯(cuò)誤,其出錯(cuò)原因是
A.定義語句出錯(cuò),case是關(guān)鍵字,不能用作用戶自定義標(biāo)識(shí)符
B.定義語句出錯(cuò),printF不能用作用戶自定義標(biāo)識(shí)符
C.定義語句無錯(cuò),scanf不能作為輸入函數(shù)使用
D.定義語句無錯(cuò),printf不能輸出case的值
(14)表達(dá)式:(int)((double)9/2)-(9)%2的值是
A.0
B.3
C.4
D.5
(15)若有定義語句:int x=10;,則表達(dá)式x-=x+x的值為
A.-20
B.-10
C.0
D.10
。16)有以下程序
#include
main( )
{ int a=1,b=0;
printf(“%d,”,b=a+b);
printf(“%d ”,a=2*b);
}
程序運(yùn)行后的輸出結(jié)果是
A.0,0
B.1,0
C.3,2
D.1,2
17)設(shè)有定義:int a=1,b=2,c=3;,以下語句中執(zhí)行效果與其它三個(gè)不同的是
A.if(a>B. c=a,a=b,b=c;
B.if(a>B. {c=a,a=b,b=c;}
C.if(a>B. c=a;a=b;b=c;
D.if(a>B. {c=a;a=b;b=c;}
(18)有以下程序
#include
main( )
{ int c=0,k;
for (k=1;k<3;k++)
switch (k)
{ default: c+=k
case 2: c++;break;
case 4: c+=2;break;
}
printf(“%d ”,C.;
}
程序運(yùn)行后的輸出結(jié)果是
A.3
B.5
C.7
D.9
。19)以下程序段中,與語句:k=a>b?(b>c?1:0):0;功能相同的是
A.if((a>b)&&(b>C.) k=1;
else k=0;
B.if((a>b)||(b>C. k=1;
else k=0;
C.if(a<=B. k=0;
else if(b<=C.k=1;
D.if(a>B. k=1;
else if(b>C.k=1;
else k=0;
20)有以下程序
#include
main( )
{ char s[]={“012xy”};int i,n=0;
for(i=0;s[i]!=0;i++)
if(s[i]>=’a’&&s[i]<=’z’) n++;
printf(“%d ”,n);
}
程序運(yùn)行后的輸出結(jié)果是
A.0
B.2
C.3
D.5
(21)有以下程序
#include
main( )
{ int n=2,k=0;
while(k++&&n++>2);
printf(“%d %d ”,k,n);
}
程序運(yùn)行后的輸出結(jié)果是
A.0 2
B.1 3
C.5 7
D.1 2
。22)有以下定義語句,編譯時(shí)會(huì)出現(xiàn)編譯錯(cuò)誤的是
A.char a=’a’;
B.char a=’ ’;
C.char a=’aa’;
D.char a=’x2d’;
。23)有以下程序
#include
main( )
{ char c1,c2;
c1=’A’+’8’-‘4’;
c2=’A’+’8’-‘5’;
printf(“%c,%d ”,c1,c2);
}
已知字母A的ASCII碼為65,程序運(yùn)行后的輸出結(jié)果是
A.E,68
B.D,69
C.E,D
D.輸出無定值
。24)有以下程序
#include
void fun(int p)
{ int d=2;
p=d++; printf(“%d”,p);}
main( )
{ int a=1;
fun(a); printf(“%d ”,a);}
程序運(yùn)行后的輸出結(jié)果是
A.32
B.12
C.21
D.22
(25)以下函數(shù)findmax擬實(shí)現(xiàn)在數(shù)組中查找最大值并作為函數(shù)值返回,但程序中有錯(cuò)導(dǎo)致不能實(shí)現(xiàn)預(yù)定功能
#define MIN -2147483647
int findmax (int x[],int n)
{ int i,max;
for(i=0;i
{ max=MIN;
if(max
return max;
}
造成錯(cuò)誤的原因是
A.定義語句int i,max;中max未賦初值
B.賦值語句max=MIN;中,不應(yīng)給max賦MIN值
C.語句if(max
D.賦值語句max=MIN;放錯(cuò)了位置
(26)有以下程序
#include
main( )
{ int m=1,n=2,*p=&m,*q=&n,*r;
r=p;p=q;q=r;
printf(“%d,%d,%d,%d ”,m,n,*p,*q);
}
程序運(yùn)行后的輸出結(jié)果是
A.1,2,1,2
B.1,2,2,1
C.2,1,2,1
D.2,1,1,2
。27)若有定義語句:int a[4][10],*p,*q[4];且0≤i<4,則錯(cuò)誤的賦值是
A.p=a
B.q[i]=a[i]
C.p=a[i]
D.p=&a[2][1]
。28)有以下程序
#include
#include
main( )
{ char str[ ][20]={“One*World”, “One*Dream!”},*p=str[1];
printf(“%d,”,strlen(p));printf(“%s ”,p);
}
程序運(yùn)行后的輸出結(jié)果是
A.9,One*World
B.9,One*Dream
C.10,One*Dream
D.10,One*World
。29)有以下程序
#include
main( )
{ int a[ ]={2,3,5,4},i;
for(i=0;i<4;i++)
switch(i%2)
{ case 0:switch(a[i]%2)
{case 0:a[i]++;break;
case 1:a[i]--;
}break;
case 1:a[i[=0;
}
for(i=0;i<4;i++) printf(“%d”,a[i]); printf(“ ”);
}
A.3 3 4 4
B.2 0 5 0
C.3 0 4 0
D.0 3 0 4
。30)有以下程序
#include
#include
main( )
{ char a[10]=”abcd”;
printf(“%d,%d ”,strlen(a),sizeof(a));
}
程序運(yùn)行后的輸出結(jié)果是
A.7,4
B.4,10
C.8,8
D.10,10
。31)下面是有關(guān)C語言字符數(shù)組的描述,其中錯(cuò)誤的'是
A.不可以用賦值語句給字符數(shù)組名賦字符串
B.可以用輸入語句把字符串整體輸入給字符數(shù)組
C.字符數(shù)組中的內(nèi)容不一定是字符串
D.字符數(shù)組只能存放字符串
。32)下列函數(shù)的功能是
fun(char * a,char * b)
{ while((*b=*a)!=’’) {a++,b++;} }
A.將a所指字符串賦給b所指空間
B.使指針b指向a所指字符串
C.將a所指字符串和b所指字符串進(jìn)行比較
D.檢查a和b所指字符串中是否有’’
。33)設(shè)有以下函數(shù)
void fun(int n,char * s) {……}
則下面對(duì)函數(shù)指針的定義和賦值均是正確的是
A.void (*pf)( ); pf=fun;
B.viod *pf( ); pf=fun;
C.void *pf( ); *pf=fun;
D.void (*pf)(int,char);pf=&fun;
。34)有以下程序
#include
int f(int n);
main( )
{ int a=3,s;
s=f(a);s=s+f(a);printf(“%d ”,s);
}
int f(int n)
{ static int a=1;
n+=a++;
return n;
}
程序運(yùn)行以后的輸出結(jié)果是
A.7
B.8
C.9
D.10
。35)有以下程序
#include
#define f(x) x*x*x
main( )
{ int a=3,s,t;
s=f(a+1);t=f((a+1));
printf(“%d,%d ’,s,t);
}
程序運(yùn)行后的輸出結(jié)果是
A.10,64
B.10,10
C.64,10
D.64,64
。36)下面結(jié)構(gòu)體的定義語句中,錯(cuò)誤的是
A.struct ord {int x;int y;int z;}; struct ord a;
B.struct ord {int x;int y;int z;} struct ord a;
C.struct ord {int x;int y;int z;} a;
D.struct {int x;int y;int z;} a;
。37)設(shè)有定義:char *c;,以下選項(xiàng)中能夠使字符型指針c正確指向一個(gè)字符串的是
A.char str[ ]=”string”;c=str;
B.scanf(“%s”,C.;
C.c=get);
D.*c=”string”;
。38)有以下程序
#include
#include
struct A
{ int a; char b[10]; double c;};
struct A f(struct A t);
main( )
{ struct A a={1001,”ZhangDa”,1098.0};
a=f(a);jprintf(“%d,%s,%6.1f ”,a.a,a.b,a.C.;
}
struct A f(struct A t)
( t.a=1002;strcpy(t.b,”ChangRong”);t.c=1202.0;return t; )
程序運(yùn)行后的輸出結(jié)果是
A.1001,ZhangDa,1098.0
B.1001,ZhangDa,1202.0
C.1001,ChangRong,1098.0
D.1001,ChangRong,1202.0
(39)若有以下程序段
int r=8;
printf(“%d ”,r>>1);
輸出結(jié)果是
A.16
B.8
C.4
D.2
(40)下列關(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.文件由字符序列組成,其類型只能是文本文件
【全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語言筆試第二套】相關(guān)文章:
全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語言03-29
全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C++筆試真題10-11
全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語言試題二03-29
3月全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C++筆試真題10-11
計(jì)算機(jī)等級(jí)考試二級(jí)C語言真題09-26
全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C筆試試卷(含參考答案)03-23
計(jì)算機(jī)等級(jí)考試二級(jí)Java筆試真題(通用10套)10-06