- 相關(guān)推薦
2016年計算機二級考試C語言程序設(shè)計真題
2016上半年全國計算機等級考試時間是3月26-29日,以下小編為大家整理出來的是計算機二級考試試題,希望對大家的復(fù)習(xí)有幫助!
一、選擇題,(1-40)每題1分,(41-50)每題2分,共60分)
下列各題A)、B)、C)、D)四個選項中,只有一個選項是正確的,請將正確選項涂寫在答題卡相應(yīng)位置上,答在試卷上不得分。
(1) 1MB等于
A) 1000字節(jié) B) 1024字節(jié)
C) 1000×1000字節(jié) D) 1024×1024字節(jié)
(2) 與十六進制數(shù)200等值的十進制數(shù)為
A) 256 B) 512 C) 1024 D) 2048
(3) 所謂“裸機”是指
A) 單片機 B) 單板機
C) 不裝備任何軟件的計算機 D) 只裝備操作系統(tǒng)的計算機
(4) 能將高級語言編寫的源程序轉(zhuǎn)換成目標程序的是
A) 鏈接程序 B) 解釋程序 C) 編譯程序 D) 編輯程序
(5) 在64位計算機中,一個字長所占的字節(jié)數(shù)為
A) 64 B) 8 C) 4 D) 1
(6) 在Windows環(huán)境下,當(dāng)一個應(yīng)用程序窗口被最小化后,該應(yīng)用程序
A) 繼續(xù)在后臺運行 B) 繼續(xù)在前臺運行
C) 終止運行 D) 暫停運行
(7) 在Windows環(huán)境下,能實現(xiàn)窗口移動的操作是
A) 用鼠標拖動窗口中的任何部位 B) 用鼠標拖動窗口的邊框
C) 用鼠標拖動窗口的控制按鈕 D) 用鼠標拖動窗口的標題欄
(8) 在Windows環(huán)境下,PrintScreen鍵的作用是
A) 打印當(dāng)前窗口的內(nèi)容 B) 打印屏幕內(nèi)容
C) 復(fù)制屏幕到剪貼板 D) 復(fù)制當(dāng)前窗口到剪貼板
(9) Internet的通信協(xié)議是
A) TCP/IP B) BBS C) WWW D) FTP
(10) 下列敘述中正確的是
A) 計算機病毒只感染可執(zhí)行文件
B) 計算機病毒只感染文本文件
C) 計算機病毒只能通過軟件復(fù)制的方式進行傳播
D) 計算機病毒可以通過網(wǎng)絡(luò)或讀寫磁盤等方式進行傳播
(11) 一個算法應(yīng)該具有“確定性”等5個特性,下面對另外4個特性的描述中錯誤的是
A) 有零個或多個輸入 B) 有零個或多個輸出
C) 有窮性 D) 可行性
(12) 以下敘述中正確的是
A) C語言的源程序不必通過編譯就可以直接運行
B) C語言中的每條可執(zhí)行語句最終都將被轉(zhuǎn)換成二進制的機器指令
C) C源程序經(jīng)編譯形成的二進制代碼可以直接運行
D) C語言中的函數(shù)不可以單獨進行編譯
(13) 以下符合C語言語法的實型常量是
A) 1.2E0.5 B) 3.14.159E C) .5E-3 D) E15
(14) 以下4組用戶定義標識符中,全部合法的一組是
A) _main B) If C) txt D) int
enclude -max REAL k_2
sin turbo 3COM _001
(15) 若以下選項中的變量已正確定義,則正確的賦值語句是
A) x1=26.8%3 B) 1+2=x2 C) x3=0x12 D) x4=1+2=3;
(16) 設(shè)有以下定義
int a=0;
double b=1.25;
char c=’A’;
#define d 2
則下面語句中錯誤的是
A) a++; B) b++ C) c++; D) d++;
(17) 設(shè)有定義:float a=2,b=4,h=3;,以下C語言表達式與代數(shù)式 計算結(jié)果不相符的是
A) (a+B) *h/2 B) (1/2)*(a+B) *h
C) (a+B) *h*1/2 D) h/2*(a+B)
(18) 有以下程序
main( )
{
int x=102,y=012;
printf(“%2d,%2d\n”,x,y);
}
執(zhí)行后輸出結(jié)果是
A) 10,01 B) 02,12 C) 102,10 D) 02,10
(19) 以下4個選項中,不能看作一條語句的是
A) {;} B) a=0,b=0,c=0; C) if(a>0); D) if(b==0) m=1;n=2;
(20) 設(shè)有定義:int a,*pa=&a;以下scanf語句中能正確為變量a讀入數(shù)據(jù)的是
A) scanf(“%d”,pA) ; B) scanf(“%d”,A) ;
C) scanf(“%d”,&pA) ; D) scanf(“%d”,*pA) ;
(21) 以下程序段中與語句k=a>b?(b>c?1:0):0;功能等價的是
A) if((a>B) &&(b>C) ) k=1; B) if((a>B) ||(b>C) ) k=1
else k=0;
C) if(a<=B) k=0; D) if(a>B) k=1;
else if(b<=C) k=1; else if(b>C) k=1;
else k=0;
(22) 有以下程序
main( )
{ char k; int I;
for(i=1;i<3;i++)
{ scanf(“%c”,&k);
switch(k)
{ case ‘0’: printf(“another\n”);
case ‘1’: printf(“number\n”);
}
}
}
程序運行時,從鍵盤輸入:01<回車>,程序執(zhí)行后的輸出結(jié)果是
A) another B) another C) another D) number
number number number number
another number
(23) 有以下程序
main( )
{ int x=0,y=5,z=3;
while(z-->0&&++x<5) y=y-1;
printf(“%d,%d,%d\n”,x,y,z);
}
程序執(zhí)行后的輸出結(jié)果是
A) 3,2,0 B) 3,2,-1 C) 4,3,-1 D) 5,-2,-5
(24) 有以下程序
main( )
{ int i,s=0;
for(i=1;i<10;i+=2) s+=i+1;
printf(“%d\n”,s);
}
程序執(zhí)行后的輸出結(jié)果是
A) 自然數(shù)1~9的累加和 B) 自然數(shù)1~10的累加和
C) 自然數(shù)1~9中的奇數(shù)之和 D) 自然數(shù)1~10中的偶數(shù)之和
(25) 有以下程序
main( )
{ int i,n=0;
for(i=2;i<5;i++)
{ do
{ if(i%3) continue;
n++;
} while(!i);
n++;
}
printf(“n=%d\n”,n);
}
程序執(zhí)行后的輸出結(jié)果是
A) n=5 B) n=2 C) n=3 D) n=4
(26) 若程序中定義了以下函數(shù)
double myadd(double a,double B)
{ return (a+B) ;}
并將其放在調(diào)用語句之后,則在調(diào)用之前應(yīng)該對該函數(shù)進行說明,以下選項中錯誤的說明是
A) double myadd(double a,B) ;
B) double myadd(double,double);
C) double myadd(double b,double A) ;
D) double myadd(double x,double y);
(27) 有以下程序
char fun(char x , char y)
{ if(x
return y;
}
main( )
{ int a=’9’,b=’8’,c=’7’;
printf(“%c\n”,fun(fun(a,B) ,fun(b,C) ));
}
程序的執(zhí)行結(jié)果是
A) 函數(shù)調(diào)用出錯 B)8 C)9 D)7
(28) 設(shè)有定義:int n=0,*p=&n,**q=&p;則以下選項中,正確的賦值語句是
A) p=1; B) *q=2; C) q=p; D) *p=5;
(29) 有以下程序
void f(int v , int w)
{ int t;
t=v;v=w;w=t;
}
main( )
{ int x=1,y=3,z=2;
if(x>y) f(x,y);
else if(y>z) f(y,z);
else f(x,z);
printf(“%d,%d,%d\n”,x,y,z);
}
執(zhí)行后輸出結(jié)果是
A) 1,2,3 B) 3,1,2 C) 1,3,2 D) 2,3,1
(30) 有以下程序段
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;
b=p[5];
b中的值是
A) 5 B) 6 C) 8 D) 9
(31) 31、有以下程序
main( )
{ char a[]=”abcdefg”,b[10]=”abcdefg”;
printf(“%d %d\n”,sizeof(A) ,sizeof(B) );
}
執(zhí)行后輸出結(jié)果是
A) 7 7 B) 8 8 C) 8 10 D) 10 10
(32) 有以下程序
void swap1(int c[])
{ int t;
t=c[0];c[0]=c[1];c[1]=t;
}
void swap2(int c0,int c1)
{ int t;
t=c0;c0=c1;c1=t;
}
main( )
{ int a[2]={3,5},b[2]={3,5};
swap1(A) ; swap2(b[0],b[1]);
printf(“%d %d %d %d\n”,a[0],a[1],b[0],b[1]);
}
其輸出結(jié)果是
A) 5 3 5 3 B) 5 3 3 5 C) 3 5 3 5 D) 3 5 5 3
(33) 有以下程序
void sum(int *A)
{ a[0]=a[1];}
main( )
{ int aa[10]={1,2,3,4,5,6,7,8,9,10},i;
for(i=2;i>=0;i--) &nb
sp; sum(&aa[i]);
printf(“%d\n”,aa[0]);
}
執(zhí)行后的輸出結(jié)果是
A) 4 B) 3 C) 2 D) 1
(34) 34、有以下程序
int f(int b[][4])
{ int i,j,s=0;
for(j=0;j<4;j++)
{ i=j;
if(i>2) i=3-j;
s+=b[i][j];
}
return s;
}
main( )
{ int a[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}};
printf(“%d\n”,f(A) );
}
執(zhí)行后的輸出結(jié)果是
A) 12 B) 11 C) 18 D) 16
(35) 有以下定義
#include
char a[10],*b=a;
不能給數(shù)組a輸入字符串的語句是
A) gets(A) B) gets(a[0]) C) gets(&a[0]); D) gets(B) ;
(36) 有以下程序
main( )
{ char *p[10]={“abc”,”aabdfg”,”dcdbe”,”abbd”,”cd”};
printf(“%d\n”,strlen(p[4]));
}
執(zhí)行后輸出結(jié)果是
A) 2 B) 3 C) 4 D) 5
(37) 有以下程序
int a=2;
int f(int *A)
{return (*A) ++;}
main( )
{ int s=0;
{ int a=5;
s+=f(&A) ;
}
s+=f(&A) ;
printf(“%d\n”,s);
}
執(zhí)行后輸出結(jié)果是
A) 10 B) 9 C) 7 D) 8
(38) 有以下程序
#define f(x) x*x
main( )
{ int i;
i=f(4+4)/f(2+2);
printf(“%d\n”,i);
}
執(zhí)行后輸出結(jié)果是
A) 28 B) 22 C) 16 D) 4
(39) 設(shè)有以下語句
typedef struct S
{ int g; char h;} T;
則下面敘述中正確的是
A) 可用S定義結(jié)構(gòu)體變量 B)可以用T定義結(jié)構(gòu)體變量
C)S是struct類型的變量 D)T是struct S類型的變量
(40) 有以下程序
struc STU
{ char name[10];
int num;
};
void f1(struct STU C)
{ struct STU b={“LiSiGuo”,2042};
c=b;
}
void f2(struct STU *C)
{ struct STU b={“SunDan”,2044};
*c=b;
}
main( )
{ struct STU a={“YangSan”,2041},b={“WangYin”,2043};
f1(A) ;f2(&B) ;
printf(“%d %d\n”,a.num,b.num);
}
執(zhí)行后的輸出結(jié)果是
A)2041 2044 B)2041 2043 C)2042 2044 D)2042 2043
(41) 有以下程序
main( )
{ unsigned char a,b;
a=4|3;
b=4&3;
printf(“%d %d\n”,a,b(;
}
執(zhí)行后輸出結(jié)果是
A) 7 0 B) 0 7 C) 1 1 D) 43 0
(42) 下面程序的功能是輸出以下形式的金字塔圖案是:
*
***
*****
*******
main( )
{ int i,j;
for(i=1;i<=4;i++)
{ for(j=1;j<=4-i;j++) printf(“ “);
for(j=1;j<=_______;j++) printf(“*”);
printf(“\n”);
}
}
在下劃線處應(yīng)填入的是
A) i B) 2*i-1 C) 2*i+1 D) i+2
(43) 有以下程序
void sort(int a[],int n)
{ int i,j,t;
for(i=0;i
for(j=i+2;j
if(a[i]
}
main()
{ int aa[10]={1,2,3,4,5,6,7,8,9,10},i;
sort(aa,10);
for(i=0;i<10;i++) printf(“%d”,aa[i]);
printf(“\n”);
}
其輸出結(jié)果是
A) 1,2,3,4,5,6,7,8,9,10, B) 10,9,8,7,6,5,4,3,2,1,
C) 9,2,7,4,5,6,3,8,1,10, D) 1,10,3,8,5,6,7,4,9,2,
(44) 以下程序段中,不能正確賦字符串(編譯時系統(tǒng)會提示錯誤)的是
A) char s[10]=”abcdefg”; B) char t[]=”abcdefg”,*s=t;
C) char s[10];s=”abcdefg”; D) char s[10];strcpy(s,”abcdefg”);
(45) 有以下程序
#include
main(int argc ,char *argv[ ])
{ int i,len=0;
for(i=1;i
printf(“5d\n”,len);
}
經(jīng)編譯鏈接后生成的可執(zhí)行文件是ex.exe,若運行時輸入以下帶參數(shù)的命令行
ex abcd efg h3 k44
執(zhí)行后輸出結(jié)果是
A) 14 B) 12 C) 8 D) 6
(46) 有以下程序
void f(int a[],int i,int j)
{ int t;
if(i
{ t=a[i]; a[i]=a[j];a[j]=t;
f(a,i+1,j-1);
}
}
main( )
{ int i,aa[5]={1,2,3,4,5};
f(aa,0,4);
for(i=0;i<5;i++) printf(“%d,”,aa[i]); printf(“\n”);
}
執(zhí)行后輸出結(jié)果是
A) 5,4,3,2,1, B) 5,2,3,4,1, C) 1,2,3,4,5, D) 1,2,3,4,5,
(47) 有以下程序
struct STU
{ char name[10];
int num;
int Score;
};
main( )
{ struct STU s[5]={{“YangSan”,20041,703},{“LiSiGuo”,20042,580},
{“wangYin”,20043,680},{“SunDan”,20044,550},
{“Penghua”,20045,537}},*p[5],*t;
int i,j;
for(i=0;i<5;i++) p[i]=&s[i];
for(i=0;i<4;i++)
for(j=i+1;j<5;j++)
if(p[i]->Score>p[j]->Score)
{ t=p[i];p[i]=p[j];p[j]=t;}
printf(“5d %d\n”,s[1].Score,p[1]->Score);
}
執(zhí)行后輸出結(jié)果是
A) 550 550 B) 680 680 C) 580 550 D) 580 680
(48) 有以下程序
#include
struct NODE{
int num;
struct NODE *next;
};
main( )
{ struct NODE *p,*q,*r;
int sum=0;
p=(struct NODE *)malloc(sizeof(struct NODE));
q=(struct NODE *)malloc(sizeof(struct NODE));
r=(struct NODE *)malloc(sizeof(struct NODE));
p->num=1;q->num=2;r->num=3;
p->next=q;q->next=r;r->next=NULL;
sum+=q->next->num;sum+=p->num;
printf(“%d\n”,sum);
}
執(zhí)行后的輸出結(jié)果是
A) 3 B) 4 C) 5 D) 6
(49) 有以下程序
#include
main( )
{ FILE *fp; int i,k=0,n=0;
fp=fopen(“d1.dat”,”w”);
for(i=1;i<4;i++) fprintf(fp,”%d”,i);
fclose(fp);
fp=fopen(“d1.dat”,”r”);
fscanf(fp,”%d%d”,&k,&n); printf(“%d %d\n”,k,n);
fclose(fp);
}
執(zhí)行后輸出結(jié)果是
A) 1 2 B) 123 0 C) 1 23 D) 0 0
(50) 有以下程序(提示:程序中fseek(fp,-2L*sizeof(int),SEEK_END) ;語句的作用是使位置指針從文件尾向前移2*sizeof(int)字節(jié))
#include
main( )
{ FILE *fp; int i,a[4]={1,2,3,4},b;
fp=fopen("data.dat","wb");
for(i=0;i<4;i++) fwrite(&a[i],sizeof(int),1,fp);
fclose(fp);
fp=fopen("data.dat
","rb");
fseek(fp,-2L*sizeof(int).SEEK_END) ;
fread(&b,sizeof(int),1,fp);/*從文件中讀取sizeof(int)字節(jié)的數(shù)據(jù)到變量b中*/
fclose(fp);
printf("%d\n",B) ;
}
執(zhí)行后輸出結(jié)果是
A) 2 B) 1 C) 4 D) 3
二、填空題(每空2分,共40分)
請將每一個空的正確答案寫在答題卡【1】至【20】序號的橫線上, 答在試卷上不得分.
(1) E-mail地址由用戶名和域名兩部分組成,這兩部分的分隔符為【1】 。
(2) 計算機網(wǎng)絡(luò)分為廣域網(wǎng)和局域網(wǎng),因特網(wǎng)屬于【2】 。
(3) 從Windows環(huán)境進入MS-DOS方式后,返回Windows環(huán)境的DOS命令為【3】 。
(4) 在Windows環(huán)境下,只要在“開始”菜單中單擊【4】選項,就可以查閱最近打開過的文檔清單。
(5) 計算機的運算速度可以用MIPS來描述,1MIPS是指每秒執(zhí)行【5】條指令。
(6) 已知字符A的ACSII碼值為65,以下語句的輸出結(jié)果是【6】
char ch=’B’;
printf(“%c %d\n”,ch,ch);
(7) 有以下語句段
int n1=10,n2=20;
printf(“ 【7】 ”,n1.n2);
要求按以下格式輸出n1和n2的值,每個輸出行從第一列開始,請?zhí)羁铡?/p>
n1=10
n2=20
(8) 有以下程序
main( )
{ int t=1,i=5;
for(;i>=0;i--) t*=i;
printf(“%d\n”,t);
}
執(zhí)行后輸出結(jié)果是【8】 。
(9) 有以下程序
main( )
{ int n=0,m=1,x=2;
if(!n) x-=1;
if(m) x-=2;
if(x) x-=3;
printf(“%d\n”,x);
}
執(zhí)行后輸出結(jié)果是【9】 。
(10) 有以下程序
#include
main( )
{ char ch1,ch2; int n1,n2;
ch1=getchar(); ch2=getchar();
n1=ch1-‘0’; n2=n1*10+(ch2-‘0’);
printf(“%d\n”,n2);
}
程序運行時輸入:12<回車>,執(zhí)行后輸出結(jié)果是【10】 。
(11) 有以下程序
void f( int y,int *x)
{y=y+*x; *x=*x+y;}
main( )
{ int x=2,y=4;
f(y,&x);
printf(“%d %d\n”,x,y);
}
執(zhí)行后輸出的結(jié)果是【11】 。
(12) 函數(shù)fun的功能是計算xn
double fun(double x,int n)
{ int i; double y=1;
for(i=1;i<=n;i++) y=y*x;
return y;
}
主函數(shù)中已經(jīng)正確定義m,a,b變量并賦值,并調(diào)用fun函數(shù)計算:m=a4+b4-(a+B) 3。實現(xiàn)這一計算的函數(shù)調(diào)用語句為【12】 。
(13) 下面rotate函數(shù)的功能是:將n行n列的矩陣A轉(zhuǎn)置為A’,例如:
1 2 3 4 1 5 9 13
5 6 7 8 2 6 10 14
當(dāng) A= 9 10 11 12 則 A’= 3 7 11 15
13 14 15 16 4 8 12 16
請?zhí)羁?/p>
#define N 4
void rotate(int a[][N])
{ int i,j,t;
for(i=0;i
for(j=0;【13】;j++)
{ t=a[i][j];
【14】 ;
a[j][i]=t;
}
}
(14) 以下sstrcpy( )函數(shù)實現(xiàn)字符串復(fù)制,即將t所指字符串復(fù)制到s所指向內(nèi)存空間中,形成一個新的字符串s。請?zhí)羁铡?/p>
void sstrcpy(char *s,char *t)
{ while(*s++=【15】);}
main( )
{ char str1[100],str2[]=”abcdefgh”;
sstrcpy(str1,str2);
printf(“%s\n”,str1);
}
(15) 下列程序的運行結(jié)果是:【16】
#include
char *ss(char *s)
{ return s+strlen(s)/2;}
main( )
{ char *p,*str=”abcdefgh”;
p=ss(str); printf(“%s\n”,p);
}
(16) 下面程序的運行結(jié)果是:【17】
int f( int a[], int n)
{ if(n>1) return a[0]+f(&a[1],n-1);
else return a[0];
}
main ( )
{ int aa[3]={1,2,3},s;
s=f(&aa[0],3); printf(“%d\n”,s);
}
(17) 以下程序中給指針p分配三個double型動態(tài)內(nèi)存單元,請?zhí)羁铡?/p>
# include
main ( )
{ double *p;
p=(double *) malloc(【18】);
p[0]=1.5;p[1]=2.5;p[2]=3.5;
printf(“%f%f%f\n”,p[0],p[1],p[2]);
}
(18) 以下程序的運行結(jié)果是【19】
# include
typedef struct student{
char name[10];
long sno;
float score;
}STU;
main( )
{ STU
a={“zhangsan”,2001,95},b={“Shangxian”,2002,90},c={“Anhua”,2003,95},d,*p=&d;
d=a;
if(strcmp(a.name,b.name)>0) d=b;
if(strcmp(c.name,d.name)>0) d=c;
printf(“%ld%s\n”,d.sno,p->name);
}
(19) 以下sum函數(shù)的功能是計算下列級數(shù)之和。
S=1+x+x2/2!+x3/3!+........+xn/n!
請給函數(shù)中的各變量正確賦初值。
double sum( double x, int n )
{ int i; double a,b,s;
【20】
for( i=1;i<=n;i++)
{ a=a*x; b=b*i; s=s+a/b; }
return s;
}
【參考答案】
01~10:DBCCB ADCAD
11~20:BBCAC DBCDA
21~30: ACBDD ADDCD
31~40: CBADB ACADA
41~50: ABCCD ACBBD
填空題:
1、@
2、廣域網(wǎng)
3、EXIT或exit
4、文檔
5、百萬條或一百萬條或1000000條
6、B 66
7、n1=%d\nn2=%d
8、0
9、-4
10、12
11、8 4
12、fun(a,4)+fun(b,4)-fun(a+b,3);
13、j<=i
14、a[i][j]=a[j][i]
15、*t++
16、6
17、efgh
18、3*sizeof(double)
19、2002Shangxian
20、a=1.0;b=1.0;s=1.0;
【計算機二級考試C語言程序設(shè)計真題】相關(guān)文章:
計算機二級考試C語言無紙化真題10-06
計算機等級考試二級C語言真題09-26
計算機二級C語言真題09-30
計算機二級考試C語言筆試填空真題09-10
計算機二級考試C語言無紙化程序真題09-02
計算機二級C語言筆試真題10-12
計算機二級《C語言》真題練習(xí)11-28
全國計算機二級考試《C語言》真題與答案09-03
計算機二級C語言真題選擇題07-20