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