- 相關(guān)推薦
計算機(jī)等級考試二級C語言考試試題(帶答案)
一、填空題(每空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)四個選項中,只有一個選項是正確的,請將正確選項涂寫在答題卡相應(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) 以下選項中不屬于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(char ch)
{
if(ch>=‘A’&&ch<=‘Z') ch=ch-‘A'+‘a';
return ch;
}
main()
{ char s[]="ABC+abc=defDEF",*p=s;
while(*p)
{ *p=cchar(*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語言考試試題帶答案】相關(guān)文章:
計算機(jī)二級C語言考試上機(jī)沖刺試題及答案08-19
2017年計算機(jī)等級考試二級C語言考試技巧06-06
2017年全國計算機(jī)等級考試二級C語言筆試試題08-27
2017最新計算機(jī)二級考試C++試題及答案06-16