2024年計算機二級C語言模擬試題及答案
無論是身處學校還是步入社會,許多人都需要跟試題打交道,借助試題可以對一個人進行全方位的考核。還在為找參考試題而苦惱嗎?以下是小編幫大家整理的2024年計算機二級C語言模擬試題及答案,希望能夠幫助到大家。
計算機二級C語言模擬試題及答案 1
一、選擇題((1)--(40)每小題1分, (41)--(50)每小題2分, 共60分)
下列各題 A) 、B)、C)、D)四個選項中,只有一個選項是正確的,請將正確選項在
答題卡相應位置上涂黑,答在試卷上不得分。
(1) 下列述敘中正確的是
A) 顯示器和打印機都是輸出設(shè)備 B) 顯示器只能顯示字符
C) 通常的彩色顯示器都有7種顏色 D) 打印機只能打印字符和表格
(2) 微型計算機中運算器的主要功能是進行
A) 算術(shù)運算 B) 邏輯運算 C) 算術(shù)和邏輯運算 D) 初等函數(shù)運算
(3) COMMAND。COM是DOS系統(tǒng)的最外層模塊,通常稱之為
A) 引導程序 B) 輸入輸出系統(tǒng) C) 命令處理系統(tǒng) D) 文件管理系統(tǒng)
(4) 電子郵件是
A)網(wǎng)絡信息檢索服務
B)通過Web網(wǎng)頁發(fā)布的公告信息
C)通過網(wǎng)絡實時交互的信息傳遞方式
D)一種利用網(wǎng)絡交換信息的非交互式服務
(5) 和十進制數(shù)225相等的二進制數(shù)是
A) 11101110 B) 11111110 C) 10000000 D) 11111111
(6) 下列敘述中正確的是
A) 指令由操作數(shù)和操作碼兩部分組成
B) 常用參數(shù)xxMB表示計算機的速度
C) 計算機的一個字長總是等于兩個字節(jié)
D) 計算機語言是完成某一任務的指令集
(7) 計算機的內(nèi)存儲器比外存儲器
A) 價格便宜 B) 存儲容量大 C) 讀寫速度快 D) 讀寫速度慢
(8) 設(shè)當前盤為C盤,執(zhí)行 DOS命令"COPY B:\A.TXT PRN"之后,結(jié)果是
A) B盤上的A.TXT文件被復制到C盤的PRN文件
B) 屏幕上顯示B盤上的A.TXT文件內(nèi)容
C) B盤上的A.TXT文件內(nèi)容在打印機上輸出
D) B盤上的A.TXT文件被復制到B盤上的PRN文件
(9) 要將當前盤當前目錄下的兩個文件X1.TXT和B1.TXT連接起來之后存入B盤當 前目錄下并且命名為Z.TXT,無論B盤當前目錄是什么,完成這件任務可以使用的命令是
A) COPY A:X1.TXT+C:B1.TXT Z.TXT
B) COPY X1.TXT+C:\WS\B1.TXT B:\Z.TXT
C) COPY A:X1.TXT+C:\WS\B1.TXT
D) COPY X1.TXT+B1.TXT B:Z.TXT
(10) 下列四組DOS命令中,功能等價的一組是
A) COPY A:*.* B:與DISKCOPY A: B:
B) COPY ABC.TXT+XYZ.TXT 與TYPE XYZ.TXT>>ABC.TXT
C) COPY ABC.TXT+XYZ.TXT與COPY XYZ.TXT+ABC.TXT
D) TYPE *.FOR>CON與COPY *.FOR CON
(11) 設(shè)當前目錄為D:\BB,現(xiàn)要把D:\AA目錄下首字符是A的文本文件全部刪除,應該使用命令
A) DEL A*.TXT B) DEL \AA\A.TXT
C) DEL \AA\A*.TXT D) DEL \AA\A?.TXT
(12) 在Windows中,啟動應用程序的正確方法是
A) 用鼠標指向該應用程序圖標
B) 將該應用程序窗口最小化成圖標
B) 將該應用程序窗口還原
D) 用鼠標雙擊該應用程序圖標
(13) 在Windows中,終止應用程序執(zhí)行的正確方法是
A) 將該應用程序窗口最小化成圖標
B) 用鼠標雙擊應用程序窗口右上角的還原按鈕
C) 用鼠標雙擊應用程序窗口中的標題欄
D) 用鼠標雙擊應用程序窗口左上角的控制菜單框
(14) 在微機系統(tǒng)中,對輸入輸出設(shè)備進行管理的基本程序模塊(BIOS)存放在
A) RAM中 B) ROM中 C) 硬盤中 D) 寄存器中
(15) 使計算機病毒傳播范圍最廣的媒介是
A) 硬磁盤 B) 軟磁盤 C) 內(nèi)部存儲器 D) 互聯(lián)網(wǎng)
(16) 設(shè)有 int x=11; 則表達式 (x++ * 1/3) 的值是
A) 3 B) 4 C) 11 D) 12
(17) 下列程序的輸出結(jié)果是
A) 3 B) 3.2 C) 0 D) 3.07
main()
{ double d=3.2; int x,y;
x=1.2; y=(x+3.8)/5.0;
printf("%d \n", d*y);
}
(18) 下列程序執(zhí)行后的輸出結(jié)果是(小數(shù)點后只寫一位)
A) 6 6 6.0 6.0 B) 6 6 6.7 6.7
C) 6 6 6.0 6.7 D) 6 6 6.7 6.0
main()
{ double d; float f; ling l; int i;
i=f=1=d=20/3;
printf("%d %ld %f %f \n", i,l,f,d);
}
(19) 下列變量定義中合法的是
A) short _a=1-.le-1; B) double b=1+5e2.5;
C) long do=0xfdaL; D) float 2_and=1-e-3;
(20) 設(shè) int x=1, y=1; 表達式(!x||y--)的值是
A) 0 B) 1 C) 2 D) -1
(21) 與 y=(x>0?1:x<0?-1:0);的功能相同的if語句是
A) if (x>0) y=1; B) if(x)
else if(x<0)y=-1; x="">0)y=1;
else y=0; else if(x<0)y=-1;
else y=0;
C) y=-1 D) y=0;
if(x) if(x>=0)
if(x>0)y=1; if(x>0)y=1;
else if(x==0)y=0; else y=-1;
else y=-1;
(22) 以下循環(huán)體的執(zhí)行次數(shù)是
A) 3 B) 2 C) 1 D) 0
main()
{ int i,j;
for(i=0,j=1; i<=j+1; i+=2, j--)printf("%d \n",i);
}
(23) 以下敘述正確的是
A) do-while語句構(gòu)成的循環(huán)不能用其它語句構(gòu)成的循環(huán)來代替。
B) do-while語句構(gòu)成的循環(huán)只能用break語句退出。
C) 用do-while語句構(gòu)成的循環(huán),在while后的表達式為非零時結(jié)束循環(huán)。
D) 用do-while語句構(gòu)成的循環(huán),在while后的表達式為零時結(jié)束循環(huán)。
(24) 下列程序執(zhí)行后的輸出結(jié)果是
A) G B) H C) I D) J
main()
{ int x=f; printf("%c \n",A+(x-a+1)); }
(25) 執(zhí)行下面的程序段后,變量k中的值為
A) 不定值 B) 33 C) 30 D) 10
int k=3, s[2];
s[0]=k; k=s[1]*10;
(26) 若已定義:
int a[ ]={0,1,2,3,4,5,6,7,8,9], *p=a,i;
其中 0≤i≤9, 則對a數(shù)組元素不正確的引用上
A) a[p-a] B) *(&a[i]) C) p[i] D) a[10]
(27) 下列程序執(zhí)行后的輸出結(jié)果是
A) 6 B) 7 C) 8 D) 9
void func(int *a,int b[])
{ b[0]=*a+6; }
main()
{ int a,b[5];
a=0; b[0]=3;
func(&a,b); printf("%d \n,b[0]);
}
(28) 下列程序的運行結(jié)果是
A) a=%2,b=%5 B) a=2,b=5
C) a=d, b=d D) a=%d,b=%d
#include
main()
{ int a=2,c=5;
printf("a=%d,b=%d\n",a,c); }
(29) 下列程序執(zhí)行后的輸出結(jié)果是
A) 3 B) 6 C) 9 D) 隨機數(shù)
main()
{ int a[3][3], *p,i;
p=&a[0][0];
for(i=p; i<9; i++) p[i]=i+1;
printf("%d \n",a[1][2]);
}
(30) 設(shè)有數(shù)組定義: char array [ ]="China"; 則數(shù)組 array所占的空間為
A) 4個字節(jié) B) 5個字節(jié) C) 6個字節(jié) D) 7個字節(jié)
(31) 下列程序的輸出結(jié)果是
A) 4 B) 6 C) 8 D) 10
int b=2;
int func(int *a)
{ b += *a; return(b);}
main()
{ int a=2, res=2;
res += func(&a);
printf("%d \n",res);
}
(32) 在以下四組中,每組有兩個分別運算的函數(shù),運算結(jié)果相同的是
A) 4 B) 2 C) 2 D) 0
main()
{ int i, j, m=0, n=0;
for(i=p; i<2; i++)
for(j=0; j<2; j++)
if(j>=i) m=1; n++;
printf("%d \n",n);
}
(33) 下列程序的輸出結(jié)果是
A) 5 B) 6 C) 7 D) 8
struct abc
{ int a, b, c; };
main()
{ struct abc s[2]={{1,2,3},{4,5,6}}; int t;
t=s[0],a+s[1],b;
printf("%d \n",t);
}
(34) 設(shè) int b=2;表達式(b>>2)/(b>>1)的值是
A) 0 B) 2 C) 4 D) 8
(35) 在C程序中,可把整型數(shù)以二進制形式存放到文件中的函數(shù)是
A) fprintf函數(shù) B) fread函數(shù) C) fwrite函數(shù) D) fputc函數(shù)
(36) 下列程序執(zhí)行后的輸出結(jié)果是
A) -32767 B) FFFE C) -1 D) -32768
main()
{ char x=0xFFFF; printf("%d \n",x--); }
(37) 若有定義: float w; int a, b; 則合法的switch語句是
A) switch(w) B) switch(a);
{ case 1.0: printf("*\n"); { case 1 printf("*\n");
case 2.0: printf("**\n"); case 2 printf("**\n");
} }
C) switch(b) D) switch(a+b);
{ case 1: printf("*\n"); { case 1: printf("*\n");
default: printf("\n"); case 2: printf("**\n");
case 1+2: printf("**\n"); default: printf("\n");
} }
(38) 以下程序段的執(zhí)行結(jié)果是
A) a=12 y=12 B) a=12 y=12
a=14 y=16 a=16 y=28
a=16 y=20
a=18 y=24
C) a=12 y=12 D) a=12 y=12
a=14 y=26
a=14 y=44
int a, y;
a=10; y=0;
do
{ a+=2; y+=a;
printf("a=%d y=%d\n",a,y);
if(y>20) break;
{ while(a=14);
.
.
.
(39) 若有以下調(diào)用語句,則不正確的'fun函數(shù)的首部是
A) void fun(int m, int x[]) B) void fun(int s, int h[41])
C) void fun(int p, int *s) D) void fun(int n, int a)
main()
{ …
int a[50],n;
…
fun(n, &a[9]);
…
}
(40) 語句printf("a\bre\hi\y\\\bou\n");的輸出結(jié)果是
A) a\bre\hi\y\\\bou B) a\bre\hi\y\bou
C) rehiyou D) abrehiy\bou
(說明:\b是退格符)
(41) 請選出正確的程序段
A) int *p; B) int *s, k;
scanf("%d",p); *s=100;
… …
C) int *s, k; D) int *s, k;
char *p, c; char *p, e;
s=&k; s=&k;
p=&c; p=&c;
*p=a; s=p;
… *s=1;
…
(42) 已知指針p的指向如下圖所示,則執(zhí)行語句 *--p;后*p的值是
A) 30 B) 20 C) 19 D) 29
a[0] a[1] a[2] a[3] a[4]
10 20 30 40 50
(43) 設(shè)已有定義: char *st="how are you"; 下列程序段中正確的是
A) char a[11], *p; strcpy(p=a+1,&st[4]);
B) char a[11]; strcpy(++a, st);
C) char a[11]; strcpy(a, st);
D) char a[], *p; strcpy(p=&a[1],st+2);
(44) 下列程序執(zhí)行后的輸出結(jié)果是
A) you&ne B) you C) me D) err
mai()
{ char arr[2][4];
strcpy(arr,"you"); strcpy(arr[1],"me");
arr[0][3]=&;
printf("%s \n",arr);
}
(45) 下列程序執(zhí)行后的輸出結(jié)果是
A) hello B) hel C) hlo D) hlm
void func1(int i);
void func2(int i);
char st[]="hello,friend!";
void func1(int i)
{ printf("%c",st[i]);
if(i<3){i+=2;func2(i);}
}
void func2(int i)
{ printf("%c",st[i]);
if(i<3){i+=2;func1(i);}
}
main()
{ int i=0; func1(i); printf("\n");}
(46) 假定下列程序的可執(zhí)行文件名為prg.exe,則在該程序所在的子目錄下輸入命令行: prg hello good<回車>后,程序的輸出結(jié)果是
A) hello good B) hg C) hel D) hellogood
main()(int argc, char *argv[])
{ int i;
if(argc<-0)return;
for(i=1;i
}
(47) 下列程序執(zhí)行后的輸出結(jié)果是
A) 6 B) 8 C) 10 D) 12
#define MA(x) x*(x-1)
main()
{ int a=1,b=2; printf("%d \n",MA(1+a+b));}
(48) 有以下結(jié)構(gòu)體說明和變量的定義,且如下圖所示指針p指向變量a,指針q指向變量b。則不能把結(jié)點b連接到結(jié)點a之后的語句是
A) a.next=q; B) p.next=&b;
C) p->next=&b; D) (*p).next=q;
struct node
{ char data;
struct node *next;
{ a,b,*p=&a,*q=&b;
data next data next
(49) 變量a所占內(nèi)存字節(jié)數(shù)是
A) 4 B) 5 C) 6 D) 8
union U
{ char st[4];
int i;
long l;
};
struct A
{ int c;
union U u;
}a;
(50) 執(zhí)行下列程序時輸入:123<空格>456<空格>789<回車>,輸出結(jié)果是
A) 123,456,789 B) 1,456,789
C) 1,23,456,789 D) 1,23,456
main()
{ char s[100]; int c, i;
scanf("%c",&c); scanf("%d",&i); scanf("%s",s);
printf("%c,%d,%s \n",c,i,s);
}
二、填空題(每空2分,共40分)
請將每空的正確答案寫在答題卡上[1] ̄[20]序號的橫線上,答在試卷上不得分。
(1) 計算機網(wǎng)絡按通信距離來劃分,可分為局域網(wǎng)和廣域網(wǎng)。因特網(wǎng)屬于 [1] 。
(2) 當前盤是C,確保在D盤的根目錄下建立一個子目錄USER的一條DOS命令是 [2] 。
(3) 要將當前盤當前目錄中所有擴展名為.TXT的文件內(nèi)容顯示在屏幕上的DOS命令是 [3] 。
(4) DOS命令分為內(nèi)部命令和外部命令,CHKDSK命令是 [4] 命令。
(5) 在Windows中,為了終止一個應用程序的運行,首先單擊該應用程序窗口中的控制菜單框,然后在控制菜單中單擊 [5] 命令。
(6) 設(shè)有以下變量定義,并已賦確定的值
char w; int x; float y; double z;
則表達式:w*x+z-y所求得的數(shù)據(jù)類型為 [6] 。
(7) 若x為int類型,請以最簡單的形式寫出與邏輯表達式!x等價的C語言關(guān)系表達式 [7] 。
(8) 若有如下圖所示五個連續(xù)的int類型的存儲單元并賦值如下圖,a[0]的地址小于a[4]的地址。p和s是基類型為int的指針變量。請對以下問題進行填空。
a[0] a[1] a[2] a[3] a[4]
22 33 44 55 66
1,若p已指向存儲單元a[1]。通過指針p,給s賦值,使s指向最后一個存儲單元 a[4]的語句是 [8] 。
2,若指針s指向存儲單元a[2],p指向存儲單元a[0],表達式s-p的值是 [9] 。
(9) 下面函數(shù)用來求出兩個整數(shù)之和,并通過形參傳回兩數(shù)相加之和值,請?zhí)羁铡?/p>
int add(int x, int y, [10] z)
{ [11] =x+y; }
(10) 下面程序的功能是:計算1到10之間奇數(shù)之和及偶數(shù)之和,請?zhí)羁铡?/p>
#include
main()
{ int a, b, c, i;
a=c=0;
for(i=0;i<10;i+=2)
{ a+=i;
[12] ;
c+=b;
}
printf("偶數(shù)之和=%d\n",a);
printf("奇數(shù)之和=%d\n",c-11);
}
(11) 下面程序的功能是:輸出100以內(nèi)能被3整除且個位數(shù)為6的所有整數(shù),請?zhí)羁铡?/p>
#include
main()
{ int i, j;
for(i=0; [13] ; i++)
{ j=i*10+6;
if( [14] ) continue;
printf("%d",j);
}
}
(12) 下面程序的功能是:將字符數(shù)組a中下標值為偶數(shù)的元素從小到大排列,其它元素不變。請?zhí)羁铡?/p>
#include
#include
main()
{ char a[]="clanguage",t;
int i, j, k;
k=strlen(a);
for(i=0; i<=k-2; i+=2)
for(j=i+2; j<=k; [15] )
if( [16] )
{ t=a[i]; a[i]=a[j]; a[j]=t; }
puts(a);
printf("\n");
}
(13) 以下程序的運行結(jié)果是 [17]
#include
main()
{ int k=4, m=1, p;
p=func(k,m); printf("%d,",p);
p=func(k,m); printf("%d \n",p);
}
func(int a, int b)
{ static int m=0, i=2;
i+=m+1;
m=i+a+b;
return m;
}
(14) 以下程序的功能是:將無符號八進制數(shù)字構(gòu)成的字符串轉(zhuǎn)換為十進制整數(shù)。例如,輸入的字符串為:556,則輸出十進制整數(shù)366。請?zhí)羁铡?/p>
#include
main()
{ char *p, s[6];
int n;
p=s;
gets(p);
n=*p-0;
while( [18] !=\0)n=n*8+*p-0;
printf("%d \n",n);
}
(15) 函數(shù) void fun(float *sn, int n)的功能是:根據(jù)以下公式計算S,計算結(jié)果通過形參指針sn傳回;n通過形參傳入,n的值大于等于0。請?zhí)羁铡?/p>
void fun( float *sn, int n)
{ float s=0.0, w, f=-1.0;
int i=0;
for(i=0; i<=n; i++)
{ f= [19] * f;
w=f/(2*i+1);
s+=w;
}
[20] =s;
}
【參考答案】
一、選擇題((1)--(40)題每題1分,(41)--(50)題每題2分,共60分。
(1)A (2)C (3)C (4)D (5)D (6)A 7)C (8)C (9)D (10)B
(11)C (12)D (13)D (14)B (15)D (16)A (17)C (18)A (19)A (20)B
(21)A (22)C (23)D (24)A (25)A (26)D (27)A (28)B (29)B (30)C
(31)B (32)A (33)B (34)D (35)A (36)C (37)D (38)B (39)C (40)C
(41)C (42)B (43)A (44)A (45)C (46)B (47)B (48)B (49)C (50)D
二、填空題(每空2分,共40分)
(1)廣域網(wǎng)
(2)MD D:\USER
(3) COPY *.TXT CON
(4) 外部
(5退出(或關(guān)閉)
(6)double
(7)x==0||x==1
(8) s= p+3
(9) 2
(10) int *
(11) * z
(12) b = i + 1
(13)i<10
(14) i % 3 != 0
(15) j+=2
(16) a[i]>a[j]
(17) 8,17
(18) *(++p)
(19) -1
(20) *sn
計算機二級C語言模擬試題及答案 2
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名學生的成績已在主函數(shù)中放入一個帶頭節(jié)點的鏈表結(jié)構(gòu)中,h指向鏈表的頭節(jié)點。請編寫函數(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;}
【計算機二級C語言模擬試題及答案】相關(guān)文章:
計算機二級C語言模擬試題及答案12-08
C語言模擬試題及答案03-28
計算機二級C++模擬試題及答案02-06
計算機二級《C語言》試題及答案201611-21