全國計算機二級c語言考試題庫
Ⅰ 計算機二級考試(江西考區)試題c語言及答案
2010年3月全國計算機等級考試二級C語言筆試真題及參考答案一、選擇題
(1)下列敘述中正確的是
A)對長度為n的有序鏈表進行查找,最壞清況下需要的比較次數為n
B)對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數為(n/2)
C)對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數為(log2n)
D)對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數為(nlog2n)(2)演算法的時間復雜度是指
A)演算法的執行時間
B)演算法所處理的數據量
C)演算法程序中的語句或指令條數
D)演算法在執行過程中所需要的基本運算次數(3)軟體按功能可以分為:應用軟體、系統軟體和支撐軟體(或工具軟體)。下面屬於系統軟體的是
A)編輯軟體
B)操作系統
C)教務管理系統
D)瀏覽器(4)軟體(程序)調試的任務是
A)診斷和改正程序中的錯誤
B)盡可能多地發現程序中的錯誤
C)發現並改正程序中的所有錯誤
D)確定程序中錯誤的性質(5)數據流程圖(DFD圖)是
A)軟體概要設計的工具
B)軟體詳細設計的工具
C)結構化方法的需求分析工具
D)面向對象方法的需求分析工具(6)軟體生命周期可分為定義階段,開發階段和維護階段。詳細設計屬於
A)定義階段
B)開發階段
C)維護階段
D)上述三個階段(7)資料庫管理系統中負責數據模式定義的語言是
A)數據定義語言
B)數據管理語言
C)數據操縱語言
D)數據控制語言(8)在學生管理的關系資料庫中,存取一個學生信息的數據單位是
A)文件
B)資料庫
C)欄位
D)記錄(9)資料庫設計中,用E-R圖來描述信息結構但不涉及信息在計算機中的表示,它屬於資料庫設計的
A)需求分析階段
B)邏輯設計階段
C)概念設計階段
D)物理設計階段(10)有兩個關系R和T如下:
則由關系K得到關系T的操作是
A)選擇
B)投影
C)交
D)並(11)以下敘述正確的是
A)C語言程序是由過程和函數組成的
B)C語言函數可以嵌套調用,例如:fun(fun(x))
C)C語言函數不可以單獨編譯
D)C語言中除了main函數,其他函數不可作為單獨文件形式存在(12)以下關於C語言的敘述中正確的是
A)C語言中的注釋不可以夾在變數名或關鍵字的中間
B)C語言中的變數可以在使用之前的任何位置進行定義
C)在C語言算術表達式的書寫中,運算符兩側的運算數類型必須一致
D)C語言的數值常量中夾帶空格不影響常量值的正確表示(13)以下C語言用戶標識符中,不合法的是
A)_1
B)AaBc
C)a_b
D)a-b(14)若有定義:double a=22;int i=0,k=18;,則不符合C語言規定的賦值語句是
A)a=a++,i++;
B)i=(a+k)<=(i+k);
C)i=a%11;
D)i=!a;(15)有以下程序
#include<stdio.h>
main()
{ char a,b,c,d;
scanf(「%c%c」,&a,&b);
c=getchar(); d=getchar();
printf(「%c%c%c%c\n」,a,b,c,d);
}
當執行程序時,按下列方式輸入數據(從第1列開始,<CR>代表回車,注意:回車也是一個字元)
12<CR>
34<CR>
則輸出結果是
A)1234
B)12
C)12
3
D)12
34(16)以i關於C語言數據類型使用的敘述中錯誤的是
A)若要准確無誤差的表示自然數,應使用整數類型
B)若要保存帶有多位小數的數據,應使用雙精度類型
C)若要處理如「人員信息」等含有不同類型的相關數據,應自定義結構體類型
D)若只處理「真」和「假」兩種邏輯值,應使用邏輯類型(17)若a是數值類型,則邏輯表達式(a==1)||(a!=1)的值是
A)1
B)0
C)2
D)不知道a的值,不能確定(18)以下選項中與if(a==1)a=b; else a++;語句功能不同的switch語句是
A)switch(a)
{case:a=b;break;<br>default:a++;<br>}<br>B)switch(a==1)<br>{case 0:a=b;break;<br>case 1:a++;<br>}
C)switch(a)
{default:a++;break;<br>case 1:a=b;<br>}
D)switch(a==1)
{case 1:a=b;break;<br>case 0:a++;<br>}(19)有如下嵌套的if語句
if (a<b)
if(a<c)k=a;
else k=c;
else
if(b<c) k=b;
else k=c;
以下選項中與上述if語句等價的語句是
A)k=(a<b)?a:b;k=(b<c)?b:c;
B)k=(a<b)?((b<c)?a:b):((b>c)?b:c);
C)k=(a<b)?((a<c)?a:):((b<c)?b:c);
D)k=(a<b)?a:b;k=(a<c)?a:c;(20)有以下程序
#include<s七dio.h>
main()
{in i,j,m=1;
for(i=1;i<3;i++)
{for(j=3;j>O;j--)
{if(i*j)>3)break;<br>m=i*j;<br>}
}
printf("m=%d\n",m);
}
程序運行後的輸出結果是
A)m=6
B)m=2
C)m=4
D)m=5(21)有以下程序
#include(stdio.h>
main()
{int a=l;b=2;
for(;a<8;a++) {b+=a;a+=2;}
printf("%d,%d\n",a,b);
}
程序運行後的輸出結果是
A)9,18
B)8,11
C)7,11
D)10,14(22)有以下程序,其中k的初值為八進制數
#include <stdio.h>
main()
{int k=011;
printf("%d\n",k++);
}
程序運行後的輸出結果是
A)12
B)11
C)10
D)9(23)下列語句組中,正確的是
A)char *s;s="Olympic";
B)char s[7];s="Olympic";
C)char *s;s={"Olympic"};
D)char s[7];s={"Olympic"};(24)以下關於return語句的敘述中正確的是
A)一個自定義函數中必須有一條return語句
B)一個自定義函數中可以根據不同情況設置多條return語句
C)定義成void類型的函數中可以有帶返回值的return語句
D)沒有return語句的自定義函數在執行結束時不能返回到調用處(25)下列選項中,能正確定義數組的語句是
A)int num[0..2008];
B)int num[];
C)int N=2008;
int num[N];
D)#define N 2008
int num[N];(26)有以下程序
#include <stdio.h>
void fun(char *c,int d)
{*c=*c+1;d=d+1;
printf("%c,%c,",*c,d);
main()
{char b='a',a='A';
fun(&b,a);printf("%e,%e\n",b,a);
}
程序運行後的輸出結果是
A)b,B,b,A
B)b,B,B,A
C)a,B,B,a
D)a,B,a,B(27)若有定義int(*Pt)[3];,則下列說法正確的是
A)定義了基類型為int的三個指針變數
B)定義了基類型為int的具有三個元素的指針數組pt
C)定義了一個名為*pt、具有三個元素的整型數組
D)定義了一個名為pt的指針變數,它可以指向每行有三個整數元素的二維數組(28)設有定義double a[10],*s=a;,以下能夠代表數組元素a[3]的是
A)(*s)[3]
B)*(s+3)
C)*s[3]
D)*s+3(29)有以下程序
#include(stdio.h)
main()
{int a[5]={1,2,3,4,5},b[5]={O,2,1,3,0},i,s=0;
for(i=0;i<5;i++) s=s+a[b[i]]);
printf("%d\n", s);
}
程序運行後的輸出結果是
A)6
B)10
C)11
D)15(30)有以下程序
#include <stdio.h>
main()
{int b [3][3]={O,1,2,0,1,2,O,1,2},i,j,t=1;
for(i=0;i<3;i++)
for(j=ij<=1;j++) t+=b[i][b[j][i]];
printf("%d\n",t);
}
程序運行後的輸出結果是
A)1
B)3
C)4
D)9(31)若有以下定義和語句.......這是全國2010全國c語言考試的部分題目,樓主需要的話可以自己去下載轉自:酷8學習網 www.k8xx.com
Ⅱ 全國計算機等級考試二級C語言歷年試題及答案
2010年9月全國計算機等級考試二級C語言筆試試題及答案
一、選擇題((1)-(10)每題2分,(11)-(50)每題1分.共60分))
(1)下列選項中不屬於軟體生命周期開發階段任務的是
A)詳細設計 B)概要設計 C)軟體維護 D)軟體測試
(2)樹是結點的集合,它的根結點數目是
A)有且只有1 B)1或多於1 C)0或1 D)至少2
(3)在面向對象方法中,實現信息隱蔽是依靠
A)對象的繼承 B)對象的多態 C)對象的封裝 D)對象的分類
(4)程序設計語言的基本成分是數據成分、運算成分、控製成分和
A)語句成分 B)變數成分 C)對象成分 D)傳輸成分
(5)冒泡排序在最壞情況下的比較次數是
A)n/2 B)nlog2n C)n(n-1)/2 D)n(n+1)/2
(6)下列敘述中,不屬於軟體需求規格說明書的作用的是
A)作為確認測試和驗收的依據
B)反映出用戶問題的結構,可以作為軟體開發工作的基礎和依據
C)便於用戶、開發人員進行理解和交流
D)便於開發人員進行需求分析
(7)下列敘述中錯誤的是
A)一個C語言程序只能實現一種演算法 B)C程序可以由多個程序文件組成
C)C程序可以由一個或多個函數組成 D)一個函數可單獨作為一個C程序文件存在
(8)下列不屬於軟體工程的3個要素的是
A)方法 B)過程 C)工具 D)環境
(9)下列敘述中正確的是
A)資料庫系統是一個獨立的系統,不需要操作系統的支持
B)資料庫技術的根本目標是要解決數據的共享問題
C)資料庫管理系統就是資料庫系統
D)以上三種說法都不對
(10)下列敘述中正確的是
A)每個C程序文件中都必須有一個main()函數
B)在C程序的函數中不能定義另一個函數
C)C程序可以由一個或多個函數組成
D)在C程序中main()函數的位置是固定的
(11)將E-R圖轉換到關系模式時,實體與聯系都可以表示成
A)屬性 B)關系 C)鍵 D)域
(12)下列定義變數的語句中錯誤的是
A)double int_; B)int _int; C)char For D)float USS
(13)下列敘述中正確的是
A)C語言編譯時不檢查語法 B)C語言的子程序有過程和函數兩種
C)C語言的函數可以嵌套定義 D)C語言的函數可以嵌套調用
(14)以下選項中,合法的一組C語言數值常量是
A) 0x8A B)12 C).177 D) 028
(15)以下敘述中正確的是
A)構成C程序的基本單位是函數
B)可以在一個函數中定義另一個函數
C)main()函數必須放在其他函數之前
D)所有被調用的函數一定要在調用之前進行定義
(16)若在定義語句:int a,b,c,*p=&c;之後,接著執行以下選項中的語句,則能正確執行的語句是
A)scanf("%d",&p); B)scanf("%d%d%d",a,b,c);
C)scanf("%d",p); D) scanf("%d",a,b,c);
(17) 有以下程序
main()
{int x,y,z;
x=y=1;
z=x++,y++,++y;
printf("%d,%d,%d\n",x,y,z);
}
程序運行後的輸出結果是
A)2,2,3 B)2,2,2 C)2,3,1 D)2,1,1
(18) 若已定義:int a=25,b=14,c=19;以下三目運算符(?:)所構成語句的執行後a<=25&&b--<=2&&c?printf("***a=%d,b=%d,c=%d\n",a,b,c):printf("###a=%d,b=%d,c=%d\n",a,b,c);程序輸出的結果是
A)***a=25,b=13,c=19 B)***a=26,b=14,c=19
C)### a=25,b=13,c=19 D)### a=26,b=14,c=19
(19)下列程序段的輸出結果是
int a=1234;
float b=123.456;
double c=12345.54321;
printf("-,%2.1f,%2.1f",a,b,c);
A)無輸出 B)12,123.5,12345.5 C)1234,123.5,12345.5 D)1234,123.4,1234.5
(20)有以下程序
main()
{int a=0,b=0;
a=10; /*給a賦值
b=20; 給b賦值 */
printf("a+b=%d\n",a+b); /* 輸出計算結果 */
}
程序運行後輸出結果是
A)30 B)a+b=30 C)a+b=0 D)出錯
(21)若運行以下程序時,從鍵盤輸入 ADescriptor(表示回車),則下面程序的運行結果是
#include
main()
{ char c;
int v0=1,v1=0,v2=0;
do{ switch(c=getchar())
{ case ′a′:case ′A′:
case ′e′:case ′E′:
case ′i′:case ′I′:
case ′o′:case ′O′:
case ′u′:case ′U′:v1+=1;
default:v0+=1;v2+=1;
}
} while(c!=′\n′);
printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);
}
A)v0=11,v1=4,v2=11 B)v0=8,v1=4,v2=8
C)v0=7,v1=4,v2=7 D)v0=13,v1=4,v2=12
(22) 有以下程序
#include
main()
{int y=9;
for( y>0;y--)
if(y%3= =0) printf("%d",--y);
}
程序的運行結果是
A)732 B)433 C)852 D)874
(23) 設有以下程序段
int x=0,s=0;
while(!x!=0)s+=++x;
printf("%d",s);
則
A)運行程序段後輸出0 B)運行程序段後輸出1
C)程序段中的控製表達式是非法的 D)程序段執行無限次
(24)有以下程序
fun(int x,int y){return(x+y);}
main()
{int a=1,b=2,c=3,sum;
sum=fun((a++,b++b,a+b),c++);
printf("%d\n",sum);
}
執行後的輸出結果是
A)5 B)7 C)8 D)3
(25)執行下面的程序段後,變數k中的值為
int k=3, s[2];
s[0]=k; k=s[1]*10;
A)不定值 B)35 C)31 D)20
(26)以下敘述中錯誤的是
A)改變函數形參的值,不會改變對應實參的值
B)函數可以返回地址值
C)可以給指針變數賦一個整數作為地址值
D)當在程序的開頭包含文件stdio.h時,可以給指針變數賦NULL
(27)以下程序段的描述,正確的是
x=-1;
do
{x=x*x;} while(!x);
A)是死循環 B)循環執行兩次 C)循環執行一次 D)有語法錯誤
(28)有以下程序
fun(int x,int y)
{static int m=0,i=2;
i+=m+1;m=i+x+y; return m;
}
main()
{int j=1,m=I,k;
k=fun(j,m); printf("%d",k);
k=fun(j,m); printf("%d\n",k)
}
執行後的輸出結果是
A)5,5 B)5,11 C)11,11 D)11,5
(29)有以下程序
fun(int x)
{int p;
if(x==0║x= =1) return(3);
p=x-fun(x=2);
retum p;
}main()
{ prinf("%d\n",fun(7));}
執行後的輸出結果是
A)7 B)3 C)3 D)0
(30)在16位編譯系統上,右有定義int a[ ]={10,20,30},*p=&a;,當執行p++;後,下列說法錯誤的是
A)p向高地址移了一個位元組 B)p抽高地址移了一個存儲單元
C)p向高地址移了兩個位元組 D)p與a+1等價
(31)有以下程序
main()
{int a=1,b=3,c=5;
int *p1=&a,*p2=&b,*p=&c;
*p=*p1*(*p2);
printf("%d\n",c);
}
執行後的輸出結果是
A)1 B)2 C)3 D)4
(32)下列程序執行後的輸出結果是
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");}
A)hello B)hel C)hlo D)hlm
(33)在下述程序中,判斷i>j共執行的次數是
main()
{ int i=0, j=10, k=2, s=0;
for (;;)
{ i+=k;
if(i>j)
{ printf("%d",s);
break;
} s+=i;
}
}
A)4 B)7 C)5 D)6
(34)以下函數返回a所指數組中最大值所在的下標值
fun(int *a,int n)
{ int i,j=0,p;
p=j;
for(i=j;iif(a[i]>a[p]);
return(p);
}
在下劃線處應填入的內容是
A)i=p B)a[p]=a[i] C)p=j D)p=i
(35)下列程序執行後的輸出結果是
main()
{ int a[3][3], *p,i;
p=&a[0][0];
for(i=1; i<9; i++)p[i]=i+1;
printf("%d\n",a[1][2]);
}
A)3 B)6 C)9 D)隨機數
(36) 有以下程序
#include
void fun(int *a,int n)/*fun函數的功能是將a所指數組元素從大到小排序*/
{int t,i,j;
for(i=0;ifor(j=i+1;jif (a}
main()
{int c[10]={1,2,3,4,5,6,7,8,9,0},i;
fun(c+4,6);
for (i=0;i<10;i++) printf("%d,",c);
printf("\n");
}
程序運行的結果是
A)1,2,3,4,5,6,7,8,9,0, B)0,9,8,7,6,5,1,2,3,4,
C) 0,9,8,7,6,5,4,3,2,1, D)1,2,3,4,9,8,7,6,5,0,
(37)以下程序的輸出結果是#include
void prt (int *x, int*y, int*z)
{ printf("%d,%d,%d\n",++*x,++*y,*(z++));}
main()
{ int a=10,b=40,c=20;
prt (&a,&b,&c);
prt (&a,&b,&c);
}
A)11,42, 31
12,22,41
B)11,41,20
12,42,20
C)11,21,40
11,21,21
D)11,41,21
12,42,22
(38) 有以下程序:
#include
void fun(char *t,char *s)
{
while(*t!=0)t++;
while((*t++=*s++)!=0);
}
main()
{
char ss[10]=」acc」,aa[10]=」bbxxyy」;
fun(ss,aa);
printf(「%s,%s\n」,ss,aa);
}
程序運行結果是
A) accxyy , bbxxyy B) acc, bbxxyy
C) accxxyy,bbxxyy D) accbbxxyy,bbxxyy
(39) 有以下程序
#include
main()
{ FILE *fp; int i=20,j=30,k,n;
fp=fopen("d1.dat","w");
fprintf(fp,"%d\n",i);fprintf(fp,"%d\n",j);
fclose(fp);
fp=fopen("d1.dat","r");
fscanf(fp,"%d%d",&k,&n); printf("%d %d\n",k,n);
fclose(fp);
}
程序運行後的輸出結果是
A)20 30 B)20 50 C)30 50 D)30 20
(40) 有以下程序
main()
{int x[3][2]={0},I;
for(I=0;I<3;I++) scanf("%d",x[i]);
printf("%3d%3d%3d\n",x[0][0],x[0][1],x[1][0]);
}
若運行時輸入:246,則輸出結果為
A)2 0 0 B)2 0 4 C)2 4 0 D)2 4 6
(41)有以下程序
int add(int a,int b){return+b};}
main()
{int k,(*f)(),a=5,b=10;
f=add;
…
}
則以下函數調用語句錯誤的是
A)k=(*f)(a,b); B)k=add(a,b); C)k=*f(a,b); D)k=f(a,b);
(41)有以下程序
#include
main(int argc,char *argv[])
{int i=1,n=0;
while(i<arge){n=n+strlen(argv[i]);i++;}
printf(「%d\n」,n);
}
該程序生成的可執行文件名為:proc.exe。若運行時輸入命令行:
proc 123 45 67
則程序的輸出結果是
A)3 B)5 C)7 D)11
(42)有以下程序
void fun2(char a, char b){printi(「%b%c」,a,b);}
char a= 『A』,b= 『B』;
void fun1( ){ a= 『C』l b= 『D』; }
main( )
{ fun1( )
printf( 「%c%c」,a,b);
fun2(『E』, 『F』);
}
程序的運行結果是
A)CDEF B)ABEF C)ABCD D)CDAB
(43)有以下程序
#include
#define N 5
#define M N+1
#define f(x) (x*M)
main()
{int i1,i2;
i1=f(2);
i2=f(1+1);
printf(「%d %d\n」,i1,i2);
}
程序的運行結果是
A)12 12 B)11 7 C)11 11 D)12 7
(44)設有以下語句
typedef struct TT
{char c; int a[4];}CIN;
則下面敘述中正確的是
A)可以用TT定義結構體變數 B)TT是struct類型的變數
C)可以用CIN定義結構體變數 D)CIN是struct TT類型的變數
(45)有以下結構體說明、變數定義和賦值語句
struct STD
{char name[10];
int age;
char sex;
}s[5],*ps;
ps=&s[0];
則以下scanf函數調用語句中錯誤引用結構體變數成員的是
A)scanf(「%s」,s[0].name); B)scanf(「%d」,&s[0].age);
C)scanf(「%c」,&(ps>sex)); D)scanf(「%d」,ps>age);
(46)若有以下定義和語句
union data
{ int i; char c; float f;}x;
int y;
則以下語句正確的是
A)x=10.5; B)x.c=101; C)y=x; D)printf(「%d\n」,x);
(47)若變數已正確定義,則以下語句的輸出結果是
s=32; s^=32;printf(「%d」,s);
A)-1 B)0 C)1 D)32
(48) 若程序中有宏定義行:#define N 100 則以下敘述中正確的是
A)宏定義行中定義了標識符N的值為整數100
B)在編譯程序對C源程序進行預處理時用100替換標識符N
C) 對C源程序進行編譯時用100替換標識符N
D)在運行時用100替換標識符N
(49)以下敘述中正確的是
A)C語言中的文件是流式文件,因此只能順序存取數據
B)打開一個已存在的文件並進行了寫操作後,原有文件中的全部數據必定被覆蓋
C)在一個程序中當對文件進行了寫操作後,必須先關閉該文件然後再打開,才能讀到第1個數據
D)當對文件的讀(寫)操作完成之後,必須將它關閉,否則可能導致數據丟失
(50)有以下程序
#include
main()
{FILE *fp; int i;
char ch[]=」abcd」,t;
fp=fopen(「abc.dat」,」wb+」);
for(i=0;i<4;i++)fwriter&ch[],1,1fp;
fseek(fp,-2L,SEEK_END);
fread(&t,1,1,fp);
fclose(fp);
printf(「%c\n」,t);
}
程序執行後的輸出結果是
A)d B)c C)b D)a
二、填空題(每空2分,共40分)
(1)在面向對象方法中,類之間共享屬性和操作的機制稱為 【1】 。
(2)一個關系表的行稱為 【2】 。
(3)耦合和內聚是評價模塊獨立性的兩個主要標准,其中 【3】 反映了模塊內各成分之間的聯系。
(4)線性表的存儲結構主要分為順序存儲結構和鏈式存儲結構.隊列是一種特殊的線性表,循環隊列是隊列的【4】存儲結構.
(5) 【5】 的任務是診斷和改正程序中的錯誤。
(6) 以下程序的輸出結果是【6】.
#include
main()
{ int n=12345,d;
while(n!=0){ d=n%10; printf("%d",d); n/=10;}
}
(7)以下程序運行後的輸出結果是 【7】 。
main()
{
int m=011,n=11;
printf("%d %d\n",++m,n++);
}
(8)有以下程序,若運行時從鍵盤輸入:18,11,則程序輸出結果是 【8】 。
main()
{ int a,b;
printf("Enter a,b:");scanf("%d,%d",&a,&b);
while(a!=b)
{ while(a>b) a-=b;
while(b>a) b-=a;
}
printf("%3d%3d\n",a,b);
}
(9) 有以下程序段,且變數已正確定義和賦值
for(s=1.0,k=1;k<=n;k++) s=s+1.0/(k*(k+1));
printf("s=%f\n\n",s);
請填空,使下面程序段的功能為完全相同
s=1.0;k=1;
while(_【9】_______){ s=s+1.0/(k*(k+1)); _【10】_______;}
printf("s=%f\n\n",s);
(10)執行以下程序的輸出結果是【11】______.
#include
main()
{ int i,n[4]={1};
for(i=1;i<=3;i++)
{ n=n[i-1]*2+1; printf("%d",n); }
}
(11)以下程序中函數f的功能是在數組x的n個數(假定n個數互不相同)中找出最大最小數,將其中最小的數與第一個數對換,把最大的數與最後一個數對換.請填空.
#include
viod f(int x[],int n)
{ int p0,p1,i,j,t,m;
i=j=x[0]; p0=p1=0;
for(m=0;m{ if(x[m]>i) {i=x[m]; p0=m;}
else if(x[m]}
t=x[p0]; x[p0]=x[n-1]; x[n-1]=t;
t=x[p1];x[p1]= _【12】_______; 【13】______=t;
}
main()
{ int a[10],u;
for(u=0;u<10;u++) scanf("%d",&a);
f(a,10);
for(u=0;u<10;u++) printf("%d",a);
printf("\n");
}
(12)下列程序中的函數strcpy2()實現字元串兩次復制,即將t所指字元串復制兩次到s所指內存空間中,合並形成一個新的字元串。例如,若t所指字元串為efgh,調用strcpy2後,s所指字元串為efghefgh。請填空。
#include
#include
void strcpy2(char *s,char *t)
{ char *p=t;
while(*s++=*t++);
s= 【14】 ;
while( 【15】 =*p++);
}
main()
{ char str1[100]="abcd",str2[]="efgh";
strcpy2(str1 ,str2); printf("%s\n",str1);
}
(13)以下程序統計從終端輸入的字元中大寫字母的個數,num[0]中統計字母A的個數,num[1]中統計字母B的個數,其它依次類推.用#號結束輸入,請填空.
#include
#include
main()
{ int num[26]={0},i; char c;
while((_【16】_______)!='#')
if(isupper(c)) num[c-『A』]+= 【17】_______;
for(i=0;i<26;i++)
Printf("%c:%d\n",i+'A',num);
}
(14)以下程序中,函數fun的功能是計算x2-2x+6,主函數中將調用fun函數計算:
y1=(x+8)2-2(x+8)+6
y2=sin2(x)-2sin(x)+6
請填空。
#include "math.h"
double fun(double x) { return(x*x-2*x+6); }
main()
{
double x,y1,y2;
printf("Enter x:"); scanf("%lf",&x);
y1=fun( 【18】 );
y2=fun( 【19】 );
printf("y1=%lf,y2=%lf\n",y1,y2);
}
(15) 以下程序的輸出結果是_【20】______.
#include
#define M 5
#define N M+M
main()
{ int k;
k=N*N*5; printf("%d\n",k);
}
一、選擇題答案:
1-10:CACDC DADBA 11-20:BDDBA CCCCB 21-30:DCBCA CCBCA
31-40:CCDAB DCDAB 41-50:CABCD BBBDB
二、填空題答案:
1.繼承 2. 元組 3.內聚 4.順序 5. 程序調試
6. 54321 7.10 11 8. 1 9.k<=n k++
10. 3 7 5 11.x[0] x[0] 12.s--,*s++ 13.c=getchar() 14. (x+8),sin(x) 15.55
希望對你有所幫助
Ⅲ c語言計算機二級考試選擇題如圖
全國計算機二級考試試題題庫(附答案)
下列各題 A) 、B)、C)、D)四個選項中,只有一個選項是正確的,請將正確選項在答題
卡相應位置上塗黑,答在試卷上不得分。
(1) 應用軟體是指
A) 所有能夠使用的軟體 B) 能被各應用單位共同使用的某種軟體
C) 所有微機上都應使用的基本軟體 D) 專門為某一應用目的而編制的軟體
(2) 下列述敘中錯誤的是
A) 計算機要經常使用不要長期閑置不用
B) 為了延長計算機的壽命,應避免頻繁開關計算機
C) 在計算機附近應避免磁場干擾
D) 計算機用幾小時後,應關機一會兒再用
(3) 下列字元中,ASCII碼值最小的是
A) A B) a C) Z D) x
(4) 用晶體管作為電子器件製成的計算機屬於
A) 第一代 B) 第二代 C) 第三代 D) 第四代
(5) 下列各不同進制的四個無符號數中,最小的數是
A) ()2 B) (37)8 C) (75)10 D) (2A)16
(6) 二進制數轉換成十六進制數是
A) B) C) D)
(7) 下列各無符號十進制數中,能用八位二進製表示的是
A) 296 B) 333 C) 256 D) 199
(8) 計算機的軟體系統可分類為
A) 程序與數據 B) 系統軟體與應用軟體
D) 操作系統與語言處理程序 D) 程序、數據與文檔
(9) 486機中的CPU同時能處理的二進制位數為
A) 8 B) 16 C) 32 D) 64
(10) 在使用計算機的過程中,需要重新啟動DOS,則要
A) 按Ctrl+Break鍵 B) 按^C鍵 C) 按Ctrl+Alt+Del鍵 D) 按^H鍵
(11) 現要從軟盤啟動DOS(軟盤中已存有DOS系統),設有如下一些操作:①打開計算機
電源;②將該軟盤插入A驅動器;③關好A驅動器門。則冷啟動的操作順序應為
A) ①→②→③ B) ③→②→① C) ②→①→③ D) ②→③→①
(12) 設當前盤中某一文件路徑為\A\C\B\,當前目錄為\A。下列命令中錯誤的是
A) CD.. B) RD \A\C\B
C) TYPE \A\C\B\ D) TYPE C\B\
(13) 設當前盤中的根目錄下有一子目錄AB,在子目錄AB下有一文件。現要查看文件
的內容,應使用命令
A) TYPE \AB B) TYPE \AB\
C) TYPE \ D) DIR \AB\
(14) 自動批處理文件必須放在
A) C盤根目錄中 B) A盤根目錄中
C) 啟動盤的任一個目錄中 D) 啟動盤的根目錄中
(15) 設當前盤當前目錄為C:\USER\XY\P,且當前盤當前目錄為空,則下列命令中能正
確執行的是
A) RD C:\USER\XY\P B) RD USER\XY\P
C) MD \USER\XY\P\USER D) MD \USER\XY\P\X\Y
(16) 下列DOS命令中,合法的是
A) DISKCOMP B) TYPE >>
C) COMP A: B: D) COMP A: A:
(17) 設當前盤為C盤,所用的所有軟盤已格式化,且容量相同,則下列DOS命令中錯
誤的是
A) DISKCOPY A: A: B) COPY A:*.* C) COPY *.* D) COPY A:*.* C:
(18) 下列DOS命令中錯誤的是
A) TYPE >PRN B) TYPE PRN
C) COPY *.TXT PRN D) COPY CON PRN
(19) 下列四組DOS命令中,互相等價的一組是
A) COPY A:*.* B:與DISKCOPY A: B:
B) COPY +與TYPE >>
C) COPY + 與COPY +
D) TYPE *.FOR>CON與COPY *.FOR CON
(20) 設C盤目錄結構如下:
且C盤根目錄下文件的內容為
CD FORTRAN
CD \TC
如果在A驅動器中插入一張根目錄中只有擴展名為.C的若干文件(即A盤中無DOS系統
文件)的軟碟片,則由C盤啟動DOS系統後,第一次鍵入下列命令中,正確的是
A) COPY A:\*.C B) COPY A:\*.C TC
C) COPY A:\*.C FORTRAN D) CD USER
(21) C語言提供的合法的數據類型關鍵字是
A) Double B) short C) integer D) Char
(22) 在C語言中,合法的長整型常數是
A) 0L B) 4962710 C) D)
(23) 表達式:10!=9的值是
A) true B) 非零值 C) 0 D) 1
(24) 合法的C語言中,合法的長整型常數是
A) '\t' B) "A" C) 65 D) A
(25) 若有說明和語句:
int a=5;
a++;
此處表達式a++的值是
A) 7 B) 6 C) 5 D) 4
(26) 在下列選項中,不正確的賦值語句是
A) ++t; B) n1=(n2=(n3=0)); C) k=i==j; D) a=b+c=1;
(27) 若有說明:int i,j=7, *p=&i;,則與i=j;等價的語句是
A) I= *P; B) *P=*&J; C) i=&j; D) i=* *p;
(28) 不能把字元串:Hello!賦給數組b的語句是
A) char b[10]={'H','e','l','l','o','!'};
B) char b[10];b="Hello!";
C) char b[10];strcpy(b,"Hello!");
D) char b[10]="Hello!";
(29) 若有以下說明:
int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};
char c='a',d,g;
則數值為4的表達式是
A)a[g-c] B)a[4] C)a['d'-'c'] D)a['d'-c]
(30) 若有以下說明:
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
則數值為6的表達式是
A) *p+6 B) *(p+6) C) *p+=5 D) p+5
(31) 若有以下說明:
int w[3][4]o={{0,1},{2,4},{5,8}};
int(*p)[4]=w;
則數值為4的表達式是
A) *w[1]+1 B) p++,*(p+1) C) w[2][2] D) p[1][1]
(32) 若程序中有下面的說明和定義
struct abc
{int x;char y;}
struct abc s1,s2;
則會發生的情況是
A) 編譯進錯 B) 程序將順利編譯`連接`執行
C) 能順利通過編譯`連接`但不能執行 D) 能順利通過編譯`但連接出錯
(33) 能正確表示a≥10或a≤0的關系表達式是
A)a>=10 or a<=0 B)a>=10│a<=0
C)a>=10││a<=0 D)a>=10 ││a<=0
(34) 下面程序的輸出是
main()
{ int x=3,y=6,a=0;
while(x++!=(y+=o1))
{ a+o=1;
if(y
#include
main()
{ char ss[10]="12345";
strcat(ss,"6789");
gets(ss);printf("%s\n",ss);
}
A) ABC B) ABC9 C) 123456ABC D) ABC456789
(35) 下面程序的輸出是
main()
{ char *a="";
int v1=0,v2=0,v3=0,v4=0,k;
for(k=0;s[k];k++)
switch(s[k])
{ default:v4++;
case '1': v1++;
case '3': v3++;
case '2': v2++; }
printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4); }
A) v1=4,v2=2,v3=1,v4=1 B) v1=4,v2=9,v3=3,v4=1
C) v1=5,v2=8,v3=6,v4=1 D) v1=8,v2=8,v3=8,v4=8
(36) 下面程序的輸出是
main()
{int k=11;printf("k=%d,k=%o,k=%x\n",k,k,k);}
A)k=11,k=12,k=11 B)k=11,k=13,k=13 C)k=11,k=013,k=0xb D)k=11,k=13,k=b
(37) 若有以下程序段,w和k都是整型變數:
┆
w=k;
LB: if(w==0) go to LE;
w--;
printf("*");
goto LB;
LE: ┆
則不能與上面程序段等價的循環語句是
A)for(w=k;w!=0;w--) printf("*"); B)for(w=k;w;--w)printf("*");
C)w=k; D)w=k;
while(w--!=0)printf("*");w++; do{ w--;printf("*");}while(w!=0);
(38) 若有說明,double *p,a;則能通過scanf語句正確給輸入項讀入數據的程序段是
A)*p=&a; scanf("%lf",p); B)p=(double *)malloc(8);scanf("%f",p);
C) p=&a;scanf("%lf",a); D)p=&a; scanf("%le",p);
(39) 當執行下面程序且輸入:ABC時,輸出的結果是
#include
#include
main()
{ char ss[10]="12345";
gets(ss);printf("%s\n",ss); }
A) ABC B) ABC9 C) 123456ABC D) ABC456789
(40) 若有以下的說明和語句:
main()
{int t[3][2], *pt[3],k;
fpr(k=o; k<3;k++)pt[k]=t[k];
}
則以一選項中能正確表示t數組元素地址的表達式是
A) &t[3][2] B) *pt[0] C) *(pt+1) D) &pt[2]
(41) 下面程序輸出數組中的最大值,由s指針指向該元素.
main()
{ int a[10]={6,7,2,9,1,10,5,8,4,3,},*p,*s;
flr(p=a, s=a; p-a<10; p++)
if(---?---)s=p;
printf("The max:%d",*s):
}
則在if語句中的判斷表達式應該是
A) p>s B) *p>*s C) a[p]>a[s] D) p-a>p-s
(42) 下面程序的輸出是
#include
main()
{ char*a="abcdefgh";
fun(a);puts(a); }
fun (char * s)
{ int x=0,y;char c;
for(y=strlen(s)-1;x
A)abcdefgh B)hgfdecba C)dcbahgfe D)hgfedcba
(43) 若有以下函數調用語句: fun(a+b,(x,y),fun(n+k,d,(a,b)));在此函數調用語句
中實參的個數是
A)3 B)4 C)5 D)6
(44) 下面程序的輸出是
main()
{ int t=1; fun(fun(t));}
fun(int h)
{ static int a[3]={1,2,3};
int k;
for(k=0;k<3;k++) a[k]+=a[k]-h;
for(k=1;k<3;k++) printf("%d",a[k]);
printf("\n"); return(a[h]);}
A)1,2,3, B)1,3,5, C) 1,3,5, D) 1,3,5,
1,5,9, 1,3,5, 0,4,8, -1,3,7,
(45) C語言中,函數的隱含存儲類別是
A)auto B)static C)extern D)無存儲類別
(46) 下面程序的輸出是
int w=3;
main()
{ int w=10; printf("%d\n",fun(5)*w); }
Ⅳ 全國計算機等級考試二級c語言考的是題庫里的題嗎都是歷年的題庫嗎題庫在哪買,會考原題嗎
基本都是沒有原題也有類似題像這種題目練習幾遍基本也都會了都是歷年真題,題庫每年都會有更新的。淘寶有賣,未來教育和新思路不錯我都有用過
Ⅳ 求全國計算機等級考試二級C語言的真題
http://yunpan.cn/QCwVZT2HztQcE 訪問密碼 6dbd
Ⅵ 備戰全國計算機二級C語言程序設計考試,有沒有什麼在線刷題的考試模擬模擬軟體
在線刷題的考試模擬模擬軟體
首先我們先看下軟體展示圖,後面是軟體!
圖:

1、全國計算機等級考試超級模擬軟體。
匯聚了多年開發全國計算機等級考試模擬軟體的豐富經驗,並綜合有經驗的命題專家、教授和全國各地考點一線教師的建議基礎上研製而成。本套軟體採用模擬考試形式,以大量的習題練習,強化考生的應考能力。
2、捷成全國計算機等級考試練習系統。
上機考試系統提供了歷屆考試題100套,並附有試題分析和參考答案,可以幫助考生熟悉考試模式,提高應試能力,測試實際操作和應變能力,自己評定成績,對正式考試時能否通過進行初步的估計。
3、未來教育2017二級msoffice模擬軟體
以其模式的高專業度,題庫權威度而聞名業界,它聚合歷年真題加以分析從而提出權威預測,效果非常不錯。
Ⅶ 全國計算機等級考試二級C語言的考試題目都是從《C語言題庫》裡面抽取的題目嗎
全國計算機等級考試二級C語言的考試題目的小題不是從《C語言題庫》中抽取的,後面的大題即編程題全部是從最近的一年的《C語言題庫》中抽取的。考題大部分是C語言,少部分是演算法與數據結構裡面的東西。就算不是《C語言題庫》題庫里的題,但是題型都差不多的。
c語言是一門面向過程、抽象化的通用程序設計語言,廣泛應用於底層開發。C語言具有高效、靈活、功能豐富、表達力強和較高的可移植性等特點,在程序設計中備受青睞。C語言編譯器普遍存在於各種不同的操作系統中,例如Microsoft Windows、macOS、Linux、Unix等。C語言的設計影響了眾多後來的編程語言,例如C++、Objective-C、Java、C#等。

