『壹』 急求計算機二級考試的試題(c語言)
05年4月全國計算機二級C語言考試試題及答案
(1)數據的存儲結構是指 D
(A)存儲在外存中的數據 (B)數據所佔的存儲空間量
(C)數據在計算機中的順序存儲方式 (D)數據的邏輯結構在計算機中的表示
(2)下列關於棧的描述中錯誤的是 B
(A)棧是先進後出的先性表
(B)棧只能順序存儲
(C)棧具有記憶作用
(D)對棧的插入和刪除操作中,不需要改變棧底指針
(3)對於長度為N的線性表,在最壞的情況下,下列各排序法所對應的比較次數中正確的是D
(A)冒泡排序為N/2 (B)冒泡排序為N
(C)快速排序為N (D)快速排序為N(N-1)/2
(4)對長度為N的線性表進行順序查找,在最壞的情況下所需要的比較次數為 C
(A)log2n (B)n/2 (C)n (D)n+1
(5)下列對於線性表的描述中正確的是 A
A)存儲空間不一定是連續,且各元素的存儲順序是任意的
B)存儲空間不一定是連續,且前件元素一定存儲在後件元素的前面
C)存儲空間必須連續,且各前件元素一定存儲在後件元素的前面
D)存儲空間必須連續,且各元素的存儲順序是任意的
(6)下列對於軟體測試的描述中正確的是 C
A)軟體測試的目的是證明程序是否正確
B)軟體測試的目的是使程序運行結果正確
C)軟體測試的目的是盡可能地多發現程序中的錯誤
D)軟體測試的目的是使程序符合結構化原則
(7)為了使模塊盡可能獨立,要求 B
(A)模塊的內聚程度要盡量高,且各模塊間的耦合程度要盡量強
(B)模塊的內聚程度要盡量高,且各模塊間的耦合程度要盡量弱
(C)模塊的內聚程度要盡量低,且各模塊間的耦合程度要盡量弱
(D)模塊的內聚程度要盡量低,且各模塊間的耦合程度要盡量強
(8)下列描述中正確的是 D
(A)程序就是軟體 (B)軟體開發不受計算機系統的限制
(C)軟體既是邏輯實體,又是物理實體 (D)軟體是程序、數據與相關文檔的集合
(9)數據獨立性是資料庫技術的重要特點之一.所謂數據獨立性是指 D
(A)數據與程序獨立存放
(B)不同的數據被存放在不同的文件中
(C)不同的數據只能被對應的應用程序所使用
(D)以上三種說法都不對
(10)用樹形結構表示實體之間聯系的模型是 C
(A)關系模型 (B)網狀模型 (C)層次模型 (D)以上三個都是
(11)演算法具有五個特性,以下選項中不屬於演算法特性的是 B
(A)有窮性 (B)簡潔性 (C)可行性 (D)確定性
(12)以下選項中可作為C語言合法常量的是 A
(A)-80. (B)-080 (C)-8e1.0 (D)-80.0e
(13)以下敘述中正確的是 C
(A)用C語言實現的演算法必須要有輸入和輸出操作
(B)用C語言實現的演算法可以沒有輸出但必須要有輸入
(C)用C程序實現的演算法可以沒有輸入但必須要有輸出
(D)用C程序實現的演算法可以既沒有輸入也沒有輸出
(14)以下不能定義為用戶標識符是 D
(A)Main (B)_0 (C)_int (D)sizeof
(15)以下選項中,不能作為合法常量的是 B
(A)1.234e04 (B)1.234e0.4 (C)1.234e+4 (D)1.234e0
(16)數字字元0的ASCII值為48,若有以下程序 C
main()
{
char a=』1』,b=』2』;
printf("%c,",b++);
printf("%d\n",b-a);
}
程序運行後的輸出結果是
(A)3,2 (B)50,2 (C)2,2 (D)2,50
(17)有以下程序 A
main()
{
int m=12,n=34;
printf("%d%d",m++,++n); printf("%d%d\n",n++,++m);
}
程序運行後的輸出結果是
(A)12353514 (B)12353513 (C)12343514 (D)12343513
(18)有以下語句:int b;char c[10];,則正確的輸入語句是 B
A)scanf("%d%s",&b,&c); B) scanf("%d%s",&b,c);
c)scanf("%d%s",b,c); D)scanf("%d%s",b,&c);
(19)有以下程序 A
main()
{
int m,n,p;
scanf("m=%dn=%dp=%d",&m,&n,&p);
printf("%d%d%d\n",m,n,p);
}
若想從鍵盤上輸入數據,使變數M中的值為123,N中的值為456,P中的值為789,則正確的輸入是
A)M=123N=456P=789 B)M=123 N=456 P=789 C)M=123,N=456,P=789 D)123 456 789
(20)有以下程序 B
main()
{
int a,b,d=25;
a=d/10%9;b=a&&(-1);
printf("%d,%d\n",a,b);
}
程序運行後的輸出結果是
A)6,1 B)2,1 C)6,0 D)2,0
(21)有以下程序 D
main()
{
int i=1,j=2,k=3;
if(i++==1&&(++j==3||k++==3))
printf("%d %d %d\n",i,j,k);
}
程序運行後的輸出結果是
(A)1 2 3 (B)2 3 4 (C)2 2 3 (D)2 3 3
(22)若整型變數a、b、c、d中的值依次為:1、4、3、2。
則條件表達式aA) 1 B)2 C)3 D)
(23)有以下程序 B
main()
{
int p[8]={11,12,13,14,15,16,17,18},i=0,j=0;
while(i++<7) if(p[i]%2) j+=p[i];
printf("%d\n",j);
}
程序運行後的輸出結果是
A)42 B)45 C)56 D)60
(24)有以下程序 C
main()
{
char a[7]="a0\0a0\0"; int i,j;
i=sizeof(a); j=strlen(a);
printf("%d %d\n",i,j);
}
程序運行後的輸出結果是
A)2 2 B)7 6 C)7 2 D)6 2
(25)以下能正確定義一維數組的選項是 B
A)int a[5]={0,1,2,3,4,5}; B)char a[]={0,1,2,3,4,5};
C)char a={』A』,』B』,』C』}; D)int a[5]="0123";
(26)有以下程序 A
int f1(int x,int y){return x>y?x:y;}
int f2(int x,int y){return x>y?y:x;}
main()
{
int a=4,b=3,c=5,d=2,e,f,g;
e=f2(f1(a,b),f1(c,d)); f=f1(f2(a,b),f2(c,d));
g=a+b+c+d-e-f;
printf("%d,%d,%d\n",e,f,g);
}
程序運行後的輸出結果是
A)4,3,7 B)3,4,7 C)5,2,7 D)2,5,7
27)已有定義:char a[]="xyz",b[]={』x』,』y』,』z』};,以下敘述中正確的是 C
A)數組a和b的長度相同 B)a數組長度小於b數組長度
C)a數組長度大於b數組長度 D)上述說法都不對
28)有以下程序 D
void f(int *x,int *y)
{
int t;
t=*x;*x=*y;*y=t;
}
main()
{
int a[8]={1,2,3,4,5,6,7,8},i,*p,*q;
p=a;q=&a[7];
while(p{f(p,q);p++;q--;}
for(i=0;i<8;i++)printf("%d,",a[i]);
}
程序運行後的輸出結果是
A)8,2,3,4,5,6,7,1, B)5,6,7,8,1,2,3,4,
C)1,2,3,4,5,6,7,8, D)8,7,6,5,4,3,2,1,
29)有以下程序 D
main()
{
int a[3][3],*p,i;
p=&a[0][0];
for(i=0;i<9;i++)p[i]=i;
for(i=0;i<3;i++)printf("%d",a[1][i]);
}
程序運行後的輸出結果是
A)0 1 2 B)1 2 3 C)2 3 4 D)3 4 5
(30)以下敘述中錯誤的是 A
A)對於double類型數組,不可以直接用數組名對數組進行整體輸入或輸出
B)數組名代表的是數組所佔存儲區的首地址,其值不可改變
C)當程序執行中,數組元素的下標超出所定義的下標范圍時,系統將給出"下標越界"的出錯信息
D)可以通過賦初值的方式確定數組元素的個數
(31)有以下程序 C
#define N 20
fun(int a[],int n,int m)
{int i,j;
for(i=m;i>=n;i--)a[i+1]=a[i];
}
main()
{
int i,a[N]={1,2,3,4,5,6,7,8,9,10};
fun(a,2,9);
for(i=0;i<5;i++)printf("%d",a[i]);
}
程序運行後的輸出結果是
A)10234 B)12344 C)12334 D)12234
32)有以下程序 B
main()
{
int a[3][2]={0},(*ptr)[2],i,j;
for(i=0;i<2;i++)
{ptr=a+i;scanf("%d",ptr);ptr++;}
for(i=0;i<3;i++)
{for(j=0;j<2;j++)printf("-",a[i][j]);
printf("\n");
}
}
若運行時輸入:1 2 3<回車>,則輸出結果是
A)產生錯誤信息 B)1 0 C)1 2 D)1 0
2 0 3 0 2 0
0 0 0 0 3 0
33)有以下程序 B
prt(int *m,int n)
{int i;
for(i=0;i)
main()
{
int a[]={1,2,3,4,5},i;
prt(a,5);
for(i=0;i<5;i++)
printf("%d,",a[i]);
}
程序運行後的輸出結果是
A}1,2,3,4,5, B}2,3,4,5,6, C}3,4,5,6,7, D}2,3,4,5,1,
34)有以下程序 A
main()
{int a[]={1,2,3,4,5,6,7,8,9,0},*p;
for(p=a;p}
程序運行後的輸出結果是
A)1,2,3,4,5,6,7,8,9,0, B)2,3,4,5,6,7,8,9,10,1,
C)0,1,2,3,4,5,6,7,8,9, D)1,1,1,1,1,1,1,1,1,1,
35)有以下程序 D
#define P 3
void F(int x){return(P*x*x);}
main()
{printf("%d\n",F(3+5));}
程序運行後的輸出結果是
A)192 B)29 C)25 D)編譯出錯
36)有以下程序 C
main()
{int c=35;printf("%d\n",c&c);}
程序運行後的輸出結果是
A)0 B)70 C)35 D)1
37)以下敘述中正確的是 D
A)預處理命令行必須位於源文件的開頭
B)在源文件的一行上可以有多條預處理命令
C)宏名必須用大寫字母表示
D)宏替換不佔用程序的運行時間
38)若有以下說明和定義 C
union dt
{int a;char b;double c;}data;
以下敘述中錯誤的是
A)data的每個成員起始地址都相同
B)變數data所佔的內存位元組數與成員c所佔位元組數相等
C)程序段:data.a=5;printf("%f\n",data.c);輸出結果為5.000000
D)data可以作為函數的實參
39)以下語句或語句組中,能正確進行字元串賦值的是 C
A)char *sp;*sp="right!"; B)char s[10];s="right!";
C)char s[10];*s="right!"; D)char *sp="right!";
40)設有如下說明 C
typedef struct ST
{long a;int b;char c[2];}NEW;
則下面敘述中正確的是
A)以上的說明形式非法 B)ST是一個結構體類型
C)NEW是一個結構體類型 D)NEW是一個結構體變數
41)有以下程序 B
main()
{int a=1,b;
for(b=1;b<=10;b++)
{if(a>=8)break;
if(a%2==1){a+=5;continue;}
a-=3;
}
printf("%d\n",b);
}
程序運行後的輸出結果是
A) 3 B) 4 C)5 D) 6
42)有以下程序 A
main()
{char s[]="159",*p;
p=s;
printf("%c",*p++);printf("%c",*p++);
}
程序運行後的輸出結果是
A)15 B)16 C)12 D)59
43)有以下函數 D
fun(char *a,char *b)
{while((*a!=』\0』)&&(*b!=』\0』)&&(*a==*b))
{a++;b++;}
return(*a-*b);
}
該函數的功能是
A)計算a和b所指字元串的長度之差
B)將b所指字元串連接到a所指字元串中
C)將b所指字元串連接到a所指字元串後面
D)比較a和b所指字元串的大小
44)有以下程序 B
main()
{int num[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j;
for(i=0;i<4;i++)
{for(j=0;j<=i;j++)printf("L",』 』);
for(j=_____;j<4;j++)printf("M",num[i][j]);
printf("\n");
}
}
若要按以下形式輸出數組右上半三角
1 2 3 4
6 7 8
11 12
16
則在程序下劃線處應填入的是
A)i-1 B)i C)i+1 D)4-i
45)有以下程序 D
point(char *p){p+=3;}
main()
{char b[4]={』a』,』b』,』c』,』d』},*p=b;
point(p);printf("%c\n",*p);
}
程序運行後的輸出結果是
A)a B)b C)c D)d
46)程序中若有如下說明和定義語句 A
char fun(char *);
main()
{
char *s="one",a[5]={0},(*f1)()=fun,ch;
......
}
以下選項中對函數fun的正確調用語句是
A)(*f1)(a); B)*f1(*s); C)fun(&a); D)ch=*f1(s);
47)有以下結構體說明和變數定義,如圖所示,
指針p、q、r分別指向此鏈表中的三個連續結點。
struct node
{int data;struct node *next;}*p,*q,*r;
現要將Q所指結點從鏈表中刪除,同時要保持鏈表的連續,
以下不能完成指定操作的語句是 D
A)P->next=q->next; B)p->next=p->next->next;
c)p->next=r; D)p=q->next;
48)以下對結構體類型變數td的定義中,錯誤的是 C
A)typedef struct aa B)struct aa C)struct D)struct
{int n; {int n; {int n; {int n;
float m; float m; float m; float m;
}AA; }td; }aa; }td;
AA td; struct aa td; struct aa td;
49)以下與函數fseek(fp,0L,SEEK_SET)有相同作用的是 D
A)feof(fp) B)ftell(fp) C)fgetc(fp) D)rewind(fp)
50)有以下程序 B
#include
void WriteStr(char *fn,char *str)
{FILE *fp;
fp=fopen(fn,"w");fputs(str,fp);fclose(fp);
}
main()
{
WriteStr("t1.dat","start");
WriteStr("t1.dat","end");
}
程序運行後,文件t1.dat中的內容是
A)start B)end C)startend D)endrt
1.某二叉樹中度為2的結點有18個,則該二叉樹中有______個葉子結點。
答案:19
2.在面向對象方法中,類的實例稱為____.
答案:對象
3.診斷和改正程序中錯誤的工作通常稱為______.
答案:調試
4.在關系資料庫中,把數據表示成二維表,每一個二維表稱為_____
答案:關系
5.問題處理方案的正確而完整的描述稱為___
答案:演算法
6.以下程序運行時若從鍵盤輸入:10 20 30<回車>.輸出結果是______
#include
main()
{
int i=0,j=0,k=0;
scanf("%d%*d%d",&i,&j,&k);printf("%d%d%d\n",i,j,k);
}
答案:10 30 0
7.以下程序運行後的輸出結果是____
#define S(x) 4*x*x+1
main()
{
int i=6,j=8;
printf("%d\n",S(i+j));
}
答案:81
*8.以下程序運行後的輸出結果是_____
main()
{int a=3,b=4,c=5,t=99;
if(b if(a printf("%d%d%d\n",a,b,c);
}
答案:4399
9.以下程序運行後的輸出結果是____
main()
{
int a,b,c;
a=10;b=20;c=(a%b<1)||(a/b>1);
printf("%d %d %d\n",a,b,c);
}
答案:10 20 0
10.以下程序運行後的輸出結果是___
main()
{char c1,c2;
for(c1=』0』,c2=』9』;c1printf("\n");
)
答案:0918273645
11.已知字元A的ASCII代碼值為65,以下程序運行時若從鍵盤輸入:B33<回車>.則
輸出結果是_____
#include
main()
{char a,b;
a=getchar();scanf("%d",&b);
a=a-』A』+』0』;b=b*2;
printf("%c %c\n",a,b);
}
答案:1 B
12.以下程序中,fun函數的功能是求3行4列二維數組每行元素中的最大值.請填空
void fun(int,int,int(*)[4],int *);
main()
{int a[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},b[3],i;
fun(3,4,a,b);
for(i=0;i<3;i++)printf("M",b[i]);
printf("\n");
}
void fun(int m,int n,int ar[][4],int *bar)
{
int i,j,x;
for(i=0;i {x=ar[i][0];
for(j=0;j ________=x;
)
}
)
答案:bar[i]
13.以下程序運行後的輸出結果是______
void swap(int x,int y)
{ int t;
t=x;x=y;y=t;printf("%d %d ",x,y);
}
main()
{ int a=3,b=4;
swap(a,b);printf("%d %d\n",a,b);
}
答案:4 3 3 4
14.以下程序運行後的輸出結果是____
#include
void fun(char *s,int p,int k)
{int i;
for(i=p;i)
main()
{char s[]="abcdefg";
fun(s,3,strlen(s));puts(s);
}
答案:abcfg
17.以下程序運行後的輸出結果是______
struct NODE
{int k;
struct NODE *link;
};
main()
{ struct NODE m[5],*p=m,*q=m+4;
int i=0;
while(p!=q)
{p->k=++i;p++;
q->k=i++;q--;
}
q->k=i;
for(i=0;i<5;i++)printf("%d",m[i].k);
printf("\n");
}
答案:13431
18.以下程序中函數huiwen的功能是檢查一個字元串是否是迴文,當字元串是迴文時,
函數返回字元串:yes!,否則函數返回字元串:no!,並在主函數中輸出.所謂迴文即
正向與反向的拼寫都一樣,例如:adgda.請填空.
#include
char *huiwen(char *str)
{char *p1,*p2;int i,t=0;
p1=str;p2=______;
for(i=0;i<=strlen(str)/2;i++)
if(*p1++!=*p2--){t=1;break;}
if(____)return("yes!");
else return("no!");
}
main()
{char str[50];
printf("Input:");scanf("%s",str);
printf("%s\n",______);
}
答案:18) str+(strlen(str)-1)
19) !t
20) huiwen(str)
『貳』 全國計算機等級考試二級教程C語言程序設計(2021版)pdf版這本書誰有啊
建議買一本,為什麼我這么說呢,電子書復習和紙質版書籍復習的差距還是比較大的,我又以前的版本,今年的版本沒有,加油,祝你考試順利!
『叄』 全國計算機等級考試教程二級C語言pdf 要完整版的。急求!!!百度雲鏈接。。加好友分享也行。
已經上傳網路知道了,你用電腦看這個問題就可以下載了,或者怎麼發你
『肆』 《C程序設計語言第2版·新版》pdf下載在線閱讀全文,求百度網盤雲資源
《C程序設計語言(第2版·新版)》([美] Brian W. Kernighan)電子書網盤下載免費在線閱讀
鏈接: https://pan..com/s/1txJqYzmjYS-BSw43eLWrnQ
書名:C程序設計語言(第2版·新版)
作者:[美] Brian W. Kernighan
譯者:徐寶文
豆瓣評分:9.4
出版社:機械工業出版社
出版年份:2004-1
頁數:258
內容簡介:
在計算機發展的歷史上,沒有哪一種程序設計語言像C語言這樣應用廣泛。本書作者是C語言的設計者之一Dennis M. Ritchie和著名計算機科學家Brian W. Kernighan合著的一本介紹C語言的權威經典著作。我們現在見到的大量論述C語言程序設計的教材和專著均以此書為藍本。
原著第1版中介紹的C語言成為後來廣泛使用的C語言版本——標准C的基礎。人們熟知的「hello,World"程序就是由本書首次引入的,現在,這一程序已經成為眾多程序設計語言入門的第一課。原著第2版根據1987年制定的ANSIC標准做了適當的修訂.引入了最新的語言形式,並增加了新的示例,通過簡潔的描述、典型的示例,作者全面、系統、准確地講述了C語言的各個特性以及程序設計的基本方法。
對於計算機從業人員來說,本書是一本必讀的程序設計語言方面的參考書。
作者簡介:
Brian W. Kernighan,貝爾實驗室計算科學研究中心高級研究人員,著名的計算機科學家。參加了UNIX系統、C語言、AWK語言和許多其他系統的開發,同時出版了許多在計算機領域具有影響的著作,如《The Elements of Programming Style》《The Practice of Programming》《The UNIX Programming Environment》《The AWK Language》《Software Tools》等。
Dennis M. Ritchie,1967年加入貝爾實驗室。他和 Ken L. Thompson 兩人共同設計並實現的C語言改變了程序設計語言發展的軌跡,是程序設計語言發展過程中的一個重要里程碑。與此同時,他們還設計並實現了UNIX操作系統。正是由於這兩項巨大貢獻,Dennis M. Ritchie 於1983年獲得了計算機界的最高獎——圖靈獎。此外,他還獲得了ACM、IEEE、貝爾實驗室等授予的多種獎項.。
『伍』 求2011年9月計算二級c語言南開百題上機考試題庫電子版。pdf版也行麻煩您發到我的郵箱[email protected]
發你兩份,滿意推。
『陸』 求2011年九月以及以前的計算機二級考試C語言試題及答案、以及考試內容分析和解題技巧。記住只要C的。
(1)下面敘述正確的是________。
A)演算法的執行效率與數據的存儲結構無關
B)演算法的空間復雜度是指演算法程序中指令(或語句)的條數
C)演算法的有窮性是指演算法必須能在執行有限個步驟之後終止
D)演算法的時間復雜度是指執行演算法程序所需要的時間
(1)C
知識點:演算法的基本概念;演算法復雜度的概念和意義(時間復雜度與空間復雜度)
評 析:演算法的設計可以避開具體的計算機程序設計語言,但演算法的實現必須藉助程序設計語言中提供的數據類型及其演算法。數據結構和演算法是計算機科學的兩個重要支柱。它們是一個不可分割的整體。演算法在運行過程中需輔助存儲空間的大小稱為演算法的空間復雜度。演算法的有窮性是指一個演算法必須在執行有限的步驟以後結束。演算法的時間復雜度是指執行演算法所需要的計算工作量,即演算法執行過程中所需要的基本運算次數。
(2)以下數據結構屬於非線性數據結構的是________。
A)隊列 B)線性表 C)二叉樹 D)棧
(2)C
知識點:棧和隊列的定義;棧和隊列的順序存儲結構及其基本運算
評 析:線性表、棧和隊列等數據結構所表達和處理的數據以線性結構為組織形式。棧是一種特殊的線性表,這種線性表只能在固定的一端進行插入和刪除操作,允許插入和刪除的一端稱為棧頂,另一端稱為棧底。一個新元素只能從棧頂一端進入,刪除時,只能刪除棧頂的元素,即剛剛被插入的元素。所以棧又稱後進先出表(Last In First Out)。隊列可看作是插入在一端進行,刪除在另一端進行的線性表,允許插入的一端稱為隊尾,允許刪除的一端稱為隊頭。在隊列中,只能刪除隊頭元素,隊列的最後一個元素一定是最新入隊的元素。因此隊列又稱先進先出表(First In First Out)。二叉樹的數據結構是樹型結構,結構中數據元素之間存在著一對多的關系,因此它是一種非線性數據結構。
(3)在一棵二叉樹上第8層的結點數最多是________。
A)8 B)16 C)128 D)256
(3)C
知識點:二叉樹的定義及其存儲結構
評 析:根據二叉樹的性質:二叉樹第i(I>1)層上至多有2i-1個結點。得到第8層的結點數最多是128。
(4)下面描述中,不符合結構化程序設計風格的是________。
A)使用順序、選擇和重復(循環)三種基本控制結構表示程序的控制邏輯
B)自頂向下
C)注重提高程序的執行效率
D)限制使用goto語句
(4)C
知識點:結構化程序設計
評 析:結構化程序設計方法的四條原則是:1.自頂向下:2.逐步求精;3.模塊化;4.限制使用goto語句。「自頂向下」是說,程序設計時,應先考慮總體,後考慮細節,先考慮全局目標,後考慮局部目標;「逐步求精』』是說,對復雜問題,應設計一些子目標作過渡,逐步細節化;「模塊化」是說,一個復雜問題肯定是由若干稍簡單的問題構成,解決這個復雜問題的程序,也應對應若干稍簡單的問題,分解成若干稍小的部分。
(5)下面概念中,不屬於面向對象方法的是________。
A)對象、消息 B)繼承、多態 C)類、封裝 D)過程調用
(5)D
知識點:面向對象的程序設計方法、對象、方法、屬性及繼承與多態性
評 析:面向對象方法是一種運用對象、類、封裝、繼承、多態和消息等概念來構造、測試、重構軟體的方法。面向對象方法從對象出發,發展出對象、類、消息、繼承等概念。
(6)在結構化方法中,用數據流程圖(DFD)作為描述工具的軟體開發階段是________。
A)可行性分析 B)需求分析 C)詳細設計 D)程序編碼
(6)B
知識點:結構化設計方法
評 析:軟體開發階段包括需求分析、總體設計、詳細設計、編碼和測試五個階段。其中需求分析階段常用的工具是數據流程圖和數據字典。
(7)軟體生命周期中所花費用最多的階段是________。
A)詳細設計 B)軟體編碼 C)軟體測試 D)軟體維護
(7)D
知識點:軟體工程基本概念,軟體生命周期概念,軟體工具與軟體開發環境
評 析:軟體生命周期分為軟體定義、軟體開發及軟體運行維護3個階段。本題中詳細設計、軟體編碼和軟體測試都屬於軟體開發階段;維護是軟體生命周期的最後一個階段,也是持續時間最長,花費代價最大的一個階段,軟體工程學的一個目的就是提高軟體的可維護性,降低維護的代價。
(8)資料庫系統的核心是________。
A)數據模型 B)DBMS C)軟體工具 D)資料庫
(8)B
知識點:資料庫的基本概念:資料庫,資料庫管理系統,資料庫系統
評 析:資料庫管理系統DBMS是資料庫系統的核心。DBMS是負責資料庫的建立、使用和維護的軟體。DBMS建立在操作系統之上,實施對資料庫的統一管理和控制。用戶使用的各種資料庫命令以及應用程序的執行,最終都必須通過DBMS。另外,DBMS還承擔著資料庫的安全保護工作,按照DBA所規定的要求,保證資料庫的完整性和安全性。
(9)下列敘述中正確的是________。
A)數據處理是將信息轉化為數據的過程
B)資料庫設計是指設計資料庫管理系統
C)如果一個關系中的屬性或屬性組並非該關系的關鍵字,但它是另一個關系的關鍵
字,則稱其為本關系的外關鍵字
D)關系中的每列稱為元組,一個元組就是一個欄位
(9)C
知識點:數據模型,實體聯系模型及E-R圖,從E-R圖導出關系數據模型
評 析:數據處理是指將數據轉換成信息的過程,故選項A敘述錯誤;設計資料庫的目的實質上是設計出滿足實際應用需求的實際關系模型,故選項B敘述錯誤;關系中的行稱為元組,對應存儲文件中的記錄,關系中的列稱為屬性。對應存儲文件中的欄位,故D選項敘述錯誤。
(10)下列模式中,_______是用戶模式。
A)內模式 B)外模式 C)概念模式 D)邏輯模式
(10)B
知識點:資料庫的基本概念:資料庫,資料庫管理系統,資料庫系統
評 析:資料庫管理系統的三級模式結構由外模式、模式和內模式組成。外模式,或稱子模式,或稱用戶模式,是指資料庫用戶所看到的數據結構,是用戶看到的數據視圖。模式,或稱邏輯模式,是資料庫中對全體數據的邏輯結構和特性的描述,是所有用戶所見到的數據視圖的總和。外模式是模式的一部分。內模式,或稱存儲模式,或稱物理模式,是指數據在資料庫系統內的存儲介質上的表示。即對數據的物理結構和存取方式的描述。
36)演算法的時間復雜度是指_______。
A)執行演算法程序所需要的時間
B)演算法程序的長度
C)演算法執行過程中所需要的基本運算次數
D)演算法程序中的指令條數
(36)C
知識點:演算法復雜度的概念和意義(時問復雜度與空間復雜度)
評析:所謂演算法的時間復雜度,是指執行演算法所需要的計算工作量。為了能夠比較客觀地反映出一個演算法的效率,在度量一個演算法的工作量時,不僅應該與所使用的計算機、程序設計語言以及程序編制者無關,而且還應該與演算法實現過程中的許多細節無關。為此,可以用演算法在執行過程中所需基本運算的執行次數來度量演算法的工作量。
(37)下列敘述中正確的是_______。
A)線性表是線性結構 B)棧與隊列是非線性結構
C)線性鏈表是非線性結構 D)二叉樹是線性結構
(37)A
知識點:線性結構與非線性結構的概念
評析:根據數據結構中各數據元素之間相關聯關系的復雜程度,一般將數據結構分為兩大類型:線性結構與非線性結構。如果一個非空的數據結構滿足下列兩個條件: (1)有且只有一個根結點; (2)每一個結點最多有一個前件,也最多有一個後件。則稱該數據結構為線性結構,又稱線性表。所以線性表、棧與隊列、線性鏈表都是線性結構,而二叉樹是非線性結構。
(38)下面關於完全二叉樹的敘述中,錯誤的是_______。
A)除了最後一層外,每一層上的結點數均達到最大值
B)可能缺少若干個左右葉子結點
C)完全二叉樹一般不是滿二叉樹
D)具有結點的完全二叉樹的深度為[log2n]+l
(38)B
知識點:二叉樹的定義及其存儲結構
評析:這里考察完全二又樹與滿二叉樹的定義及二叉樹的性質。滿二叉樹指除最後一層外每一層上所有結點都有兩個子結點的二叉樹。完全二叉樹指除最後一層外,每一層上的結點數均達到最大值,在最後一層上只缺少右邊的若乾子結點(葉子結點)的二叉樹。因此選項A是正確的,而選項B是錯誤的。由定義可知,滿二叉樹肯定是完全二又樹,而完全二又樹一般不是滿二叉樹,因此選項c是正確的敘述。選項D即二又樹性質(5),也是正確的。
(39)結構化程序設計主要強調的是_______。
A)程序的規模 B)程序的易讀性
C)程序的執行效率 D)程序的可移植性
(39)B
知識點:結構化程序設計
評析:結構化程序設計主要強調的足結構化程序清晰易讀,可理解性好,程序員能夠進行逐步求精、程序證明和測試.以保證程序的正確性。
(40)在軟體生命周期中,能准確地確定軟體系統必須做什麼和必須具備哪些功能的階段是_______。
A)概要設計 B)詳細設計 C)可行性分析 D)需求分析
(40)D
知識點:軟體工程基本概念,軟體生命周期概念,軟體工具與軟體開發環境
評析:通常,將軟體產品從提出、實現、使用維護到停止使用退役的過程稱為軟體生命周期。也就是說,軟體產品從考慮其概念開始,到該軟體產品不能使用為止的整個時期都屬於軟體生命周期。軟體生命周期的主要活動階段為:
① 可行性研究和計劃制定。確定待開發軟體系統的開發目標和總的要求,給出它的功能、性能、可靠性以及介面等方面的可行方案,制定完成開發任務的實施計劃。
②需求分析。對待開發軟體提出的需求進行分析並給出詳細定義,即准確地確定軟體系統的功能。編寫軟體規格說明書及初步的用戶手冊,提交評審。
③軟體設計。系統設計人員和程序設計人員應該在反復理解軟體需求的基礎上,給出軟體的結構、模塊的劃分、功能的分配以及處理流程。
④軟體實現。把軟體設計轉換成計算機可以接受的程序代碼。即完成源程序的編碼,編寫用戶手冊、操作手冊等面向用戶的文檔,編寫單元測試計劃。
⑤軟體測試。在設計測試用例的基礎上,檢驗軟體的各個組成部分。編寫測試分析報告。
⑥運行和維護。將已交付的軟體投入運行,並存運行使用中不斷地維護,根據新提出的需求進行必要而且可能的擴充和刪改。
(41)數據流圖用於抽象描述一個軟體的邏輯模型,數據流圖由一些特定的圖符構成。下列圖符名標識的圖符不屬於數據流圖合法圖符的是_______。
A)控制流 B)加工 C)數據存儲 D)源和潭
(41)A
知識點:結構化分析方法,數據流圖,數據字典,軟體需求規格說明書
評析:數據流圖從數據傳遞和加工的角度,來刻畫數據流從輸入到輸出的移動變換過程。數據流圖中的主要圖形元素有:加工(轉換)、數據流、存儲文件(數據源)、源和潭。
(42)軟體需求分析一般應確定的是用戶對軟體的_______。
A)功能需求 B)非功能需求 C)性能需求 D)功能需求和非功能需求
(42)D
知識點:結構化設計方法
評析:軟體需求分析中需要構造一個完全的系統邏輯模型,理解用戶提出的每一功能與性能要求,是用戶明確自己的任務。因此,需求分析應確定用戶對軟體的功能需求和非功能需求。
(43)下述關於資料庫系統的敘述中正確的是_______。
A)資料庫系統減少了數據冗餘
B)資料庫系統避免了一切冗餘
C)資料庫系統中數據的一致性是指數據類型的一致
D)資料庫系統比文件系統能管理更多的數據
(43)A
知識點:資料庫的基本概念:資料庫,資料庫管理系統,資料庫系統
評析:由於數據的集成性使得數據可為多個應JH=j所共享,特別是在網路發達的今天,資料庫與網路的結合擴大了數據關系的應用范圍。數據的共享自身義可極大地減少數據冗餘性,不僅減少了不必要的存儲空間,更為重要的是可以避免數據的不一致性。所謂數據的一致性是指在系統中同一數據的不同出現應保持相同的值,而數據的不一致性指的是同一個數據在系統的不同拷貝處有不同的值。
(44)關系表中的每一橫行稱為一個_______。
A)元組 B)欄位 C)屬性 D)碼
(44)A
知識點:資料庫的基本概念:資料庫.資料庫管理系統,資料庫系統
評析:在關系資料庫中,關系模型採用二維表來表示,簡稱「表」。二維表是由表框架及表元組組成。在表框架中,按行可以存放數據,每行數據稱為元組。
(45)資料庫設計包括兩個方面的設計內容,它們是_______。
A)概念設計和邏輯設計 B)模式設計和內模式設計
C)內模式設計和物理設計 D)結構特性設計和行為特性設計
(45)A
知識點:資料庫設計方法和步驟:需求分析、概念設計、邏輯設計和物理設計的相關策略
評析:資料庫設計可分為概念設計與邏輯設計。資料庫概念設計的目的是分析數據問內存語義關聯,在此基礎上建立一個數據的抽象模型。資料庫邏輯設計的主要工作是將E-R圖轉換為指定的RDBMS中的關系模型。
(61)字元(char)型數據在微機內存中的存儲形式是________。
A)反碼 B)補碼
C)EBCDIC碼 D)ASCII碼
(61)D
知識點:字元數據在內存中的存儲形式
評析:將一個字元常量放到一個字元變數中,實際上並不是把該字元本身放到內存單元中去,而是將該字元的ASCII碼值放到存儲單元中。
71)演算法的空間復雜度是指_______。
A)演算法程序的長度 B)演算法程序中的指令條數
C)演算法程序所佔的存儲空間 D)演算法執行過程中所需要的存儲空間
(71)D
知識點:演算法的復雜度
評析:一個演算法的空間復雜度,一般是指執行這個演算法所需的內存空間。
一個演算法所佔用的存儲空間包括演算法程序所佔的空間、輸入的初始數據所佔的存儲空間以及演算法執行過程中所需要的額外空間。
(72)下列關於棧的敘述中正確的是_______。
A)在棧中只能插入數據 B)在棧中只能刪除數據
C)棧是先進先出的線性表 D)棧是先進後出的線性表
(72)D
知識點:棧的輸入輸出操作
評析:棧是限定在一端進行插入與刪除的線性表。
棧是按照「先進後出」的或「後進先出」的原則組織數據的,因此,棧也被稱為「先進後出」表或「後進先出」表。
(73)在深度為5的滿二叉樹中,葉子結點的個數為_______。
A)32 B)31 C)16 D)15
(73)C
知識點:二叉樹的概念
評析:所謂滿二叉樹是指除最後一層外,每層上的所有結點都有兩個子結點。也就是說,在滿二又樹中,每一層上的結點數都達到最大值,即在滿二叉樹的第K層上有2k-1個結點,且深度為m的滿二叉樹有2m個結點。
在滿二叉樹中,最後一層的結點個數就是葉子結點的個數,本題中深度為5,故葉子結點數為25-1=24==16。
(74)對建立良好的程序設計風格,下面描述正確的是_______。
A)程序應簡單、清晰、可讀性好 B)符號名的命名要符合語法
C)充分考慮程序的執行效率 D)程序的注釋可有可無
(74)A
知識點:程序設計風格
評析:要形成良好的程序設計風格,主要應注重和考慮下述一些因素:符號名的命名應具有一定的實際含義,以便於對程序功能的理解;正確的注釋能夠幫助讀者理解程序;程序編寫應優先考慮清晰性,除非對效率有特殊要求,程序編寫要做到清晰第一,效率第二。
(75)下面對對象概念描述錯誤的是_______。
A)任何對象都必須有繼承性 B)對象是屬性和方法的封裝體
C)對象問的通訊靠消息傳遞 D)操作是對象的動態性屬性
(75)A
知識點:對象的概念
評析:對象是由數據和容許的操作組成的封裝體,與客觀實體有直接的對應關系。對象之間通過傳遞消息互相聯系,以模擬現實世界中不同事物彼此之間的聯系。
(76)下面不屬於軟體工程的3個要素的是_______。
A)工具 B)過程 C)方法 D)環境
(76)D
知識點:軟體:[程的要素
評析:軟體工程包括3個要素,即方法、工具和過程。
(77)程序流程圖(PFD)中的箭頭代表的是_______。
A)數據流 B)控制流 C)調用關系 D)組成關系
(77)B
知識點:軟體設計工具
評析:程序流程圖(PFD)是一種傳統的、應用廣泛的軟體過程設計表示工具,通常也稱為程序框圖,其箭頭代表的是控制流。
(78)在數據管理技術的發展過程中,經歷了人工管理階段、文件系統階段和資料庫系統階段。其中數據獨立性最高的階段是_______。
A)資料庫系統 B)文件系統 C)人工管理 D)數據項管理
(78)A
知識點:數據管理技術的發展
評析:在數據管理技術的發展過程中,經歷了人工管理階段、文件系統階段和資料庫系統階段。其中數據獨立性最高的階段是資料庫系統。
『柒』 計算機二級c語言知識點
2017計算機二級c語言知識點精選
計算機二級C語言考試內容是什麼?為幫助大家更好備考3月計算機考試,我為大家分享計算機C語言二級考試知識點如下:
第一章 數據結構與演算法
1.1 演算法
1.演算法的基本概念
(1) 概念:演算法是指一系列解決問題的清晰指令。
(2) 4個基本特徵:可行性、確定性、有窮性、擁有足夠的情報。
(3) 兩種基本要素:對數據對象的運算和操作、演算法的控制結構(運算和操作時問的順序)。
(4) 設計的基本方法:列舉法、歸納法、遞推法、遞歸法、減半遞推技術和回溯法。
2.演算法的復雜度
(1) 演算法的時間復雜度:執行演算法所需要的計算工作量。
(2) 演算法的空間復雜度:執行演算法所需的內存空間。
1.2 數據結構的基本概念
數據結構指相互有關聯的數據元素的集合,即數據的組織形式。其中邏輯結構反映數據元素之間邏輯關系;存儲結構為數據的邏輯結構在計算機存儲空間中的存放形式,有順序存儲、鏈式存儲、索引存儲和散列存儲4種方式。
數據結構按各元素之間前後件關系的復雜度可劃分為:
(1) 線性結構:有且只有一個根節點,且每個節點最多有一個直接前驅和一個直接後繼的非空數據結構。
(2) 非線性結構:不滿足線性結構的數據結構。
1.3 線性表及其順序存儲結構
1.線性表的基本概念
線性結構又稱線性表,線性表是最簡單也是最常用的一種數據結構。
2.線性表的順序存儲結構
元素所佔的存儲空間必須連續。
元素在存儲空間的位置是按邏輯順序存放的。
3.線性表的插入運算
在第i個元素之前插入一個新元素的步驟如下:
步驟一:把原來第n個節點至第i個節點依次往後移一個元素位置。
步驟二:把新節點放在第i個位置上。
步驟三:修正線性表的節點個數。
在最壞情況下,即插入元素在第一個位置,線性表中所有元素均需要移動。
4.線性表的刪除運算
刪除第i個位置的元素的步驟如下:
步驟一:把第i個元素之後不包括第i個元素的n-i個元素依次前移一個位置;
步驟二:修正線性表的結點個數。
1.4 棧和隊列
1.棧及其基本運算
(1) 基本概念:棧是一種特殊的線性表,其插入運算與刪除運算都只在線性表的一端進行,也被稱為「先進後出」表或「後進先出」表。
棧頂:允許插入與刪除的一端。
棧底:棧頂的另一端。
空棧:棧中沒有元素的棧。
(2) 特點。
棧頂元素是最後插入和最早被刪除的元素。
棧底元素是最早插入和最後被刪除的元素。
棧有記憶作用。
在順序存儲結構下,棧的插入和刪除運算不需移動表中其他數據元素。
棧頂指針top動態反映了棧中元素的變化情況
(3) 順序存儲和運算:入棧運算、退棧運算和讀棧頂運算。
2.隊列及其基本運算
(1) 基本概念:隊列是指允許在一端進行插入,在另一端進行刪除的線性表,又稱「先進先出」的線性表。
隊尾:允許插入的一端,用尾指針指向隊尾元素。
排頭:允許刪除的一端,用頭指針指向頭元素的前一位置。
(2) 循環隊列及其運算。
所謂循環隊列,就是將隊列存儲空間的最後一個位置繞到第一個位置,形成邏輯上的環狀空間。
入隊運算是指在循環隊列的隊尾加入一個新元素。
當循環隊列非空(s=1)且隊尾指針等於隊頭指針時,說明循環隊列已滿,不能進行人隊運算,這種情況稱為「上溢」。
退隊運算是指在循環隊列的隊頭位置退出一個元素並賦給指定的變數。首先將隊頭指針進一,然後將排頭指針指向的元素賦給指定的變數。當循環隊列為空(s=0)時,不能進行退隊運算,這種情況稱為「下溢」。
1.5 線性鏈表
在定義的鏈表中,若只含有一個指針域來存放下一個元素地址,稱這樣的鏈表為單鏈表或線性鏈表。
在鏈式存儲方式中,要求每個結點由兩部分組成:一部分用於存放數據元素值,稱為數據域;另一部分用於存放指針,稱為指針域。其中指針用於指向該結點的前一個或後一個結點(即前件或後件)。
1.6 樹和二叉樹
1.樹的基本概念
樹是簡單的非線性結構,樹中有且僅有一個沒有前驅的節點稱為「根」,其餘節點分成m個互不相交的有限集合T1,T2,…,T}mm,每個集合又是一棵樹,稱T1,T2,…,T}mm為根結點的子樹。
父節點:每一個節點只有一個前件,無前件的節點只有一個,稱為樹的根結點(簡稱樹的根)。
子節點:每~個節點可以後多個後件,無後件的節點稱為葉子節點。
樹的度:所有節點最大的度。
樹的深度:樹的最大層次。
2.二叉樹的定義及其基本性質
(1) 二叉樹的定義:二叉樹是一種非線性結構,是有限的節點集合,該集合為空(空二叉樹)或由一個根節點及兩棵互不相交的左右二叉子樹組成。可分為滿二叉樹和完全二叉樹,其中滿二叉樹一定是完全二叉樹,但完全二叉樹不一定是滿二叉樹。二叉樹具有如下兩個特點:
二叉樹可為空,空的二叉樹無節點,非空二叉樹有且只有一個根結點;
每個節點最多可有兩棵子樹,稱為左子樹和右子樹。
(2) 二叉樹的基本性質。
性質1:在二叉樹的第k層上至多有2k-1個結點(k≥1)。
性質2:深度為m的二叉樹至多有2m-1個結點。
性質3:對任何一棵二叉樹,度為0的結點(即葉子結點)總是比度為2的結點多一個。
性質4:具有n個結點的完全二叉樹的深度至少為[log2n]+1,其中[log2n]表示log2n的整數部分。
3.滿二叉樹與完全二叉樹
(1) 滿二叉樹:滿二叉樹是指這樣的一種二叉樹:除最後一層外,每一層上的所有結點都有兩個子結點。滿二叉樹在其第i層上有2i-1個結點。
從上面滿二叉樹定義可知,二叉樹的每一層上的結點數必須都達到最大,否則就不是滿二叉樹。深度為m的滿二叉樹有2m-1個結點。
(2) 完全二叉樹:完全二叉樹是指這樣的二叉樹:除最後一層外,每一層上的結點數均達到最大值;在最後一層上只缺少右邊的若干結點。
如果—棵具有n個結點的深度為k的二叉樹,它的每—個結點都與深度為k的滿二叉樹中編號為1~n的結點——對應。
3.二叉樹的存儲結構
二叉樹通常採用鏈式存儲結構,存儲節點由數據域和指針域(左指針域和右指針域)組成。二叉樹的鏈式存儲結構也稱二叉鏈表,對滿二叉樹和完全二叉樹可按層次進行順序存儲。
4.二叉樹的遍歷
二叉樹的遍歷是指不重復地訪問二叉樹中所有節點,主要指非空二叉樹,對於空二叉樹則結束返回。二叉樹的遍歷包括前序遍歷、中序遍歷和後序遍歷。
(1) 前序遍歷。
前序遍歷是指在訪問根結點、遍歷左子樹與遍歷右子樹這三者中,首先訪問根結點,然後遍歷左子樹,最後遍歷右子樹;並且,在遍歷左右子樹時,仍然先訪問根結點,然後遍歷左子樹,最後遍歷右子樹。前序遍歷描述為:若二叉樹為空,則執行空操作;否則①訪問根結點;②前序遍歷左子樹;③前序遍歷右子樹。
(2) 中序遍歷。
中序遍歷是指在訪問根結點、遍歷左子樹與遍歷右子樹這三者中,首先遍歷左子樹,然後訪問根結點,最後遍歷右子樹;並且,在遍歷左、右子樹時,仍然先遍歷左子樹,然後訪問根結點,最後遍歷右子樹。中序遍歷描述為:若二叉樹為空,則執行空操作;否則①中序遍歷左子樹;②訪問根結點;③中序遍歷右子樹。
(3) 後序遍歷。
後序遍歷是指在訪問根結點、遍歷左子樹與遍歷右子樹這三者中,首先遍歷左子樹,然後遍歷右子樹,最後訪問根結點,並且,在遍歷左、右子樹時,仍然先遍歷左子樹,然後遍歷右子樹,最後訪問根結點。後序遍歷描述為:若二叉樹為空,則執行空操作;否則①後序遍歷左子樹;②後序遍歷右子樹;③訪問根結點。
1.7 查找技術
(1) 順序查找:在線性表中查找指定的元素。
(2) 最壞情況下,最後一個元素才是要找的元素,則需要與線性表中所有元素比較,比較次數為n。
(3) 二分查找:二分查找也稱折半查找,它是一種高效率的查找方法。但二分查找有條件限制,它要求表必須用順序存儲結構,且表中元素必須按關鍵字有序(升序或降序均可)排列。對長度為n的有序線性表,在最壞情況下,二分查找法只需比較log2n次。
1.8 排序技術
(1) 交換類排序法。
冒泡排序:通過對待排序序列從後向前或從前向後,依次比較相鄰元素的排序碼,若發現逆序則交換,使較大的元素逐漸從前部移向後部或較小的元素逐漸從後部移向前部,直到所有元素有序為止。在最壞情況下,對長度為n的線性表排序,冒泡排序需要比較的次數為n(n-1)/2。
快速排序:是迄今為止所有內排序演算法中速度最快的一種。它的基本思想是:任取待排序序列中的某個元素作為基準(一般取第一個元素),通過一趟排序,將待排元素分為左右兩個子序列,左子序列元索的排序碼均小於或等於基準元素的排序碼,右子序列的排序碼則大於基準元素的排序碼,然後分別對兩個子序列繼續進行排序,直至整個序列有序。最壞情況下,即每次劃分,只得到一個序列,時間效率為O(n2)。
(2) 插人類排序法。
簡單插入排序法:把n個待排序的元素看成為一個有序表和一個無序表,開始時有序表中只包含一個元素,無序表中包含有n-1個元素,排序過程中每次從無序表中取出第一個元素,把它的排序碼依次與有序表元素的排序碼進行比較,將它插入到有序表中的適當位置,使之成為新的有序表。在最壞情況下,即初始排序序列是逆序的情況下,比較次數為n(n-1)/2,移動次數為n(n-1)/2。
希爾排序法:先將整個待排元素序列分割成若干個子序列(由相隔某個「增量」的元素組成的)分別進行直接插入排序。待整個序列中的元素基本有序(增量足夠小)時,再對全體元素進行一次直接插入排序。
(3) 選擇類排序法。
簡單選擇排序法:掃描整個線性表。從中選出最小的元素。將它交換到表的最前面;然後對剩下的子表採用同樣的方法,直到子表空為止。最壞情況下需要比較n(n-1)/2次。
堆排序的方法:首先將一個無序序列建成堆;然後將堆頂元素(序列中的最大項)與堆中最後一個元素交換(最大項應該在序列的最後)。不考慮已經換到最後的那個元素,只考慮前n-1個元素構成的子序列,將該子序列調整為堆。反復做步驟②,直到剩下的子序列空為止。在最壞情況下,堆排序法需要比較的次數為0(nlog2n)
第二章 程序設計基礎
2.1 程序設計方法與風格
(1)設計方法:指設計、編制、調試程序的方法和過程,主要有結構化程序設計方法、軟體工程方法和面向對象方法。
(2)設計風格:良好的'設計風格要注重源程序文檔化、數據說明方法、語句的結構和輸入輸出。
2.2 結構化程序設計
1.結構化程序設計的原則
結構化程序設計強調程序設計風格和程序結構的規范化,提倡清晰的結構。。
(1)自頂向下:即先考慮總體,後考慮細節;先考慮全局目標,後考慮局部目標。
(2)逐步求精:對復雜問題,應設計一些子目標做過渡,逐步細化。
(3)模塊化:把程序要解決的總目標分解為分目標,再進一步分解為具體的小目標,把每個小目標稱為一個模塊;
(4)限制使用GOT0語句。
2.結構化程序的基本結構與特點
(1)順序結構:自始至終嚴格按照程序中語句的先後順序逐條執行,是最基本、最普遍的結構形式。
(2)選擇結構:又稱為分支結構,包括簡單選擇和多分支選擇結構。
(3)重復結構:又稱為循環結構,根據給定的條件,判斷是否需要重復執行某一相同的或類似的程序段。
結構化程序設計中,應注意事項:
(1)使用程序設計語言中的順序、選擇、循環等有限的控制結構表示程序的控制邏輯。
(2)選用的控制結構只准許有一個人口和一個出口。
(3)程序語言組成容易識別的塊,每塊只有一個入口和一個出口。
(4)復雜結構應該用嵌套的基本控制結構進行組合嵌套來實現。
(5)語言中所沒有的控制結構,應該採用前後一致的方法來模擬。
(6)盡量避免GOT0語句的使用。
2.3 面向對象的程序設計
面向對象方法的本質是主張從客觀世界固有的事物出發來構造系統,強調建立的系統能映射問題域。
對象:用來表示客觀世界中任何實體,可以是任何有明確邊界和意義的東西。
類:具有共同屬性、共同方法的對象的集合。
實例:一個具體對象就是其對應分類的一個實例。
消息:實例間傳遞的信息,它統一了數據流和控制流。
繼承:使用已有的類定義作為基礎建立新類的定義技術。
多態性:指對象根據所接受的信息而作出動作,同樣的信息被不同的對象接收時有不同行動的現象。面向對象程序設計的優點:與人類習慣的思維方法一致、穩定性好、可重用性好、易於開發大型軟體產品、可維護性好。
第三章 軟體工程基礎
3.1 軟體工程基本概念
1.軟體的定義與特點
(1)定義:軟體是指與計算機系統的操作有關的計算機程序、規程、規則,以及可能有的文件、文檔和數據。
(2)特點。
是邏輯實體,有抽象性。
生產沒有明顯的製作過程。
運行使用期間不存在磨損、老化問題。
開發、運行對計算機系統有依賴性,受計算機系統的限制,導致了軟體移植問題。
復雜性較高,成本昂貴。
開發涉及諸多社會因素。
2.軟體的分類
軟體可分應用軟體、系統軟體和支撐軟體3類。
(1)應用軟體是特定應用領域內專用的軟體。
(2)系統軟體居於計算機系統中最靠近硬體的一層,是計算機管理自身資源,提高計算機使用效率並為計算機用戶提供各種服務的軟體。
(3)支撐軟體介於系統軟體和應用軟體之間,是支援其它軟體的開發與維護的軟體。
3.軟體危機與軟體工程
軟體危機指在計算機軟體的開發和維護中遇到的一系列嚴重問題。軟體工程是應用於計算機軟體的定義、開發和維護的一整套方法、工具、文檔、實踐標准和工序,包括軟體開發技術和軟體工程管理。
4.軟體生命周期
軟體產品從提出、實現、使用維護到停止使用的過程稱為軟體生命周期。
在國家標准中,軟體生命周期劃分為8個階段①軟體定義期:包括問題定義、可行性研究和需求分析3個階段。②軟體開發期:包括概要設計、詳細設計、實現和測試4個階段。③運行維護期:即運行維護階段。
5.軟體工程的原則
軟體工程的原則包括:抽象、信息隱蔽、模塊化、局部化、確定性、一致性、完備性和可驗證性。
3.2 結構化分析方法
需求分析的任務是發現需求、求精、建模和定義需求的過程,可概括為:需求獲取、需求分析、編寫需求規格說明書和需求評審。
1.常用的分析方法
結構化分析方法:其實質著眼於數據流,自頂向下,逐層分解,建立系統的處理流程。
面向對象分析方法。
2.結構化分析常用工具
結構化分析常用工具包括數據流圖、數字字典(核心方法)、判斷樹和判斷表。
(1)數據流圖:即DFD圖,以圖形的方式描繪數據在系統中流動和處理的過程,它只反映系統必須完成的邏輯功能。是一種功能模型。
符號名稱作用:
箭頭代表數據流,沿箭頭方向傳送數據的通道
圓或橢圓代表加工,輸入數據經加工變換產生輸出
雙杠代表存儲文件,表示處理過程中存放各種數據文件
方框代表源和潭,表示系統和環境的介面
(2)數據字典:結構化分析方法的核心。數據字典是對所有與系統相關的數據元素的一個有組織的列表。以及精確的、嚴格的定義,使得用戶和系統分析員對於輸入、輸出、存儲成分和中間計算結果有共同的理解。
(3)判定樹:使用判定樹進行描述時,應先從問題定義的文字描述中分清判定的條件和判定的結論,根據描述材料中的連接詞找出判定條件之問的從屬關系、並列關系、選擇關系,根據它們構造判定樹。
(4)判定表:與判定樹相似,當數據流圖中的加工要依賴於多個邏輯條件的取值,即完成該加工的一組動作是由於某一組條件取值的組合引發的,使用判定表比較適宜。
3.軟體需求規格說明書
軟體需求規格說明書是需求分析階段的最後成果,是軟體開發的重要文檔之一。
(1)軟體需求規格說明書的作用:①便於用戶、開發人員進行理解和交流;②反映出用戶問題的結構,可以作為軟體開發工作的基礎和依據;③作為確認測試和驗收的依據。
(2)軟體需求規格說明書的內容:①概述;②數據描述;③功能描述;④性能描述;⑤參考文獻;⑥附錄。
(3)軟體需求規格說明書的特點:①正確性;②無歧義性;③完整性;④可驗證性;⑤一致性;⑥可理解性;⑦可修改性;⑧可追蹤性。
3.3 結構化設計方法
1.軟體設計的基本概念和方法
軟體沒計是一個把軟體需求轉換為軟體表示的過程。
(1)基本原理:抽象、模塊化、信息隱藏、模塊獨立性(度量標准:耦合性和內聚性,高耦合、低內聚)。
(2)基本思想:將軟體設計成由相對獨立、單一功能的模塊組成的結構。
2.概要設計
(1)4個任務:設計軟體系統結構、數據結構及資料庫設計、編寫概要設計文檔、概要設計文檔評審。
(2)面向數據流的設計方法:數據流圖的信息分為交換流和事物流,結構形式有交換型和事務型。
3.詳細設計的工具
詳細設計的工具包括:
圖形工具:程序流程圖、N-S、PAD、HIPO。
表格工具:判定表。
語言工具:PDL(偽碼)。
3.4 軟體測試
1.目的
為了發現錯誤而執行程序的過程。
2.准則
所有測試應追溯到用戶需求。
嚴格執行測試計劃,排除測試的隨意性。
充分注意測試中的群集現象。
程序員應避免檢查自己的程序。
窮舉測試不可能。
妥善保存設計計劃、測試用例、出錯統計和最終分析報告。
3.軟體測試技術和方法
軟體測試的方法按是否需要執行被測軟體的角度,可分為靜態測試和動態測試,按功能分為白盒測試和黑盒測試。
(1)白盒測試:根據程序的內部邏輯設計測試用例,主要方法有邏輯覆蓋測試、基本路徑測試等。
(2)黑盒測試:根據規格說明書的功能來設計測試用例,主要診斷方法有等價劃分法、邊界值分析法、錯誤推測法、因果圖法等,主要用於軟體確認測試。
4.軟體測試的實施
軟體測試是保證軟體質量的重要手段,軟體測試是一個過程,其測試流程是該過程規定的程序,目的是使軟體測試工作系統化。
軟體測試過程分4個步驟,即單元測試、集成測試、驗收測試和系統測試。
單元測試是對軟體設計的最小單位——模塊(程序單元)進行正確性檢驗測試。
單元測試的目的是發現各模塊內部可能存在的各種錯誤。
單元測試的依據是詳細的設計說明書和源程序。
單元測試的技術可以採用靜態分析和動態測試。
3.5 程序的調試
(1)任務:診斷和改正程序中的錯誤。
(2)調試方法:強行排錯法、回溯法和原因排除法。
第四章 資料庫設計基礎
4.1 資料庫系統的基本概念
(1) 數據(Data):描述事物的符號記錄。
(2) 資料庫(DataBase):長期存儲在計算機內的、有組織的、可共享的數據集合。
(3) 資料庫管理系統的概念
資料庫管理系統(DataBase Management System,DBMS)是資料庫的機構,它是一種系統軟體,負責資料庫中的數據組織、數據操作、數據維護、數據控制及保護和數據服務等。為完成以上6個功能,DBMS提供了相應的數據語言;數據定義語言(負責數據的模式定義與數據的物理存取構建);數據操縱語言(負責數據的操縱);數據控制語言(負責數據完整性、安全性的定義)。資料庫管理系統是資料庫系統的核心,它位於用戶和操作系統之間,從軟體分類的角度來說,屬於系統軟體。
(4) 資料庫技術發展經歷了3個階段。
人工管理階段→文件系統階段→資料庫系統階段
(5) 資料庫系統的特點:集成性、高共享性、低冗餘性、數據獨立性、數據統一管理與控制等。
(6) 資料庫系統的內部機構體系:三級模式(概念模式、內模式、外模式)和二級映射(外模式/概念模式的映射、概念模式/內模式的映射)構成了資料庫系統內部的抽象結構體系。
4.2 數據模型
數據模型是數據特徵的抽象,從抽象層次上描述了系統的靜態特徵、動態行為和約束條件,描述的內容有數據結構、數據操作和數據約束。有3個層次:概念數據模型、邏輯數據模型和物理數據模型。
(1) E—R模型:提供了表示實體、屬性和聯系的方法。實體間聯系有「一對一」、「一對多」和「多對多」。
(2) E-R模型用E-R圖來表示。
(3) 層次模型:利用樹形結構表示實體及其之問聯系。其中節點是實體,樹枝是聯系,從上到下是一對多關系。
(4) 網狀模型:用網狀結構表示實體及其之間聯系。是層次模型的擴展。網路模型以記錄型為節點,反映現實中較為復雜的事物聯系。
(5) 關系模型:採用二維表(由表框架和表的元組組成)來表示,可進行數據查詢、增加、刪除及修改操作。關系模型允許定義「實體完整性」、「參照完整性」和「用戶定義的完整性」三種約束。
鍵(碼):二維表中唯一能標識元組的最小屬性集。
候選鍵(候選碼):二維表中可能有的多個鍵。
主鍵:被選取的一個使用的鍵。
4.3 關系代數
(1) 關系代數的基本運算:投影、選擇、笛卡爾積。
(2) 關系代數的擴充運算:交、連接與自然連接、除。
4.4 資料庫設計與管理
1.資料庫設計概述
基本思想:過程迭代和逐步求精。
方法:面向數據的方法和面向過程的方法。
設計過程:需求分析→概念設計→邏輯設計→物理設計→編碼→測試→運行→進→步修改。
2.資料庫設計的需求分析
需求收集和分析是資料庫設計的第一階段,常用結構化分析方法(自頂向下、逐層分解)和面向對象的方法,主要工作有繪制數據流程圖、數據分析、功能分析、確定功能處理模塊和數據間關系。
數據字典:包括數據項、數據結構、數據流、數據存儲和處理過程,是對系統中數據的詳盡描述。
3.資料庫的設計
(1) 資料庫的概念設計:分析數據問內在的語義關聯,以建立數據的抽象模型。
(2) 資料庫的邏輯設計:從E-R圖向關系模型轉換,邏輯模式規范化,關系視圖設計可以根據用戶需求隨時創建。實體轉換為元組,屬性轉換為關系的屬性,聯系轉換為關系。
(3) 資料庫的物理設計:是數據在物理設備上的存儲結構與存取方法,目的是對資料庫內部物理結構作出調整並選擇合理的存取路徑,以提高速度和存儲空間。
4.資料庫管理
資料庫管理包括資料庫的建立、資料庫的調整、資料庫的重組、資料庫的安全性與完整性控制、資料庫故障恢復和資料庫的監控。
;『捌』 跪求2010.9計算機二級C語言筆試復習資料
一、選擇題(每題2分,共計70分)
1.(1)下列數據結構中,屬於非線性結構的是
A)循環隊列
B)帶鏈隊列
C)二叉樹
D)帶鏈棧
A B C D
2.
(2)下列數據結構中,能夠按照「先進後出」原則存取數據的是
A)循環隊列
B)棧
C)隊列
D)二叉樹
A B C D
3.
(3)對於循環隊列,下列敘述中正確的是
A)隊頭指針是固定不變的
B)隊頭指針一定大於隊尾指針
C)隊頭指針一定小於隊尾指針
D)隊頭指針可以大於隊尾指針,也可以小於隊尾指針
A B C D
4.
(4)演算法的空間復雜度是指
A)演算法在執行過程中所需要的計算機存儲空間
B)演算法所處理的數據量
C)演算法程序中的語句或指令條數
D)演算法在執行過程中所需要的臨時工作單元數
A B C D
5.
(5)軟體設計中劃分模塊的一個准則是
A)低內聚低耦合
B)高內聚低耦合
C)低內聚高耦合
D)高內聚高耦合
A B C D
6.
(6)下列選項中不屬於結構化程序設計原則的是
A)可封裝
B)自頂向下
C)模塊化
D)逐步求精
A B C D
7.(7)軟體詳細設計產生的圖如下:
該圖是
A)N-S圖
B)PAD圖
C)程序流程圖
D)E-R圖
A B C D
8.
(8)資料庫管理系統是
A)操作系統的一部分
B)在操作系統支持下的系統軟體
C)一種編譯系統
D)一種操作系統
A B C D
9.
(9)在E-R圖中,用來表示實體聯系的圖形是
A)橢圓形
B)矩形
C)菱形
D)三角形
A B C D
10.(10)有三個關系R,S,和T如下:
其中關系T由關系R和S通過某種操作得到,該操作為
A)選擇
B)投影
C)交
D)並
A B C D
11.(11)以下敘述中正確的是
A)程序設計的任務就是編寫程序代碼並上機調試
B)程序設計的任務就是確定所用的數據結構
C)程序設計的任務就是確定所用演算法
D)以上三種說法都不完整
A B C D
12.(12)以下選項中,能用作用戶標識符的是
A)void
B)8_8
C)_0_
D)unsigned
A B C D
13.(13)閱讀以下程序
#include <stdio.h>
main()
{ int case; float printF;
printf("請輸入2個數:");
scanf("%d %f",&case,&printF);
printf("%d %f\n",case,printf);
}
該程序在編譯時產生錯誤,其出錯原因是
A)定義語句出錯,case是關鍵字,不能用作用戶自定義標識符
B)定義語句出錯,printF不能用作用戶自定義標識符
C)定義語句無錯,scanf不能作為輸入函數使用
D)定義語句無措,printf不能輸出case的值
A B C D
14.(14)表達式:(int)((double)9/2)-(9)%2的值是
A)0
B)3
C)4
D)5
A B C D
15.(15)若有定義語句: int x=10;,則表達式x-=x+x的值為
A)-20
B)-10
C)0
D)10
A B C D
16.(16)有以下程序
#include <stdio.h>
main()
{ int a=1,b=0;
printf("%d,",b=a+b);
printf("%d",a=2*b);
}
程序運行後的輸出結果是
A)0,0
B)1,0
C)3,2
D)1,2
A B C D
17.(17)設有定義: int a=1,b=2,c=3;,以下語句中執行效果與其它三個不同的是
A)if(a>b) c=a,a=b,b=c;
B)if(a>b){c=a,a=b,b=c;}
C)if(a>b) c=a;a=b;b=c;
D)if(a>b){c=a;a=b;b=c;}
A B C D
18.(18)有以下程序
#include <stdio.h>
main()
{ int c=0,k;
for(k=1;k<3;k++)
switch(k)
{ default:c+=k;
case 2:c++;break;
case 4:c+=2;break;
}
printf("%d\n",c);
}
程序運行後的輸出結果是
A)3
B)5
C)7
D)9
A B C D
19.(19)以下程序段中,與語句: k=a>b?(b>c?1:0):0;功能相同的是
A)if((a>b)&&(b>c)) k=1;
else k=0;
B)if((a>b)||(b>c)) k=1;
else k=0;
C)if(a<=b)k=0;
else if(b<=c) k=1;
D) if(a>b) k=1;
else if(b>c) k=1;
else k=0;
A B C D
20.(20)有以下程序
#include <stdio.h>
main()
{ char s[]={"012xy"};int i,n=0;
for(i=0;s[i]!=0;i++)
if(s[i]>'a'&&s[i]<='z') n++;
printf("%d\n",n);
}
程序運行後的輸出結果是
A)0
B)2
C)3
D)5
A B C D
21.
(21)有以下程序
#include <stdio.h>
main()
{ int n=2,k=0;
while(k++&&n++>2);
printf("%d %d\n",k,n);
}
程序運行後的輸出結果是
A)0 2
B)1 3
C)5 7
D)1 2
A B C D
22.
(22)有以下定義語句,編譯時會出現編譯錯誤的是
A) char a='a';
B) char a='\n';
C) char a='aa';
D) char a='\x2d';
A B C D
23.
(23)有以下程序
#include <stdio.h>
main()
{ char c1,c2;
c1='A'+'8'-'4';
c2='A'+'8'-'5';
printf("%c,%d\n",c1,c2);
}
已知字母A的ASCII碼為65,程序運行後的輸出結果是
A)E,68
B)D,69
C)E,D
D)輸出無定值
A B C D
24.
(24)有以下程序
#include <stdio.h>
void fun(int p)
{ int d=2;
p=d++;
printf("%d",p);
}
main()
{ int a=1;
fun(a);
printf("%d\n",a);
}
程序運行後的輸出結果是
A)32
B)12
C)21
D)22
A B C D
25.
(25)以下函數findmax擬實現在數組中查找最大值並作為函數值返回,
但程序中有錯導致不能實現預定功能
#define MIN -2147463647
int findmax(int x[],int n)
{ int i,max;
for(i=0;i<n;i++)
{ max=MIN;
if(max<x[i]) max=x[i];
}
return max;
}
造成錯誤的原因是
A)定義語句int i,max中max未賦值
B)賦值語句max=MIN;中,不應該給max賦MIN值
C)語句if(max<x[i]) max=x[i];中判斷條件設置錯誤
D)賦值語句max=MIN;放錯了位置
A B C D
26.
(26)有以下程序
#include <stdio.h>
main()
{ int m=1,n=2,*p=&m,*q=&n,*r;
r=p;p=q;q=r;
printf("%d,%d,%d,%d\n",m,n,*p,*q);
}
程序運行後的輸出結果是
A)1,2,1,2
B)1,2,2,1
C)2,1,2,1
D)2,1,1,2
A B C D
27.
(27)若有定義語句: int a[4][10],*p,*q[4];且0<=i<4,則錯誤的賦值是
A)p=a
B)q[i]=a[i]
C)p=a[i]
D)p=&a[2][1]
A B C D
28.
(28)有以下程序
#include <stdio.h>
#include <string.h>
main()
{ char str[][20]={"One*World","One*Dream!"},*p=str[1];
printf("%d,",strlen(p));
printf("%s\n",p);
}
程序運行後的輸出結果是
A)9,One*World
B)9,One*Dream!
C)10,One*Dream!
D)10,One*World
A B C D
29.
(29)有以下程序
#include <stdio.h>
main()
{ int a[]={2,3,5,4},i;
for(i=0;i<4;i++)
switch(i%2)
{ case 0:
switch(a[i]%2)
{ case 0:a[i]++;break;
case 1:a[i]--;
} break;
case 1:a[i]=0;
}
for(i=0;i<4;i++)
printf("%d ",a[i]);
printf("\n");
}
程序運行後的輸出結果是
A)3 3 4 4
B)2 0 5 0
C)3 0 4 0
D)0 3 0 4
A B C D
30.
(30)有以下程序
#include <stdio.h>
#include <string.h>
main()
{ char a[10]="abcd";
printf("%d,%d\n",strlen(a),sizeof(a));
}
程序運行後的輸出結果是
A)7,4
B)4,10
C)8,8
D)10,10
A B C D
31.
(31)下面是有關C語言字元數組的描述,其中錯誤的是
A)不可以用賦值語句給字元數組名賦字元串
B)可以用輸入語句把字元串整體輸入給字元數組
C)字元數組中的內容不一定是字元串
D)字元數組只能存放字元串
A B C D
32.
(32)下列函數的功能是
fun(char *a,char *b)
{ while((*b=*a)!='\0'){a++;b++;} }
A)將a所指字元串賦給b所指空間
B)使指針b指向a所指字元串
C)將a所指字元串和b所指字元串進行比較
D)檢查a和b所指字元串中是否有'\0'
A B C D
33.
(33)設有以下函數:
void fun(int n,char *s){……}
則下面對函數指針的定義和賦值均正確的是
A)void (*pf)(); pf=fun;
B)void *pf(); pf=fun;
C)void *pf(); *pf=fun;
D)void (*pf)(int,char);pf=&fun;
A B C D
34.(34)有以下程序
#include <stdio.h>
int f(int n);
main()
{ int a=3,s;
s=f(a);s=s+f(a);printf("%d\n",s);
}
int f(int n)
{ static int a=1;
n+=a++;
return n;
}
程序運行後的輸出結果是
A)7
B)8
C)9
D)10
A B C D
35.
(35)有以下程序
#include <stdio.h>
#define f(x) x*x*x
main()
{ int a=3,s,t;
s=f(a+1);t=f((a+1));
printf("%d,%d\n",s,t);
}
程序運行後的輸出結果是
A)10,64
B)10,10
C)64,10
D)64,64
A B C D
36.
(36)下面結構體的定義語句中,錯誤的是
A)struct ord {int x;int y;int z;};struct ord a;
B)struct ord {int x;int y;int z;} struct ord a;
C)struct ord {int x;int y;int z;} n;
D)struct {int x;int y;int z;} a;
A B C D
37.(37)設有定義: char *c;以下選項中能夠使字元型指針C正確指向一個字元串的是
A) char str[]="string";c=str;
B) scanf("%s",c);
C) c=getchar();
D) *c="string";
A B C D
38.
(38)有以下程序
#include <stdio.h>
#include <string.h>
struct A
{ int a;char b[10];double c;};
struct A f(struct A t);
main()
{ struct A a={1001,"ZhangDa",1098.0};
a=f(a); printf("%d,%s,%6.1f\n",a.a,a.b,a.c);
}
struct A f(struct A t)
{ t.a=1002;strcpy(t.b,"ChangRong");t.c=1202.0;return t;}
程序運行後的輸出結果是
A)1001,ZhangDa,1098.0
B)1002,ZhangDa,1202.0
C)1001,ChangRong,1098.0
D)1002,ChangRong,1202.0
A B C D
39.
(39)有以下程序
int r=8;
printf("%d\n",r>>1);
輸出結果是
A)16
B)8
C)4
D)2
A B C D
40.
(40)下列關於C語言文件的敘述中正確的是
A)文件由一系列數據一次排列組成,只能構成二進制文件
B)文件由結構序列組成,可以構成二進制文件或文本文件
C)文件由數據序列組成,可以構成二進制文件或文本文件
D)文件由字元序列組成,只能是文本文件
A B C D
二、填空題(每空2分,共計30分)
1.(1)某二叉樹有5個度為2的結點以及3個度為1的結點,則該二叉樹中共有【1】個結點。
輸入答案,中間不含空格:
2.
(2)程序流程圖中菱形框表示的是【2】
輸入答案,中間不含空格:
3.
(3)軟體開發過程主要分為需求分析、設計、編碼與測試四個階段。其中【3】階段
產生」軟體需求規格說明書「。
輸入答案,中間不含空格:
4.
(4)在資料庫技術中,實體集之間的聯系可以是一對一或一對多或多對多的,那麼」學生「
和"可選課程"的聯系為【4】
輸入答案,中間不含空格:
5.
(5)人員基本信息一般包括:身份證號,姓名,性別,年齡等。其中可以作為主關鍵字的
是【5】
輸入答案,中間不含空格:
6.
(6)若有定義語句:int a=5;,則表達式a++的值是【6】。
輸入答案,中間不含空格:
7.
(7)若有語句double x=17;int y;,當執行y=(int)(x/5)%2;之後y的值是【7】
輸入答案,中間不含空格:
8.
(8)以下程序運行後的輸出結果是【8】
#include <stdio.h>
main()
{ int x=20;
printf("%d ",0<x<20);
printf("%d\n",0<x&&x<20);
}
輸入答案,中間不含空格:
9.
(9)以下程序運行後的輸出結果是【9】
#include <stdio.h>
main()
{ int a=1,b=7;
do{
b=b/2;a+=b;
} while (b>1);
printf("%d\n",a);
}
輸入答案,中間不含空格:
10.
(10)有一下程序
#include <stdio.h>
main()
{ int f,f1,f2,i;
f1=0;f2=1;
printf("%d %d ",f1,f2);
for(i=3;i<=5;i++)
{ f=f1+f2; printf("%d",f);
f1=f2; f2=f;
}
printf("\n");
}
程序運行後的輸出結果是【10】
輸入答案,中間不含空格:
11.
(11)有以下程序
#include <stdio.h>
int a=5;
void fun(int b)
{ int a=10;
a+=b; printf("%d",a);
}
main()
{ int c=20;
fun(c); a+=c; printf("%d\n",a);
}
程序運行後的輸出結果是【11】
輸入答案,中間不含空格:
12.
(12)設有定義
struct person
{ int ID;char name[12];} p;
請將scanf("%d",【12】);語句補充完整,使其能夠為結構體變數p的
成員ID正確讀入數據。
輸入答案,中間不含空格:
13.
(13)有以下程序
#include <stdio.h>
main()
{ char a[20]="How are you?",b[20];
scanf("%s",b); printf("%s %s\n",a,b);
}
程序運行時從鍵盤輸入: How are you?<回車>
則輸出結果為【13】
輸入答案,中間不含空格:
14.
(14)有以下程序
#include <stdio.h>
typedef struct
{ int num;double s;} REC;
void fun1(REC x){ x.num=23;x.s=88.5; }
main()
{ REC a={16,90.0};
fun1(a);
printf("%d\n",a.num);
}
輸入答案,中間不含空格:
15.
(15)有以下程序
#include <stdio.h>
fun(int x)
{ if(x/2>0) fun(x/2);
printf("%d ",x);
}
main()
{ fun(6);printf("\n");}
程序運行後的輸出結果是【15】
輸入答案,中間不含空格:
『玖』 2010全國計算機二級C語言考試的南開100題word版及公共基礎的重要知識點
以下資料已發,請注意查收
2010.3上機題庫.zip (125.53K)
2010二級C語言南開100題.doc (93.50K)
2010年全國計算機等級考試+++++二級C語言考試大綱.doc (24.50K)
經典C語言程序設計20例.doc (65.50K)
[最新C語言編程一百道習題][chupeisi][PDF].pdf (551.98K)
09年南開100套題(C語言).doc (1.62M)
C語言超級經典400道題目.doc (187.50K)
計算機等級二級C語言程序設計100例.doc (168K)
01_2009年9月C語言及公共基礎串講資料.doc (243K)
02_2009年3月C語言筆試沖刺復習資料.doc (93K)
06 二級公共基礎知識考點精講.rar (101.98K)
08 二級公共基礎知識習題(2009年3月).rar (31.84K)
01 二級公共基礎120題詳解版.doc (233.50K)
02 二級公共基礎09年3月沖刺復習資料.doc (92K)
03 二級公共基礎輔導講義.doc (805.50K)
04 二級公共基礎考點解析.doc (260.50K)
05 二級公共基礎試題及詳解.doc (79.50K)
09 二級公共基礎總結.doc (61.50K)
10 二級公共基礎知識教程.doc (427K)
13 數據結構與演算法.doc (67.50K)
13 數據結構與演算法習題.doc (54K)
11 公共基礎知識要點及歷年真題.pdf (469.89K)
2010年九月二級C語言上機100題word版.doc (1.34M)
2010年03月二級C語言筆試.doc (149K)
2010.9二級C語言考試專用上機模擬系統.zip (54MB)