- 相關(guān)推薦
計算機(jī)等級考試二級C語言考試試題帶答案(精選10份)
無論是在學(xué)習(xí)還是在工作中,我們會經(jīng)常接觸并使用考試題,考試題可以幫助學(xué)校或各主辦方考察參試者某一方面的知識才能。大家知道什么樣的考試題才是好考試題嗎?下面是小編為大家收集的計算機(jī)等級考試二級C語言考試試題帶答案,希望對大家有所幫助。
計算機(jī)等級考試二級C語言考試試題帶答案 1
一、填空題(每空2分,共40分)
請將每一個空的正確答案寫在答案卡上,答在試卷上不得分。
(1) 為了要將當(dāng)前盤目錄中的可執(zhí)行程序ABC.EXE的輸出結(jié)果存放到當(dāng)前盤當(dāng)前目錄中的文件OUT.TXT中,則應(yīng)使用的DOS命令為【1】 。
(2) 計算機(jī)網(wǎng)絡(luò)分為廣域網(wǎng)和局域網(wǎng),因特網(wǎng)屬于【2】 。
(3) 要想在當(dāng)前目錄下方便地執(zhí)行C盤\UCDOS目錄中的程序,就應(yīng)該先執(zhí)行預(yù)設(shè)搜索路徑的命令,該DOS命令為【3】 。
(4) 要查看當(dāng)前目錄中擴(kuò)展名為.DAT的所有文件目錄,應(yīng)該使用的DOS 命令為【4】 。
(5) 在Windows環(huán)境下,當(dāng)進(jìn)行復(fù)制操作時,其復(fù)制的內(nèi)容將存放在【5】中
(6) 若從鍵盤輸入58,則以下程序輸出的結(jié)果是 【6】 。
main()
{ int a;
scanf("%d",&a);
if(a>50) printf("%d",a);
if(a>40) printf("%d",a);
if(a>30) printf("%d",a);
}
(7) 以下程序的輸出結(jié)果是【7】 。
main()
{ int a=177;
printf("%o\n",a);
}
(8) 以下程序的輸出結(jié)果是【8】 。
main()
{ int a=0
a+=(a=8);
printf("%d\n",a);
}
(9) 以下程序輸出的結(jié)果是【9】 。
main()
{ int a=5,b=4,c=3,d;
d=(a>b>c);
printf("%d\n",d);
}
(10) 以下定義的結(jié)構(gòu)體類型擬包含兩個成員,其中成員變量info用來存入整形數(shù)據(jù);成員變量link是指向自身結(jié)構(gòu)體的指針.請將定義補(bǔ)充完整。
struct node
{int info;
【10】 link;
}
(11) 以下程序的輸出結(jié)果是【11】 。
main()
{int s,i;
for(s=0,i=1;i<3;i++,s+=i);
printf("%d\n",s);
}
(12) 以下程序的輸出結(jié)果是【12】 。
main()
{ char *p="abcdefgh",*r;
long *q;
q=(long*)p;
q++;
r=(char*)q;
printf("%s\n",r);
}
(13) 以下程序的輸出結(jié)果是【13】 。
main()
{ char s[]="abcdef";
s[3]=‘\0;
printf("%s\n",s);
}
(14) 以下程序的輸出結(jié)果是【14】 。
main()
{ int x=0;
sub(&x,8,1);
printf("%d\n",x);
}
sub(int *a,int n,int k)
{ if(k<=n) sub(a,n/2,2*k);
*a+=k;
}
(15) 設(shè)有如下宏定義
#define MYSWAP(z,x,y) {z=x; x=y; y=z;}
以下程序段通過宏調(diào)用實(shí)現(xiàn)變量a、b內(nèi)容交換,請?zhí)羁铡?/p>
float a=5,b=16,c;
MYSWAP( 【15】 ,a,b);
(16) 以下程序用來統(tǒng)計文件中字符個數(shù)。請?zhí)羁铡?/p>
#include "stdio.h"
main()
{ FILE *fp; long num=0L;
if((fp=fopen("fname.dat","r"))==NULL)
{ pirntf("Open error\n"); exit(0);}
while( 【16】 )
{ fgetc(fp); num++;}
printf("num=%1d\n",num-1);
fclose(fp);
}
(17) 以下程序中,select 函數(shù)的功能是:在N行M列的二維數(shù)組中,選出一個最大值作為函數(shù)值返回,并通過形參傳回此最大值所在的行下標(biāo)。請?zhí)羁铡?/p>
#define N 3
#define M 3
select(int a[N][M],int *n)
{ int i,j,row=1,colum=1;
for(i=0;i
for(j=0;j
if(a[i][j]>a[row][colum]){row=i;colum=j;}
*n= 【17】;
return 【18】;
}
main()
{int a[N][M]={9,11,23,6,1,15,9,17,20},max,n;
max=select(a,&n);
printf("max=%d,line=%d\n",max,n);
}
(18) mystrlen函數(shù)的功能是計算str所指字符串的長度,并作為函數(shù)值返回。請?zhí)羁铡?/p>
int mystrlen(char *str)
{ int i;
for(i=0; 【19】!=‘\0;i++);
return(【20】);
}
二、選擇題((1)—(40)題每小題1分,(41)—(50)題每小題2分,共和60分)
下列各題A)、B)、C)、D)四個選項(xiàng)中,只有一個選項(xiàng)是正確的,請將正確選項(xiàng)涂寫在答題卡相應(yīng)位置上,答在試卷上不得分。
(1) 在計算機(jī)中,一個字長的二進(jìn)制位數(shù)是
A) 8 B) 16 C) 32 D) 隨CPU的型號而定
(2) 計算機(jī)網(wǎng)絡(luò)的突出優(yōu)點(diǎn)是
A) 速度快 B) 資源共享 C) 精度高 D) 容量大
(3) 計算機(jī)網(wǎng)絡(luò)能傳送的信息是:
A) 所有的多媒體信息 B) 只有文本信息
C) 除聲音外的所有信息 D) 文本和圖像信息
(4) 切斷計算機(jī)電源后,下列存儲器中的信息會丟失的是:
A) RAM B) ROM C) 軟盤 D) 硬盤
(5) 十進(jìn)制數(shù)127轉(zhuǎn)換成二進(jìn)制數(shù)是
A) 11111111 B) 01111111 C) 10000000 D) 11111110
(6) 要想打印存放在當(dāng)前盤當(dāng)前目錄上所有擴(kuò)展名為.TXT 的文件內(nèi)容, 應(yīng)該使用的DOS命令為
A) DIR *.TXT>PRN B) TYPE *.TXT>PRN
C) COPY *.TXT PRN D) COPY *.TXT>PRN
(7) 將當(dāng)前盤當(dāng)前目錄及其子目錄中的全部文件 (總量不足1.2MB) 復(fù)制到一張空的A盤的根目錄下,應(yīng)該使用的DOS命令為
A) XCOPY *.*A:\ /M B) XCOPY *.*A:\ /S
C) XCOPY *.*A:\ /P D) XCOPY *.*A:\ /A
(8) 在C盤根目錄下執(zhí)行PROMPT $p$g命令之后,DOS的提示符變?yōu)?/p>
A) C:> B) C:\> C) C> D) C:\
(9) DOS命令 "COPY CON DISP"中的CON代表
A) 子目錄 B) 磁盤文件 C) 鍵盤 D) 顯示器
(10) 結(jié)構(gòu)化程序設(shè)計所規(guī)定的三種基本控制結(jié)構(gòu)是
A) 輸入、處理、輸出 B) 樹形、網(wǎng)形、環(huán)形
C) 順序、選擇、循環(huán) D) 主程序、子程序、函數(shù)
(11) 要把高級語言編寫的源程序轉(zhuǎn)換為目標(biāo)程序,需要使用
A) 編輯程序 B) 驅(qū)動程序 C) 診斷程序 D) 編譯程序
(12) 英文小寫字母d的ASCII碼為100,英文大寫字母D的ASCII碼為
A) 50 B) 66 C) 52 D) 68
(13) Windows環(huán)境下,PrintScreen鍵的作用是
A) 復(fù)制當(dāng)前窗口到剪貼板 B) 打印當(dāng)前窗口的內(nèi)容
C) 復(fù)制屏幕到剪貼板 D) 打印屏幕內(nèi)容
(14) 在Windows環(huán)境下,為了終止應(yīng)用程序的運(yùn)行,應(yīng)
A) 關(guān)閉該應(yīng)用程序窗口 B) 最小化該應(yīng)用程序窗口
C) 雙擊該應(yīng)用程序窗口的標(biāo)題欄 D) 將該應(yīng)用程序窗口移出屏幕
(15) 下列各帶有通配符的文件名中,能代表文件XYZ.TXT的是
A) *Z.? B) X*.* C) ?Z,TXT D) ?.?
(16) 若有定義:int a=8,b=5,C;,執(zhí)行語句C=a/b+0.4;后,c的值為
A) 1.4 B) 1 C) 2.0 D) 2
(17) 若變量a是int類型,并執(zhí)行了語句:a=‘A+1.6;,則正確的敘述是
A) a的值是字符C B) a的值是浮點(diǎn)型
C) 不允許字符型和浮點(diǎn)型相加 D) a的值是字符‘A’的ASCII值加上1。
(18) 以下程序段的輸出結(jié)果是
int a=1234;
printf("%2d\n",a);
A) 12 B) 34 C) 1234 D) 提示出錯、無結(jié)果
(19) 以下選項(xiàng)中不屬于C語言的類型的是
A) signed short imt B) unsigned long int
C) unsigned int D) long short
(20) 若有說明語句:int a,b,c,*d=&c;,則能正確從鍵盤讀入三個整數(shù)分別賦給變量a、b、c的語句是
A) scanf("%d%d%d",&a,&b,d); B) scanf("%d%d%d",&a,&b,&d);
C) scanf("%d%d%d",a,b,d); D) scanf("%d%d%d",a,b,*d);
(21) 在16位C編譯系統(tǒng)上,若定義long a; ,則能給a賦40000的正確語句是
A) a=20000+20000; B) a=4000*10;
C) a=30000+10000; D) a=4000L*10L;
(22) 以下敘述正確的是
A) 可以把define和if定義為用戶標(biāo)識符
B) 可以把define定義為用戶標(biāo)識符,但不能把if定義為用戶標(biāo)識符
C) 可以把if定義為用戶標(biāo)識符,但不能把define定義為用戶標(biāo)識符
D) define和if都不能定義為用戶標(biāo)識符
(23) 若定義:int a=511,*b=&a;, 則printf("%d\n",*b);的輸出結(jié)果為
A) 無確定值 B) a的地址 C) 512 D) 511
(24) 以下程序的輸出結(jié)果是
main()
{ int a=5,b=4,c=6,d;
printf("%d\n",d=a>b?(a>c?a:c):(b));
}
A) 5 B) 4 C) 6 D) 不確定
(25) 以下程序中,while循環(huán)的循環(huán)次數(shù)是
main()
{ int i=0;
while(i<10)
{ if(i<1) continue;
if(I==5) break;
i++;
}
......
}
A) 1 B) 10
C) 6 D) 死循環(huán),不能確定次數(shù)
(26) 以下程序的輸出結(jié)果是
main()
{ int a=0,i;
for(i=;i<5;i++)
{ switch(i)
{ case 0:
case 3:a+=2;
case 1:
case 2:a+=3;
default:a+=5;
}
}
printf("%d\n",a);
}
A) 31 B) 13 C) 10 D) 20
(27) 以下程序的輸出結(jié)果是
main()
{ int a=4,b=5,c=0,d;
d=!a&&!b||!c;
printf("%d\n",d);
}
A) 1 B) 0 C) 非0的數(shù) D) -1
(28) 以下程序的輸出結(jié)果是
#include
main()
{ int i=0,a=0;
while(i<20)
{ for(;;)
{ if((i%10)==0) break;
else i--;
}
i+=11; a+=i;
}
printh("%d\n",a);
}
A) 21 B) 32 C) 33 D) 11
(29) 以下程序的輸出結(jié)果是
char cchar ch)
{
if(ch>=‘A’&&ch<=‘Z) ch=ch-‘A+‘a(chǎn);
return ch;
}
main()
{ char s[]="ABC+abc=defDEF",*p=s;
while(*p)
{ *p=c*p);
p++;
}
printf("%s\n",s);
}
A) abc+ABC=DEFdef B) abc+abc=defdef
C) abcaABCDEFdef D) abcabcdefdef
(30) 以下程序的輸出結(jié)果是
int f()
{ static int i=0;
int s=1;
s+=i; i++;
return s;
}
main()
{ int i,a=0;
for(i=0;i<5;i++) a+=f();
printf("%d\n",a);
}
A) 20 B) 24 C) 25 D) 15
(31) 以下程序段的輸出結(jié)果是
char s[]="\\141\141abc\t";
printf ("%d\n",strlen(s));
A) 9 B) 12 C) 13 D) 14
(32) 若有以下程序
#include
void f(int n);
main()
{ void f(int n);
f(5);
}
void f(int n)
{ printf("%d\n",n); }
則以下敘述中不正確的是
A) 若只在主函數(shù)中對函數(shù)f進(jìn)行說明,則只能在主函數(shù)中正確調(diào)用函數(shù)f
B) 若在主函數(shù)前對函數(shù)f進(jìn)行說明,則在主函數(shù)和其后的其它函數(shù)中都可以正確調(diào)用函數(shù)f
C) 對于以上程序,編譯時系統(tǒng)會提示出錯信息:提示對對f函數(shù)重復(fù)說明
D) 函數(shù)f無返回值,所以可用void將其類型定義為無值型
(33) 以下程序調(diào)用findmax函數(shù)返回數(shù)組中的最大值
findmax(int *a,int n)
{ int *p,*s;
for(p=a,s=a; p-a
if ( ) s=p;
return(*s);
}
main()
{ int x[5]={12,21,13,6,18};
printf("%d\n",findmax(x,5));
}
在下劃線處應(yīng)填入的是
A) p>s B) *p>*s C) a[p]>a[s] D) p-a>p-s
(34) 以下程序的輸出結(jié)果是
main()
{ char cf[3][5]={"AAAA","BBB","CC"};
printf("\"%s\"\n",ch[1]);
}
A) "AAAA" B) "BBB" C) "BBBCC" D) "CC"
(35) 在C語言中,形參的缺省存儲類是
A) auto B) register C) static D) extern
(36) 若指針p已正確定義,要使p指向兩個連續(xù)的整型動態(tài)存儲單元,不正確的.語句是
A) p=2*(int*)malloc(sizeof(int));
B) p=(int*)malloc(2*sizeof(int));
C) p=(int*)malloc(2*2);
D) p=(int*)calloc(2,sizeof(int));
(37) 以下程序的輸出結(jié)果是
main()
{ char x=040;
printf("%0\n",x<<1);
}
A) 100 B) 80 C) 64 D) 32
(38) 若要打開A盤上user子目錄下名為abc.txt的文本文件進(jìn)行讀、寫操作,下面符合此要求的函數(shù)調(diào)用是
A) fopen("A:\user\abc.txt","r") B) fopen("A:\\user\\abc.txt","r+")
C) fopen("A:\user\abc.txt","rb") C) fopen("A:\\user\\abc.txt","w")
(39) 以下不能正確進(jìn)行字符串賦初值的語句是
A) char str[5]="good!"; B) char str[]="good!";
C) char *str="good!"; D) char str[5]={‘g,‘o,‘o,‘d};
(40) 若有下面的說明和定義:
struct test
{ int ml; char m2; float m3;
union uu {char ul[5]; int u2[2];} ua;
} myaa;
則sizeof(struct test )的值是
A) 12 B) 16 C) 14 D) 9
(41) 若有定義:int aa[ 8];。則以下表達(dá)式中不能代表數(shù)組元aa[1]的地址的是
A) &aa[0]+1 B) &aa[1] C) &aa[0]++ D) aa+1
(42) 以下程序的輸出結(jié)果是
f(int b[],int m,int n)
{ int i,s=0;
for(i=m;i
return s;
}
main()
{int x,a[]={1,2,3,4,5,6,7,8,9};
x=f(a,3,7);
printf("%d\n",x);
}
A) 10 B) 18 C) 8 D) 15
(43) 若有以下定義和語句:
int s[4][5],(*ps)[5];
ps=s;
則對s數(shù)組元素的正確引用形式是
A) ps+1 B) *(ps+3) C) ps[0][2] D) *(ps+1)+3
(44) 以下程序的輸出結(jié)果是
main()
{ int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;
for(i=0;i<3;i++)
for(j=i;j<=i;j++) t=t+b[i][b[j][j]];
printf("%d\n",t);
}
A) 3 B) 4 C) 1 D) 9
(45) 以下程序的輸出結(jié)果是
#include
#include
main()
{ char b1[8]="abcdefg",b2[8],*pb=b1+3;
while (--pb>=b1) strcpy(b2,pb);
printf("%d\n",strlen(b2));
}
A) 8 B) 3 C) 1 D) 7
(46) 在說明語句:int *f();中,標(biāo)識符f代表的是
A) 一個用于指向整型數(shù)據(jù)的指針變量
B) 一個用于指向一維數(shù)組的行指針
C) 一個用于指向函數(shù)的指針變量
D) 一個返回值為指針型的函數(shù)名
(47) 不合法的main函數(shù)命令行參數(shù)表示形式是
A) main(int a,char *c[]) B) main(int arc,char **arv)
C) main(int argc,char *argv) D) main(int argv,char *argc[])
(48) 以下程序的輸出的結(jié)果是
int x=3;
main()
{ int i;
for (i=1;i
}
ncre()
{ staic int x=1;
x*=x+1;
printf(" %d",x);
}
A) 3 3 B) 2 2 C) 2 6 D) 2 5
(49) 若以下定義:
struct link
{ int data;
struck link *next;
}a,b,c,*p,*q;
且變量a和b之間已有如下圖所示的鏈表結(jié)構(gòu):
a b
data next data next
┌──┬──┐ ┌──┬──┐
│ 5 │ ┼──→ │ 9 │ \0 │
└──┴──┘ └──┴──┘
↑p
c
data next
┌──┬──┐
│ 7 │ │
└──┴──┘
↑q
指針p指向變量a,q指向變量c。則能夠把c插入到a和b 之間并形成新的鏈表的語句組是:
A) a.next=c; c.next=b; B) p.next=q; q.next=p.next;
C) p->next=&c; q->next=p->next; D) (*p).next=q; (*q).next=&b;
(50) 設(shè)有以下說明語句
typedef struct
{ int n;
char ch[8];
}PER;
則下面敘述中正確的是
A) PER 是結(jié)構(gòu)體變量名 B) PER是結(jié)構(gòu)體類型名
C) typedef struct 是結(jié)構(gòu)體類型 D) struct 是結(jié)構(gòu)體類型名
計算機(jī)等級考試二級C語言考試試題帶答案 2
1. 以下程序執(zhí)行后sum 的值是
main()
{ int i , sum;
for(i=1;i<6;i++) sum+=i;
printf("%d ",sum);
}
A)15
B)14
C) 不確定
D)0
你所選擇的答案是:C,正確答案是:C √
2. 當(dāng)調(diào)用函數(shù)時,實(shí)參是一個數(shù)組名,則向函數(shù)傳送的是
A) 數(shù)組的長度
B) 數(shù)組的'首地址
C) 數(shù)組每一個元素的地址
D) 數(shù)組每個元素中的值
你所選擇的答案是:B,正確答案是:B √
3. 以下只有在使用時才為該類型變量分配√
4. 以下程序的輸出結(jié)果是
main()
{ int i, x[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++) printf("%d,",x[i][2-i]);
}
A) 1,5,9
B) 1,4,7
C) 3,5,7
D)3,6,9
你所選擇的答 案是:C,正確答案是:C √
5. 以下程序的輸出結(jié)果是
#define SQR(X) X*X
main()
{ int a=16, k=2, m=1;
a/=SQR(k+m)/SQR(k+m);
printf("d ",a);
}
A) 16
B) 2
C) 9
計算機(jī)等級考試二級C語言考試試題帶答案 3
1.C語言編譯程序的功能是()。
A.執(zhí)行一個C語言編寫的源程序
B.把C源程序翻譯成ASCII碼
C.把C源程序翻譯成機(jī)器代碼
D.把C源程序與系統(tǒng)提供的庫函數(shù)組合成一個二進(jìn)制執(zhí)行文件
【答案】C
【解析】編譯程序的功能是將“高級語言”翻譯為“機(jī)器語言”。每條C語言語句,經(jīng)過編譯最終都將轉(zhuǎn)換成二進(jìn)制的機(jī)器指令。答案選擇C選項(xiàng)。
2.計算機(jī)高級語言程序的運(yùn)行方法有編譯執(zhí)行和解釋執(zhí)行兩種,以下敘述中正確的是()。
A. C語言程序僅可以編譯執(zhí)行
B. C語言程序僅可以解釋執(zhí)行
C. C語言程序既可以編譯執(zhí)行,又可以解釋執(zhí)行;
D.以上說法都不對
【答案】A
【解析】編譯執(zhí)行是指程序執(zhí)行前需要一個專門的編譯過程把程序編譯成機(jī)器語言的文件,再次運(yùn)行時不需要重新翻譯,執(zhí)行效率高;解釋執(zhí)行是指每個語句都是執(zhí)行的時候才翻譯,執(zhí)行效率低。用C語言編寫的程序必須經(jīng)過編譯器編譯后,轉(zhuǎn)換為二進(jìn)制的機(jī)器指令來運(yùn)行。答案選擇A選項(xiàng)。
3.以下敘述中錯誤的是()。
A. C語言中的每條可執(zhí)行語句和非執(zhí)行語句最終都將被轉(zhuǎn)換成二進(jìn)制的機(jī)器指令
B. C程序經(jīng)過編譯、鏈接步驟之后才能形成一個真正可執(zhí)行的二進(jìn)制機(jī)器指令文件
C.用C語言編寫的程序稱為源程序,它以ASCII代碼形式存放在一個文本文件中
D. C語言源程序經(jīng)編譯后生成后綴為的目標(biāo)程序
【答案】A
【解析】A項(xiàng)錯誤,注釋語句不會被翻譯成二進(jìn)制的機(jī)器指令。C源程序經(jīng)過C編譯程序編譯之后生成后綴為的二進(jìn)制文件(稱為目標(biāo)文件),然后由“鏈接程序”(Link)的軟件把文件與各種庫函數(shù)連接起來生成一個后綴為的可執(zhí)行文件。答案選擇A選項(xiàng)。
4.以下敘述中錯誤的是()
A.C語言的可執(zhí)行程序是由一系列機(jī)器指令構(gòu)成的
B.用C語言編寫的源程序不能直接在計算機(jī)上運(yùn)行
C.通過編譯得到的二進(jìn)制目標(biāo)程序需要連接才可以運(yùn)行
D.在沒有安裝C語言集成開發(fā)環(huán)境的機(jī)器上不能運(yùn)行C源程序生成的exe文件
【答案】D
【解析】A項(xiàng)正確,C語言的可執(zhí)行程序是由一系列機(jī)器指令組成的;BC項(xiàng)正確,用C語言編寫的源程序必須經(jīng)過編譯,生成二進(jìn)制目標(biāo)代碼,再經(jīng)過連接才能運(yùn)行;D項(xiàng)錯誤,C語言經(jīng)過編譯鏈接后的二進(jìn)制目標(biāo)代碼可以脫離C語言集成開發(fā)環(huán)境獨(dú)立運(yùn)行。答案選擇D選項(xiàng)。
5.以下敘述正確的是()。
A. C編譯程序把文件后綴為.c的源程序文件編譯成文件后綴為的二進(jìn)制文件
B. C編譯程序把文件后綴為.c的源程序文件編譯成文件后綴為的可執(zhí)行文件
C. C編譯程序把文件后綴為的二進(jìn)制文件編譯成文件后綴為的可執(zhí)行文件
D.鏈接程序把文件后綴為.c的源程序文件鏈接成文件后綴為的可執(zhí)行文件
【答案】A
【解析】C編譯程序把文件后綴為C的源程序文件編譯成文件后綴為的二進(jìn)制文件,鏈接將一個或多個目標(biāo)文件與程序用到的庫文件連接起來,形成一個可以在操作系統(tǒng)直接運(yùn)行的.執(zhí)行程序,故排除B、C、D項(xiàng),答案選擇A選項(xiàng)。
6.以下敘述中正確的是(A.在C語言程序中,main函數(shù)必須放在其他函數(shù)的最前面
B.每個后綴為.c的C語言源程序都可以單獨(dú)進(jìn)行編譯
C.在C語言程序中,只有main函數(shù)才可以單獨(dú)進(jìn)行編譯
D.每個后綴為.c的C語言源程序都應(yīng)該包含一個main函數(shù)
【答案】B
【解析】main函數(shù)可以在程序的任何位置。每一個可執(zhí)行的C程序都必須有一個且只能有一個主函數(shù)。后綴名為.c的C語言源程序都可以單獨(dú)進(jìn)行編譯。main函數(shù)只是讓執(zhí)行程序的系統(tǒng)知道該從哪里開始執(zhí)行程序(從主函數(shù)處執(zhí)行),其他有關(guān)這個程序的子函數(shù)是通過函數(shù)調(diào)用來實(shí)現(xiàn)其功能(不需main函數(shù))。答案選擇B選項(xiàng)。
7.以下敘述中錯誤的是()。
A. C語言編寫的函數(shù)源程序,其文件名后綴可以是.c
B. C語言編寫的函數(shù)都可以作為一個獨(dú)立的源程序文件
C. C語言編寫的每個函數(shù)都可以進(jìn)行獨(dú)立的編譯并執(zhí)行;
D.一個C語言程序只能有一個主函數(shù)
【答案】C
【解析】C源程序經(jīng)過C編譯程序編譯之后生成一個后綴為的二進(jìn)制文件(稱為目標(biāo)文件),然后由稱為“連接程序”(Link)的軟件,把此文件與C語言提供的各種庫函數(shù)連接起來生成一個后綴為的可執(zhí)行文件。只有含有main函數(shù)的經(jīng)過編譯鏈接才能執(zhí)行。答案選擇C選項(xiàng)。
8.以下敘述中錯誤的是(A.一個C程序可以包含多個不同名的函數(shù)
B.一個C程序只能有一個主函數(shù)
C. C程序在書寫時,有嚴(yán)格的縮進(jìn)要求,否則不能編譯通過
D. C程序的主函數(shù)必須用main作為函數(shù)名
【答案】C
【解析】一個C程序有且只有一個主函數(shù)main。一個C程序可以包含多個不同名字的子函數(shù)。C程序在書寫時沒有嚴(yán)格的縮進(jìn)要求。答案選擇C選項(xiàng)。
9.以下敘述中正確的是()。
A. C語言規(guī)定必須用main作為主函數(shù)名,程序?qū)拇碎_始執(zhí)行
B.可以在程序中由用戶指定任意一個函數(shù)作為主函數(shù),程序?qū)拇碎_始執(zhí)行
C. C語言程序?qū)脑闯绦蛑械谝粋函數(shù)開始執(zhí)行;
D. main的各種大小寫拼寫形式都可以作為主函數(shù)名,如:MAIN,Main等
【答案】A
【解析】用戶不能指定某函數(shù)為主函數(shù),C語言規(guī)定,程序從main函數(shù)開始執(zhí)行,從main函數(shù)退出,C語言函數(shù)名區(qū)別大小寫。答案選擇A選項(xiàng)。
10.下列敘述中錯誤的是()。
A. C程序可以由一個或多個函數(shù)組成
B. C程序可以由多個程序文件組成
C.一個C語言程序只能實(shí)現(xiàn)一種算法
D.一個C函數(shù)可以單獨(dú)作為一個C程序文件存在
【答案】C
【解析】一個C程序可以有一個或多個程序文件,也可以有一個或多個函數(shù),所以一個C語言程序可以實(shí)現(xiàn)多種算法,答案選擇C選項(xiàng)。
計算機(jī)等級考試二級C語言考試試題帶答案 4
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名學(xué)生的成績已在主函數(shù)中放入一個帶頭節(jié)點(diǎn)的鏈表結(jié)構(gòu)中,h指向鏈表的頭節(jié)點(diǎn)。請編寫函數(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;}
計算機(jī)等級考試二級C語言考試試題帶答案 5
1.若有以下數(shù)組說明,則i=10;a[a[i]]元素數(shù)值是(C )。
int a[12]={1,4,7,10,2,5,8,11,3,6,9,12};
A、10
B、9
C、6
D、5
先算a[a[i]]內(nèi)層的a[i],由于i=10,因此a[i]即a[10].
a[10]對應(yīng)下面數(shù)組中的元素為9.因此a[a[i]]即為a[9]
a[9]對應(yīng)下面數(shù)組中的元素為6.因此a[9]即為6
2.若有說明:int a[][3]={{1,2,3},{4,5},{6,7}};則數(shù)組a的第一維的大小為: ( B )
A、2
B、3
C、4
D、無確定值
5 7
D、3 6 9
二維數(shù)組的一維大小,即指二維數(shù)組的行數(shù),在本題中,按行對二維數(shù)組賦值,因此內(nèi)層有幾個大括號,數(shù)組就有幾行
3.對二維數(shù)組的正確定義是(C )
詳見教材P149~152,二維數(shù)組的定義、初始化
類型符數(shù)組名[常量表達(dá)式][常量表達(dá)式]
二維數(shù)組可以看做是矩陣
類型符是指數(shù)組中數(shù)組元素的類型;數(shù)組名要符合標(biāo)識符命名規(guī)則;第一個常量表達(dá)式是指數(shù)組的`行數(shù);第二個常量表達(dá)式是指數(shù)組的列數(shù);常量表達(dá)式的值只能是整數(shù),不可以是變量,而且從1開始計數(shù)。
一維數(shù)組初始化時可以省略數(shù)組長度
二維數(shù)組初始化時可以省略行數(shù),但不能省略列數(shù)
選項(xiàng)A,B,都省略了列數(shù)
選項(xiàng)D,不符合二維數(shù)組定義的一般形式,行、列常量表達(dá)式應(yīng)該放在不同的[]中
A、int a[ ][ ]={1,2,3,4,5,6};
B、int a[2] []={1,2,3,4,5,6};
C、int a[ ] [3]={1,2,3,4,5,6};
D、int a[2,3]={1,2,3,4,5,6};
4.已知int a[3][4];則對數(shù)組元素引用正確的是__C___
A、a[2][4]
B、a[1,3]
C、a[2][0]
計算機(jī)等級考試二級C語言考試試題帶答案 6
一 選擇題(7分,每小題0.5分)
1.C語言源程序的基本單位是( )。
A 過程 B 函數(shù) C 子程序 D 標(biāo)識符
2.下列程序的輸出結(jié)果是( )。
main( )
{ int a=7,b=5;
printf("%d ",b=b/a);
}
A 5 B 1 C 0 D不確定值
3.假設(shè)變量a,b均為整型,表達(dá)式(a=5,b=2,a>b?a++:b++,a+b)的值是( )。
A 7 B 8 C 9 D 2
4.設(shè)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.設(shè)有如下程序段,下面描述中正確的是 ( )。
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)用語句中含有( )個實(shí)參。
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.設(shè)有以下定義,值為5的枚舉常量是( )。
enum week{sun,mon=4,tue,wed,thu,fri,sat} w;
A tue B sat C fri D thu
12.下面選項(xiàng)中正確的賦值語句是(設(shè) char a[5],*p=a;)( )。
A p="abcd"; B a="abcd"; C *p="abcd"; D *a="abcd";
13.設(shè)有以下程序段,則值為6的表達(dá)式是( )。
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 二進(jìn)制文件一種 D ASCII碼文件和二進(jìn)制文件兩種
二 判斷對錯,對的劃“√”,錯的劃“×”(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"可以進(jìn)行修改。 ( )
三 寫出下列程序的運(yùn)行結(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);
}
四 閱讀下列程序,在 處填入適當(dāng)內(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.√
三 寫出下列程序的運(yùn)行結(jié)果(10分,每小題2分)
1. 2. 3.
4. 5.
四 閱讀下列程序,在 處填入適當(dāng)內(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)
計算機(jī)等級考試二級C語言考試試題帶答案 7
一 選擇題(24分,每小題2分)
1.已知函數(shù)fread的調(diào)用形式為fread(buffer,size,count,fp),其中buffer代表的是( )。
A 存放讀入數(shù)據(jù)項(xiàng)的存儲區(qū) B 存放讀入數(shù)據(jù)的地址或指向此地址的指針
C 一個指向所讀文件的文件指針 D 一個整形變量,代表要讀入的數(shù)據(jù)項(xiàng)總數(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.設(shè)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.設(shè)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 將文件位置指針從當(dāng)前位置向文件頭的方向移動10個字節(jié)
C 將文件位置指針從當(dāng)前位置向文件末尾方向移動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)部,可以在復(fù)合語句中定義變量,這些變量只在本復(fù)合語句中有效
9.在下列程序段中,枚舉變量 c1的值是( )。
enum color { red,yellow,blue=4,green,white}c1; c1=yellow; c1=white;
A 1 B 3 C 5 D 6
10.設(shè)有說明 int (*ptr)();其中標(biāo)識符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,不能進(jìn)行的操作是( )。
A p=a; B *p=a[0]; C p=&a[0]; D p=&a;
二 判斷對錯,對的劃“√”,錯的劃“×”(20分,每小題2分)
1.參加位運(yùn)算的數(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;( )
三 寫出下列程序的運(yùn)行結(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);
}
四 閱讀下列程序,在 處填入適當(dāng)內(nèi)容,使程序完整(20分,每個空2分)
1. 百馬百擔(dān)問題:有100匹馬,馱100擔(dān)貨,大馬馱3擔(dān),中馬馱2擔(dān),兩匹小馬馱1擔(dān),問大、中、小馬各多少匹?
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.( √ )
三 寫出下列程序的運(yùn)行結(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
四 閱讀下列程序,在 處填入適當(dāng)內(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]
計算機(jī)等級考試二級C語言考試試題帶答案 8
(1)算法的時間復(fù)雜度是指_______。
A)執(zhí)行算法程序所需要的時間
B)算法程序的長度
C)算法執(zhí)行過程中所需要的基本運(yùn)算次數(shù)
D)算法程序中的指令條數(shù)
答案:C
評析:所謂算法的時間復(fù)雜度,是指執(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é)點(diǎn)數(shù)均達(dá)到最大值
B)可能缺少若干個左右葉子結(jié)點(diǎn)
C)完全二叉樹一般不是滿二叉樹
D)具有結(jié)點(diǎn)的完全二叉樹的深度為[log2n]+1
答案:B
評析:滿二叉樹指除最后一層外每一層上所有結(jié)點(diǎn)都有兩個子結(jié)點(diǎn)的二叉樹。完全二叉樹指除最后一層外,每一層上的結(jié)點(diǎn)數(shù)均達(dá)到最大值,在最后一層上只缺少右邊的若干子結(jié)點(diǎn)(葉子結(jié)點(diǎn))的二叉樹。
C語言筆試題答案篇
(1)結(jié)構(gòu)化程序設(shè)計主要強(qiáng)調(diào)的是_________。
A)程序的規(guī)模B)程序的易讀性
C)程序的執(zhí)行效率D)程序的`可移植性
答案:B
評析:結(jié)構(gòu)化程序設(shè)計主要強(qiáng)調(diào)的是結(jié)構(gòu)化程序清晰易讀,可理解性好,程序員能夠進(jìn)行逐步求精、程序證明和測試,以保證程序的正確性。
(2)在軟件生命周期中,能準(zhǔn)確地確定軟件系統(tǒng)必須做什么和必須具備哪些功能的階段是________。
A)概要設(shè)計B)詳細(xì)設(shè)計C)可行性分析D)需求分析
答案:D
評析:需求分析是對待開發(fā)軟件提出的需求進(jìn)行分析并給出詳細(xì)定義,即準(zhǔn)確地確定軟件系統(tǒng)的功能。編寫軟件規(guī)格說明書及初步的用戶手冊,提交評審。
(3)數(shù)據(jù)流圖用于抽象描述一個軟件的邏輯模型,數(shù)據(jù)流圖由一些特定的圖符構(gòu)成。下列圖符名標(biāo)識的圖符不屬于數(shù)據(jù)流圖合法圖符的是_________。
A)控制流B)加工C)數(shù)據(jù)存儲D)源和潭
答案:A
評析:數(shù)據(jù)流圖從數(shù)據(jù)傳遞和加工的角度,來刻畫數(shù)據(jù)流從輸入到輸出的移動變換過程。數(shù)據(jù)流圖中的主要圖形元素有:加工(轉(zhuǎn)換)、數(shù)據(jù)流、存儲文件(數(shù)據(jù)源)、源和潭。
(4)軟件需求分析一般應(yīng)確定的是用戶對軟件的__________。
A)功能需求B)非功能需求C)性能需求D)功能需求和非功能需求
答案:D
評析:軟件需求分析中需要構(gòu)造一個完全的系統(tǒng)邏輯模型,理解用戶提出的每一功能與性能要求,是用戶明確自己的任務(wù)。因此,需求分析應(yī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)應(yīng)保持相同的值。
(2)關(guān)系表中的每一橫行稱為一個________。
A)元組B)字段C)屬性D)碼
答案:A
評析:在關(guān)系數(shù)據(jù)庫中,關(guān)系模型采用二維表來表示,簡稱“表”。二維表是由表框架及表元組組成。在表框架中,按行可以存放數(shù)據(jù),每行數(shù)據(jù)稱為元組。
(3)數(shù)據(jù)庫設(shè)計包括兩個方面的設(shè)計內(nèi)容,它們是________。
A)概念設(shè)計和邏輯設(shè)計B)模式設(shè)計和內(nèi)模式設(shè)計
C)內(nèi)模式設(shè)計和物理設(shè)計D)結(jié)構(gòu)特性設(shè)計和行為特性設(shè)計
答案:A
評析:數(shù)據(jù)庫設(shè)計可分為概念設(shè)計與邏輯設(shè)計。概念設(shè)計的目的是分析數(shù)據(jù)間內(nèi)在語義關(guān)聯(lián),在此基礎(chǔ)上建立一個數(shù)據(jù)的抽象模型。邏輯設(shè)計的主要工作是將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);
}
若運(yùn)行時從鍵盤上輸入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位存入單精度實(shí)型變量b,把第6、7、8、9位存入單精度實(shí)型變量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是基類型為整型的指針變量,則正確的賦值表達(dá)式是_______。
A)pb=&x; B)pb=x; C)星符號pb=星符號、/)還包括自增自減運(yùn)算符(++、–),在c語言解析表達(dá)式時,它總是進(jìn)行貪婪咀嚼,這樣,該表達(dá)式就被解析為i++ ++ +i,顯然該表達(dá)式不合c語言語法。
(10)若要用下面的程序片段使指針變量p指向一個存儲整型變量的動態(tài)存儲單元
int星符號int) D)(int星符號)
答案:D
評析:不論p是指向什么類型的指針變量,都可以通過強(qiáng)制類型轉(zhuǎn)換的方法使之類型一致,強(qiáng)制類型轉(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
評析:條件表達(dá)式的一般形式為:表達(dá)式I?表達(dá)式2:表達(dá)式3;先求解表達(dá)式1,若為真則求解表達(dá)式2;若表達(dá)式l的值為假,則求解表達(dá)式3。本題中先判斷i==j,不等,執(zhí)行j=7;然后執(zhí)行x=7。故本題為A。
計算機(jī)等級考試二級C語言考試試題帶答案 9
1.下面對軟件特點(diǎn)描述不正確的是()。
A.軟件是一種邏輯實(shí)體,具有抽象性
B.軟件開發(fā)、運(yùn)行對計算機(jī)系統(tǒng)具有依賴性
C.軟件開發(fā)涉及軟件知識產(chǎn)權(quán)、法律及心理等社會因素
D.軟件運(yùn)行存在磨損和老化問題
【答案】D
【解析】軟件具有以下特點(diǎn):①軟件具有抽象性,是一種邏輯實(shí)體;②軟件沒有明顯的制作過程;③軟件在使用期間不存在磨損、老化問題,④對硬件和環(huán)境具有依賴性;⑤軟件復(fù)雜性高,成本昂貴;⑥軟件開發(fā)涉及諸多的社會因素。D項(xiàng)描述是硬件存在的問題。答案選擇D選項(xiàng)。
2.下面描述不屬于軟件特點(diǎn)的是()。
A.軟件是一種邏輯實(shí)體,具有抽象性
B.軟件在使用中不存在磨損、老化問題
C.軟件復(fù)雜性高
D.軟件使用不涉及知識產(chǎn)權(quán)
【答案】D
【解析】軟件具有以下特點(diǎn):①軟件是一種邏輯實(shí)體,具有抽象性;②軟件沒有明顯的制作過程,③軟件在使用期間不存在磨損、老化問題;④軟件對硬件和環(huán)境具有依賴性;⑤軟件復(fù)雜性高,成本昂貴,⑥軟件開發(fā)涉及諸多的社會因素,如知識產(chǎn)權(quán)等。答案選擇D選項(xiàng)。
3.下面對軟件特點(diǎn)描述錯誤的是()
A.軟件沒有明顯的制作過程
B.軟件是一種邏輯實(shí)體,不是物理實(shí)體,具有抽象性
C.軟件的開發(fā)、運(yùn)行對計算機(jī)系統(tǒng)具有依賴性
D.軟件在使用中存在磨損、老化問題
【答案】D
【解析】軟件的特點(diǎn)有:①具有抽象性,是邏輯實(shí)體;②沒有明顯的制作過程;③在使用期間不存在磨損、老化問題;④對硬件和環(huán)境具有依賴性;⑤復(fù)雜性高,成本昂貴;⑥開發(fā)涉及諸多的社會因素。答案選擇D選項(xiàng)。
4.軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于系統(tǒng)軟件的是()。
A.編輯軟件
B.操作系統(tǒng)
C.教務(wù)管理系統(tǒng)
D.瀏覽器
【答案】B
【解析】系統(tǒng)軟件是控制和協(xié)調(diào)計算機(jī)及外部設(shè)備,支持應(yīng)用軟件開發(fā)和運(yùn)行的軟件,操作系統(tǒng)是系統(tǒng)軟件;支撐軟件是支撐各種軟件的開發(fā)與維護(hù)的軟件,又稱為軟件開發(fā)環(huán)境,瀏覽器屬于支撐軟件;應(yīng)用軟件是用戶可以使用的各種程序設(shè)計語言,以及用各種程序設(shè)計語言編制的應(yīng)用程序的集合,編輯軟件、教務(wù)管理軟件屬于應(yīng)用軟件。答案選擇B選項(xiàng)。
5.軟件按功能可以分為應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件),下面屬于應(yīng)用軟件的是()。
A.學(xué)生成績管理系統(tǒng)
B. C語言編譯程序
C. UNIX操作系統(tǒng)
D.數(shù)據(jù)庫管理系統(tǒng)
【答案】A
【解析】應(yīng)用軟件是為解決特定領(lǐng)域的應(yīng)用而開發(fā)的軟件,如事務(wù)處理軟件,工程與科學(xué)計算軟件,學(xué)生成績管理系統(tǒng)、教務(wù)管理系統(tǒng)、瀏覽器、編輯軟件等應(yīng)用性質(zhì)不同的各種軟件。系統(tǒng)軟件是計算機(jī)管理自身資源,提高計算機(jī)使用效率并服務(wù)于其他程序的軟件,如操作系統(tǒng),編譯程序,匯編程序,數(shù)據(jù)庫管理系統(tǒng)等。支撐軟件是介于系統(tǒng)軟件和應(yīng)用軟件之間,協(xié)助用戶開發(fā)軟件的工具性軟件,包括輔助和支持開發(fā)和維護(hù)應(yīng)用軟件的工具軟件,如需求分析工具軟件,設(shè)計工具軟件,編碼工具軟件,測試工具軟件,維護(hù)工具軟件等。答案選擇A選項(xiàng)。
6.數(shù)據(jù)庫管理系統(tǒng)是()。
A.操作系統(tǒng)的一部分
B.在操作系統(tǒng)支持下的系統(tǒng)軟件
C.一種編譯系統(tǒng)
D.一種操作系統(tǒng)
【答案】B
【解析】系統(tǒng)軟件主要包括:①操作系統(tǒng)軟件;②各種語言的解釋程序和編譯程序;③各種服務(wù)性程序;④各種數(shù)據(jù)庫管理系統(tǒng)。數(shù)據(jù)庫管理系統(tǒng)是一種系統(tǒng)軟件,負(fù)責(zé)數(shù)據(jù)庫中的數(shù)據(jù)組織、數(shù)組操縱、數(shù)據(jù)維護(hù)、控制和保護(hù)以及數(shù)據(jù)服務(wù)等。答案選擇B選項(xiàng)。
7.數(shù)據(jù)庫管理系統(tǒng)是()。
A.操作系統(tǒng)的一部分
B.在操作系統(tǒng)支持下的系統(tǒng)軟件
C.一種編譯系統(tǒng)
D.一種通信軟件系統(tǒng)
【答案】B
【解析】系統(tǒng)軟件主要包括:①操作系統(tǒng)軟件;②各種語言的解釋程序和編譯程序;③各種服務(wù)性程序;④各種數(shù)據(jù)庫管理系統(tǒng)。數(shù)據(jù)庫管理系統(tǒng)是一種系統(tǒng)軟件,負(fù)責(zé)數(shù)據(jù)庫中的數(shù)據(jù)組織、數(shù)組操縱、數(shù)據(jù)維護(hù)、控制和保護(hù)以及數(shù)據(jù)服務(wù)等。答案選擇B選項(xiàng)。
8.下列選項(xiàng)中,不屬于數(shù)據(jù)管理員(DBA)職責(zé)的`是()。
A.數(shù)據(jù)庫維護(hù)
B.數(shù)據(jù)庫設(shè)計
C.改善系統(tǒng)性能,提高系統(tǒng)效率
D.數(shù)據(jù)類型轉(zhuǎn)換
【答案】D
【解析】數(shù)據(jù)庫管理員對數(shù)據(jù)庫進(jìn)行規(guī)劃、設(shè)計、維護(hù)、監(jiān)視等,其主要工作有:①數(shù)據(jù)庫設(shè)計,主要是對數(shù)據(jù)模式進(jìn)行設(shè)計,②數(shù)據(jù)庫維護(hù),對數(shù)據(jù)庫中的數(shù)據(jù)安全性、完整性、并發(fā)控制及系統(tǒng)恢復(fù)、數(shù)據(jù)定期轉(zhuǎn)儲等進(jìn)行實(shí)施與維護(hù);③改善系統(tǒng)性能,不斷調(diào)整內(nèi)部結(jié)構(gòu),提高系統(tǒng)效率。答案選擇D選項(xiàng)。
9.數(shù)據(jù)庫系統(tǒng)的核心是()。
A.數(shù)據(jù)模型
B.軟件開發(fā)
C.數(shù)據(jù)庫設(shè)計
D.數(shù)據(jù)庫管理系統(tǒng)
【答案】D
【解析】數(shù)據(jù)庫系統(tǒng)包括四個部分:數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫應(yīng)用程序、數(shù)據(jù)庫管理員。其中DBMS是為數(shù)據(jù)庫的建立、使用和維護(hù)而配置的軟件,是數(shù)據(jù)庫系統(tǒng)的核心。答案選擇D選項(xiàng)。
10.下列敘述中正確的是()。
A.數(shù)據(jù)庫系統(tǒng)是一個獨(dú)立的系統(tǒng),不需要操作系統(tǒng)的支持
B.數(shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的共享問題
C.數(shù)據(jù)庫管理系統(tǒng)就是數(shù)據(jù)庫系統(tǒng)
D.數(shù)據(jù)庫系統(tǒng)由數(shù)據(jù)庫應(yīng)用系統(tǒng)、數(shù)據(jù)庫和數(shù)據(jù)庫管理系統(tǒng)組成。
【答案】B
【解析】A項(xiàng)錯誤,數(shù)據(jù)庫需要調(diào)用操作系統(tǒng)的接口,需要操作系統(tǒng)的支持;C項(xiàng)錯誤,數(shù)據(jù)庫管理系統(tǒng)(DBMS)是數(shù)據(jù)庫系統(tǒng)的核心,負(fù)責(zé)數(shù)據(jù)庫中的數(shù)據(jù)組織、數(shù)據(jù)操作、數(shù)據(jù)維護(hù)、控制及保護(hù)和數(shù)據(jù)服務(wù)等;D項(xiàng)錯誤,數(shù)據(jù)庫應(yīng)用系統(tǒng)是數(shù)據(jù)庫系統(tǒng)再加上應(yīng)用軟件及應(yīng)用界面這三者所組成,具體包括:數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫管理員、硬件平臺、軟件平臺、應(yīng)用軟件、應(yīng)用界面。答案選擇B選項(xiàng)。
計算機(jī)等級考試二級C語言考試試題帶答案 10
1.下列敘述中正確的是()。
A.所有數(shù)據(jù)結(jié)構(gòu)必須有根結(jié)點(diǎn)
B.所有數(shù)據(jù)結(jié)構(gòu)必須有終端結(jié)點(diǎn)(即葉子結(jié)點(diǎn))
C.只有一個根結(jié)點(diǎn),且只有一個葉子結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)一定是線性結(jié)構(gòu)
D.沒有根結(jié)點(diǎn)或沒有葉子結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)一定是非線性結(jié)構(gòu)
【答案】D
【解析】D項(xiàng)正確,線性結(jié)構(gòu)的特點(diǎn)是:①集合中必存在“第一個元素"且惟一②集合中必存在“最后一個元素”且惟一;③除最后一個元素外,其他數(shù)據(jù)元素均有惟一的“后繼”,④除第一個元素外,其他數(shù)據(jù)元素均有惟一的“前驅(qū)”。所以沒有根結(jié)點(diǎn)或沒有葉子結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)一定是非線性結(jié)構(gòu)。AB兩項(xiàng)錯誤,不是所有數(shù)據(jù)結(jié)構(gòu)都必須有根結(jié)點(diǎn)和葉子結(jié)點(diǎn);C項(xiàng)錯誤,數(shù)據(jù)結(jié)構(gòu)中若有中間結(jié)點(diǎn)不滿足只有一個前件或者后件的條件,就不是線性結(jié)構(gòu)。答案選擇D選項(xiàng)。
2.以下敘述中錯誤的是()。
A. C語言中的每條可執(zhí)行語句和非執(zhí)行語句最終都將被轉(zhuǎn)換成二進(jìn)制的機(jī)器指令
B. C程序經(jīng)過編譯、鏈接步驟之后才能形成一個真正可執(zhí)行的二進(jìn)制機(jī)器指令文件
C.用C語言編寫的程序稱為源程序,它以ASCII代碼形式存放在一個文本文件中
D. C語言源程序經(jīng)編譯后生成后綴為.obj的目標(biāo)程序
【答案】A
【解析】A項(xiàng)錯誤,注釋語句不會被翻譯成二進(jìn)制的機(jī)器指令。C源程序經(jīng)過C編譯程序編譯之后生成后綴為.obj的二進(jìn)制文件(稱為目標(biāo)文件),然后由“鏈接程序”(Link)的軟件把.obj文件與各種庫函數(shù)連接起來生成一個后綴為.exe的可執(zhí)行文件。答案選擇A選項(xiàng)。
3. C語言主要是借助以下()功能來實(shí)現(xiàn)程序模塊化的。
A.定義函數(shù)
B.定義常量和外部變量
C.三種基本結(jié)構(gòu)語句
D.豐富的數(shù)據(jù)類型
【答案】A
【解析】C程序的模塊化主要通過函數(shù)來實(shí)現(xiàn)。C語言允許對函數(shù)單獨(dú)進(jìn)行編譯,從而可以實(shí)現(xiàn)模塊化。答案選擇A選項(xiàng)。
4.有以下程序段:
char ch;
int k;
ch='a';
k=12;
print("%c,%d,",h,ch,k);
printf("k=%d",k);
已知字符a的ASCII碼十進(jìn)制值為97,則執(zhí)行上述程序段后輸出的結(jié)果是()。
A.因變量類型與格式描述符的類型不匹配輸出無定值
B.輸出項(xiàng)與格式描述符個數(shù)不符,輸出為零值或不定值
C.a,97,12k=12
D. a,97,k=12
【答案】D
【解析】字符變量的值是該字符的ASCII碼值,可以參與整型變量所允許的任何運(yùn)算。"ch='a",%c表示以字符格式輸出ch的值,所以輸出為a;%d表示以十進(jìn)制代碼的形式輸出ch的值,為97;k沒有對應(yīng)的輸出格式,不輸出。在第二個語句中,首先輸出"k=",然后以十進(jìn)制代碼輸出k的值,為12。答案選擇D選項(xiàng)。
5.下列敘述中正確的是()。
A.棧是“先進(jìn)先出”的線性表
B.隊列是“先進(jìn)后出"的線性表
C.循環(huán)隊列是非線性結(jié)構(gòu)
D.有序線性表既可以采用順序存儲結(jié)構(gòu),也可以采用鏈?zhǔn)酱鎯Y(jié)構(gòu)
【答案】D
【解析】有序的線性表既可采用順序存儲結(jié)構(gòu),也可以采用鏈?zhǔn)酱鎯Y(jié)構(gòu)。A項(xiàng)錯誤,棧是“先進(jìn)后出"的線性表B項(xiàng)錯誤,隊列是“先進(jìn)先出"的線性表;C項(xiàng)錯誤,循環(huán)隊列是線性結(jié)構(gòu)的`,有序的線性表既可采用順序存儲結(jié)構(gòu),也可采用鏈?zhǔn)酱鎯Y(jié)構(gòu)。
6.某二叉樹的中序序列為DCBAEFG,后序序列為DCBGFEA,則該二叉樹的深度(根結(jié)點(diǎn)在第1層)為()。
A. 5
B. 40
C.3
D. 2
【答案】B
【解析】二叉樹的后序序列為DCBGFEA,則A為根結(jié)點(diǎn)。中序序列為DCBAEFG,則DCB為左子樹結(jié)點(diǎn),EFG為右子樹結(jié)點(diǎn)。同理B為C父結(jié)點(diǎn),C為D父結(jié)點(diǎn)。根據(jù)分析,可畫出左子樹,同理E為F父結(jié)點(diǎn),F(xiàn)為G父結(jié)點(diǎn)。根據(jù)分析,可畫出右子樹,故二叉樹深度為4層。答案選擇B選項(xiàng)。
7.設(shè)有定義:struct{intn;floatx;}s[2],m[2]={{10,2.8},{0,0.0}};,則以下賦值語句中正確的是()。
A. s[0]=m[1];
B. s=m;
C.s.n=m.n;
D. s[2].x=m[2].x;
【答案】A
【解析】定義了結(jié)構(gòu)體類型數(shù)組s,長度為2,結(jié)構(gòu)體類型數(shù)組m,長度為2,并對數(shù)組m進(jìn)行了初始化。同類型的結(jié)構(gòu)體可以直接用變量名實(shí)現(xiàn)賦值,A項(xiàng)正確;數(shù)組名為數(shù)組首地址,地址常量之間不可以相互賦值,B項(xiàng)錯誤;數(shù)組名為地址常量不是結(jié)構(gòu)體變量,不能引用成員,C項(xiàng)錯誤;s[2]與m[2]數(shù)組越界,D項(xiàng)錯誤。答案選擇A選項(xiàng)。
8.關(guān)于C語言標(biāo)識符,以下敘述錯誤的是()。
A.標(biāo)識符可全部由數(shù)字組成
B.標(biāo)識符可全部由下劃線組成
C.標(biāo)識符可全部由小寫字母組成
D.標(biāo)識符可全部由大寫字母組成
【答案】A
【解析】C語言標(biāo)識符只能由字母、數(shù)字、下劃線構(gòu)成,且只能以字母、下劃線開頭,故答案選擇A選項(xiàng)。
9.以下程序段中的變量已定義為int類型,則
sum=pAd=5;
pAd=sum++,++pAd,pAd++;
printf("%d",pAd);
程序段的輸出結(jié)果是()。
A. 6
B. 4
C. 5
D. 7
【答案】D
【解析】自增和自減運(yùn)算符的兩種用法:前置運(yùn)算,運(yùn)算符放在變量之前,規(guī)則是先使變量的值增(或減)1,然后以變化后表達(dá)式的值參與其他運(yùn)算;后置運(yùn)算,運(yùn)算符放在變量之后,規(guī)則是變量先參與其他運(yùn)算,然后再使變量的值增(或減)1。執(zhí)行pAd=sum++,sum++是后置自增,執(zhí)行完后,pAd=5,sum=6。++pAd和pAd++語句中沒有其他運(yùn)算,即效果相同,pAd分別加1,兩句執(zhí)行完后,pAd7。答案選擇D選項(xiàng)。
10.設(shè)循環(huán)隊列為Q(1:m),其初始狀態(tài)為front=rear=m。經(jīng)過一系列入隊與退隊運(yùn)算后,front=20,rear=15,F(xiàn)要在該循環(huán)隊列中尋找最小值的元素,最壞情況下需要比較的次數(shù)為()。
A. 5
B. 6
C.m-5
D. m-6
【答案】D
【解析】循環(huán)隊列是隊列的一種順序存儲結(jié)構(gòu),用隊尾指針rear指向隊列中的隊尾元素,用隊首指針指向隊首元素的前一個位置,因此,從隊首指針front指向的后一個位置直到隊尾指針rear指向的位置之間所有的元素均為隊列中的元素,隊列初始狀態(tài)為front=rear=m,當(dāng)front=20,rear=15時,隊列中有m-20+15=m-5個元素,最壞情況下需要比較次數(shù)為m-6次。答案選擇D選項(xiàng)。
【計算機(jī)等級考試二級C語言考試試題帶答案10份】相關(guān)文章:
計算機(jī)二級考試C語言試題及答案10-11
計算機(jī)二級考試C語言試題與答案10-27
2017計算機(jī)等級考試二級c++試題及答案08-19
計算機(jī)等級考試二級C語言考試技巧08-26
計算機(jī)二級C語言考試試題及答案10-09