Ⅰ 計算機二級c語言程序設計有哪些題型,考什麼內容
計算機二級有國考和省考兩種,我只說國考,省考是省教育考試院組織的,每個省不一樣。
全國計算機二級C語言程序設計包括40個單選題(每題一分)和三道操作題(60分)。
單選題中1~10題為二級公共基礎知識,單選題的11~40題是C語言的內容。
操作題包括程序填空(18分)、程序改錯(18分)和編程題(24分)各一題。
程序填空是將一個完整的程序,扣掉兩到三處,讓考生將它填寫完整。由於每位考生具體抽到的題目不同,程序填空有2到3個空要填。
程序改錯也是一個完整的程序,其中有2~3處錯誤要求考生將他們改正。程序改錯題會提示每一處錯誤在第幾行,在那一行的上一行有********found********標識。
編程題是要求考生編寫一個程序,然後運行出題干要求的結果。題目中主函數main()會完整給出,在主函數中將調用fun()函數,fun函數由考生自己編寫。編程題以運行結果給分,所編寫完成後必須運行,否則沒分。
二級C語言程序設計考試涉及公共基礎知識和C語言兩塊。公共基礎知識內容包括數據結構與演算法、程序設計基礎、軟體工程基礎、資料庫設計基礎四部分。考10個單選每個1分。
C語言有基礎知識(C語言概述、常量與變數、數據類型、運算符和表達式),編程三大結構(順序結構、選擇結構、循環結構),數組、函數和指針,其他內容(預處理命令、結構體和共用體、位運算、文件)四大部分內容。重點是第二、三部分。
Ⅱ 國二c語言筆試選擇題考哪些內容
(1)前面的選擇題是基礎知識 ,二級C語言知識點分布包括:數據結構與演算法 、程序設計基礎1,軟體工程基礎,資料庫設計基礎,C程序設計的初步知識,順序結構設計,選擇結構程序設計。循環結構程序設計,函數,指針與數組,編譯與處理與動態存儲分配,結構體與共用體),位運算,文件操作,考查的知識點比較細致,例如PAD圖,線性結構與非線性結構、程序的編譯與解釋、if語句的邏輯判斷、C程序的執行過程、格式控制、循環執行次數,指針與數組的應用,if語句的嵌套,數組的應用,靜態局部變數,預處理,結構體指針變數,位運算等等。
(2)考試的常見知識點:例如基本的數據結構,資料庫的基本概念,軟體生命周期概念,查找和排序演算法。程序設計的方法與風格,結構化的分析方法,數據流圖,數據字典和軟體需求規格說明書,結構化分析方法,總體設計和詳細設計,軟體測試,關系運算,C程序的構成與格式,常用數據類型,運算符和表達式,輸入輸出函數,if語句和switch語句,while,for語句的使用,函數的基本概念,函數的返回值,參數傳遞中的傳值方法與傳地址方法,靜態存儲變數,指針與數組的基礎知識,字元串的應用,指針與數組的關系,預處理與動態存儲分配,結構體的定義和變數的引用,文件操作。
需要注意的是不要以為C語言就是單純的考C語言程序,也要注意關於編程的一些基礎知識和計算機的知識,對裡面的程序題要特別的小心才是,做題的時候要用筆畫出來具體的步驟,這樣避免出錯,反正小心應對便是
Ⅲ 國二c語言題目
這是tc跑出的結果~
解釋如下:
intt;
t=c[0];c[0]=c[1];c[1]=t;
上面兩行代碼是常用的交換演算法,把數組第一個元素給t,
然後後面挨著的依次賦值給前一位元素,最後再把t賦值給
最後一位元素,這樣就達到了數組整體依次遷移的目的,
上面這些你因該明白吧~廢話了~
下面是關鍵:
swap1();函數達到了交換的目的;(這是因為它接收的是指針/叫地址也可,它直接對內存空間進行操作(單向傳遞));
swap2();函數沒有達到交換的目的;(這是因為它接收的是變數,變數是只能把值傳入函數,但函數內部的操作無法傳出//即函數內無法改變函數外的變數的值(雙向傳遞));
能理解吧~因該沒問題哦~
Ⅳ c語言二級考試題及答案
2011年3月全國計算機等級考試二級筆試試卷
C語言程序設計
(考試時間90分鍾,滿分100分)
一、 選擇題(1-10,21-40每題2分,11-20每題1分,共70分)
(1)下列關於棧敘述正確的是
A)棧頂元素最先能被刪除
B)棧頂元素最後才能被刪除
C)棧底元素永遠不能被刪除
D)以上三種說法都不對
(2)下列敘述中正確的是
A)有一個以上根結點的數據結構不一定是非線性結構
B)只有一個根結點的數據結構不一定是線性結構
C)循環鏈表是非線性結構
D)雙向鏈表是非線性結構
(3)某二叉樹共有7個結點,其中葉子結點只有1個,則該二叉樹的深度為(假設根結點在第1層)
A)3 B)4 C)6 D)7
(4)在軟體開發中,需求分析階段產生的主要文檔是
A)軟體集成測試計劃 B)軟體詳細設計說明書
C)用戶手冊 D)軟體需求規格說明書
(5)結構化程序所要求的基本結構不包括
A)順序結構 B)GOTO跳轉
C)選擇(分支)結構 D)重復(循環)結構
(6)下面描述中錯誤的是
A)系統總體結構圖支持軟體系統的詳細設計
B)軟體設計是將軟體需求轉換為軟體表示的過程
C)數據結構與資料庫設計是軟體設計的任務之一
D)PAD圖是軟體詳細設計的表示工具
(7)負責資料庫中查詢操作的資料庫語言是
A)數據定義語言
B)數據管理語言
C)數據操縱語言
D)數據控制語言
(8)一個教師可講授多門課程,一門課程可由多個教師講授。則實體教師和課程間的聯系是
A)1:1聯系 B)1:m聯系
C)m:1聯系 D)m:n聯系
(9)有三個關系R、S和T如下:
則由關系R和S得到關系T的操作是
A)自然連接 B)交 C)除 D)並
(10)定義無符號整數類為UInt,下面可以作為類UInt實例化值的是
A)-369 B)369 C)0.369 D)整數集合{1,2,3,4,5}
(11)計算機高級語言程序的運行方法有編譯執行和解釋執行兩種,以下敘述中正確的是
A)C語言程序僅可以編譯執行
B)C語言程序僅可以解釋執行
C)C語言程序既可以編譯執行又可以解釋執行
D)以上說法都不對
(12)以下敘述中錯誤的是
A)C語言的可執行程序是由一系列機器指令構成的
B)用C語言編寫的源程序不能直接在計算機上運行
C)通過編譯得到的二進制目標程序需要連接才可以運行
D)在沒有安裝C語言集成開發環境的機器上不能運行C源程序生成的.exe文件
(13)以下選項中不能用作C程序合法常量的是
A)1,234 B)'123'
C)123 D)"\x7G"
(14)以下選項中可用作C程序合法實數的是
A).1e0 B)3.0e0.2
C)E9 D)9.12E
(15)若有定義語句:inta=3,b=2,c=1;,以下選項中錯誤的賦值表達式是
A)a=(b=4)=3; B)a=b=c+1;
C)a=(b=4)+c; D)a=1+(b=c=4);
(16)有以下程序段
char name[20];
int num;
scanf("name=%s num=%d",name;&num);
當執行上述程序段,並從鍵盤輸入:name=Lili num=1001<回車>後,name的值為
A)Lili B)name=Lili C)Lili num= D)name=Lili num=1001
(17)if語句的基本形式是:if(表達式)語句,以下關於「表達式」值的敘述中正確的是
A)必須是邏輯值 B)必須是整數值
C)必須是正數 D)可以是任意合法的數值
(18)有以下程序
#include
main()
{ int x=011;
printf("%d\n",++x);
}
程序運行後的輸出結果是
A)12 B)11 C)10 D)9
(19)有以下程序
#include
main()
{ int s;
scanf("%d",&s);
while(s>0)
{ switch(s)
{ case1:printf("%d",s+5);
case2:printf("%d",s+4); break;
case3:printf("%d",s+3);
default:printf("%d",s+1);break;
}
scanf("%d",&s);
}
}
運行時,若輸入1 2 3 4 5 0<回車>,則輸出結果是
A)6566456 B)66656 C)66666 D)6666656
(20)有以下程序段
int i,n;
for(i=0;i<8;i++)
{ n=rand()%5;
switch (n)
{ case 1:
case 3:printf("%d\n",n); break;
case 2:
case 4:printf("%d\n",n); continue;
case 0:exit(0);
}
printf("%d\n",n);
}
以下關於程序段執行情況的敘述,正確的是
A)for循環語句固定執行8次 B)當產生的隨機數n為4時結束循環操作
C)當產生的隨機數n為1和2時不做任何操作D)當產生的隨機數n為0時結束程序運行
(21)有以下程序
#include
main()
{ char s[]="012xy\08s34f4w2";
int i,n=0;
for(i=0;s[i]!=0;i++)
if(s[i]>='0'&&s[i]<='9') n++;
printf("%d\n",n);
}
程序運行後的輸出結果是
A)0 B)3 C)7 D)8
(22)若i和k都是int類型變數,有以下for語句
for(i=0,k=-1;k=1;k++) printf("*****\n");
下面關於語句執行情況的敘述中正確的是
A)循環體執行兩次B)循環體執行一次C)循環體一次也不執行D)構成無限循環
(23)有以下程序
#include
main()
{ char b,c; int i;
b='a'; c='A';
for(i=0;i<6;i++)
{ if(i%2) putchar(i+b);
else putchar(i+c);
} printf("\n");
}
程序運行後的輸出結果是
A)ABCDEF B)AbCdEf C)aBcDeF D)abcdef
(24)設有定義:doublex[10],*p=x;,以下能給數組x下標為6的元素讀入數據的正確語句是
A)scanf("%f",&x[6]); B)scanf("%lf",*(x+6));
C)scanf("%lf",p+6); D)scanf("%lf",p[6]);
(25)有以下程序(說明:字母A的ASCII碼值是65)
#include
void fun(char *s)
{ while(*s)
{ if(*s%2) printf("%c",*s);
s++;
}
}
main()
{ char a[]="BYTE";
fun(a); printf("\n");
}
程序運行後的輸出結果是
A) BY B) BT C) YT D) YE
(26)有以下程序段
#include
main()
{ …
while( getchar()!='\n');
…
}
以下敘述中正確的是
A)此while語句將無限循環
B) getchar()不可以出現在while語句的條件表達式中
C)當執行此while語句時,只有按回車鍵程序才能繼續執行
D)當執行此while語句時,按任意鍵程序就能繼續執行
(27)有以下程序
#include
main()
{ int x=1,y=0;
if(!x) y++;
else if(x==0)
if (x) y+=2;
else y+=3;
printf("%d\n",y);
}
程序運行後的輸出結果是
A)3 B)2 C)1 D) 0
(28)若有定義語句:chars[3][10],(*k)[3],*p;,則以下賦值語句正確的是
A)p=s; B)p=k; C)p=s[0]; D)k=s;
(29)有以下程序
#include
void fun(char *c)
{ while(*c)
{ if(*c>='a'&&*c<='z') *c=*c-('a'-'A');
c++;
}
}
main()
{ char s[81];
gets(s); fun(s); puts(s):
}
當執行程序時從鍵盤上輸入Hello Beijing<回車>,則程序的輸出結果是
A)hello beijing B)Hello Beijing C)HELLO BEIJING D)hELLO Beijing
(30)以下函數的功能是:通過鍵盤輸入數據,為數組中的所有元素賦值。
#include
#define N 10
void fun(int x[N])
{ int i=0;
while(i<>
}
在程序中下劃線處應填入的是
A)x+i B)&x[i+1]C)x+(i++) D)&x[++i]
(31)有以下程序
#include
main()
{ char a[30],b[30];
scanf("%s",a);
gets(b);
printf("%s\n %s\n",a,b);
}
程序運行時若輸入:
how are you? I am fine<回車>
則輸出結果是
A)how are you? B)how I am fine are you? I am fine
C)how are you? I am fine D)row are you?
(32)設有如下函數定義
int fun(int k)
{ if (k<1) return 0;
else if(k==1) return 1;
else return fun(k-1)+1;
}
若執行調用語句:n=fun(3);,則函數fun總共被調用的次數是
A)2 B)3 C)4 D)5
(33)有以下程序
#include
int fun (int x,int y)
{ if (x!=y) return ((x+y);2);
else return (x);
}
main()
{ int a=4,b=5,c=6;
printf("%d\n",fun(2*a,fun(b,c)));
}
程序運行後的輸出結果是 A)3 B)6 C)8 D)12
(34)有以下程序
#include
int fun()
{ static int x=1;
x*=2;
return x;
}
main()
{ int i,s=1;
for(i=1;i<=3;i++) s*=fun();
printf("%d\n",s);
}
程序運行後的輸出結果是 A)0 B)10 C)30 D)64
(35)有以下程序
#include
#define S(x) 4*(x)*x+1
main()
{ int k=5,j=2;
printf("%d\n",S(k+j));
}
程序運行後的輸出結果是 A)197 B)143 C)33 D)28
(36)設有定義:struct {charmark[12];int num1;double num2;} t1,t2;,若變數均已正確賦初值,則以下語句中錯誤的是
A)t1=t2; B)t2.num1=t1.num1;C)t2.mark=t1.mark; D)t2.num2=t1.num2;
(37)有以下程序
#include
struct ord
{ int x,y;}dt[2]={1,2,3,4};
main()
{
struct ord *p=dt;
printf("%d,",++(p->x));printf("%d\n",++(p->y));
}
程序運行後的輸出結果是 A)1,2 B)4,1 C)3,4 D)2,3
(38)有以下程序
#include
struct S
{ int a,b;}data[2]={10,100,20,200};
main()
{ struct S p=data[1];
printf("%d\n",++(p.a));
}
程序運行後的輸出結果是 A)10 B)11 C)20 D)21
(39)有以下程序
#include
main()
{ unsigned char a=8,c;
c=a>>3;
printf("%d\n",c);
}
程序運行後的輸出結果是 A)32 B)16 C)1 D)0
(40)設fp已定義,執行語句fp=fopen("file","w");後,以下針對文本文件file操作敘述的選項中正確的是
A)寫操作結束後可以從頭開始讀 B)只能寫不能讀
C)可以在原有內容後追加寫 D)可以隨意讀和寫
二、填空題
(1)有序線性表能進行二分查找的前提是該線性表必須是 【1】 存儲的。
(2)一棵二叉樹的中序遍歷結果為DBEAFC,前序遍歷結果為ABDECF,則後序遍歷結果為 【2】 。
(3)對軟體設計的最小單位(模塊或程序單元)進行的測試通常稱為【3】 測試
。
(4)實體完整性約束要求關系資料庫中元組的 【4】 屬性值不能為空。
(5)在關系A(S,SN,D)和關系B(D,CN,NM)中,A的主關鍵字是S,B的主關鍵字是D,則稱 【5】 是關系A的外碼。
(6)以下程序運行後的輸出結果是 【6】。
#include
main()
{ int a;
a=(int)((double)(3/2)+0.5+(int)1.99*2);
printf("%d\n",a);
}
(7)有以下程序
#include
main()
{ int x;
scanf("%d",&x);
if(x>15) printf("%d",x-5);
if(x>10) printf("%d",x);
if(x>5) printf("%d\n",x+5);
}
若程序運行時從鍵盤輸入12<回車>,則輸出結果為 【7】 。
(8)有以下程序(說明:字元0的ASCII碼值為48)
#include
main()
{ char c1,c2;
scanf("%d",&c1);
c2=c1+9;
printf("%c%c\n",c1,c2);
}
若程序運行時從鍵盤輸入48<回車>,則輸出結果為 【8】 。
(9)有以下函數
void prt(char ch,int n)
{ int i;
for(i=1;i<=n;i++)
printf(i%6!=0?"%c":"%c\n",ch);
}
執行調用語句prt('*',24);後,函數共輸出了 【9】 行*號。
(10)以下程序運行後的輸出結果是 【10】。
#include
main()
{ int x=10,y=20,t=0;
if(x==y)t=x;x=y;y=t;
printf("%d %d\n",x,y);
}
(11)己知a所指的數組中有N個元素。函數fun的功能是,將下標k(k>0)開始的後續元素全部向前移動一個位置。請填空。
void fun(int a[N],int k)
{ int i;
for(i=k;i
}
(12)有以下程序,請在 【12】 處填寫正確語句,使程序可正常編譯運行。
#include
【12】 ;
main()
{ double x,y,(*p)();
scanf("%lf%lf",&x,&y);
p=avg;
printf("%f\n",(*p)(x,y));
}
double avg(double a,double b)
{ return((a+b)/2);}
(13)以下程序運行後的輸出結果是 【13】。
#include
main()
{ int i,n[5]={0};
for(i=1;i<=4;i++)
{ n[i]==n[i-1]*2+1; printf("%d",n[i]); }
printf("\n");
}
(14)以下程序運行後的輸出結果是 【14】。
#include
#include
#include
main()
{ char *p; int i;
p=(char *)malloc(sizeof(char)*20);
strcpy(p,"welcome");
for(i=6;i>=0;i--) putchar(*(p+i));
printf("\n-"); free(p);
}
(15)以下程序運行後的輸出結果是 【15】。
#include
main()
{ FILE *fp; int x[6]={1,2,3,4,5,6},i;
fp=fopen("test.dat","wb");
fwrite(x,sizeof(int),3,fp);
rewind(fp);
fread(x,sizeof(int),3,fp);
for(i=0;i<6;i++) printf("%d",x[i]);
printf("\n");
fclose(fp);
}
2011年3月全國計算機等級考試二級筆試試卷
C語言程序設計答案
一.選擇題1-5 ABDDB
6-10 ACDCB 11-15 ADBAA
16-20 ADCAD 21-25 BDBCD
26-30 CDCCC 31-35 BBBDB
36-40 CDDCB
二,填空題
1) 順序 2) DEBFCA 3) 單元測試 4) 主鍵 5) D 6) 3 7) 1217
8) 09 9) 4 10) 20 0 11) i-1 12) double avg(doublea,double b) 13) 13715
14) e(E)moclew 15) 123456
2010年9月全國計算機等級考試二級C筆試試卷答案
一、選擇題
1~5: BCDAA 6~10:DDCCA 11~15:CBBAD 16~20: DAACB
21~25: BCBDC 26~30 :CBDDA 31~35:ACBCD 36~40 :BACBD
二、填空
1.1DCBA2345 2.n-1 3.25 4.結構化 5.物理設計 6.2008
7.15 8.非0 9. 1 4 13 40 10.i 11.2
12.a[row][col] 13.3 14.*s 15.FILE
Ⅳ c語言國二的題,求解,急!!!詳細一點的
你那個編程題是atoi函數,我就給你粘一個得了,不給你寫了,祝你考試順利!
把這裡面的pstr換成你那個函數參數p
intmy_atoi(char*pstr)
{
intRet_Integer=0;
intInteger_sign=1;
/*
*判斷指針是否為空
*/
if(pstr==NULL)
{
printf("PointerisNULL ");
return0;
}
/*
*跳過前面的空格字元
*/
while(isspace(*pstr)==0)
{
pstr++;
}
/*
*判斷正負號
*如果是正號,指針指向下一個字元
*如果是符號,把符號標記為Integer_sign置-1,然後再把指針指向下一個字元
*/
if(*pstr=='-')
{
Integer_sign=-1;
}
if(*pstr=='-'||*pstr=='+')
{
pstr++;
}
/*
*把數字字元串逐個轉換成整數,並把最後轉換好的整數賦給Ret_Integer
*/
while(*pstr>='0'&&*pstr<='9')
{
Ret_Integer=Ret_Integer*10+*pstr-'0';
pstr++;
}
Ret_Integer=Integer_sign*Ret_Integer;
returnRet_Integer;
}
Ⅵ 計算機二級C語言筆試題和面試題答案目
如下這份計算機二級C語言筆試題目對於要考基計算機二級證書的朋友來說,應該會很有幫助,需要的朋友趕緊收藏吧!
一、選擇題((1)-(10),(21)-(40)每題2分,(11)-(20)每題1分,共70分)
下列各題A)、B)、C)、D)四個選項中,只有一個選項是正確的。請將正確選項填塗在答題卡相應位置上,答在試卷上不得分。
1. 下列敘述中正確的是
A 線性表的鏈式存儲結構與順序存儲結構所需要的存儲空間是相同的
B 線性表的鏈式存儲結構所需要的存儲空間一般要多於順序存儲結構
C 線性表的鏈式存儲結構所需要的存儲空間一般要少於順序存儲結構
D 上述三種說法都不對 答案:B
2. 下列敘述中正確的是
A 在棧中,棧中元素隨棧底指針與棧頂指針的變化而動態變化
B 在棧中,棧頂指針不變,棧中元素隨棧底指針的變化而動態變化
C 在棧中,棧底指針不變,棧中元素隨棧頂指針的變化而動態變化
D 上述三種說法都不對 答案:C
3. 軟體測試的目的是
A 評估軟體可靠性 B 發現並改正程序中的錯誤 C 改正程序中的錯誤
D 發現程序中的錯誤 答案:B
4. 下面描述中,不屬於軟體危機表現的是
A 軟體過程不規范 B 軟體開發生產率低 C 軟體質量難以控制
D 軟體成本不斷提高 答案:A
5. 軟體生命周期是指
A 軟體產品從提出、實現、使用維護到停止使用退役的過程
B 軟體從需求分析、設計、實現到測試完成的過程 C 軟體的開發過程
D 軟體的運行維護過程 答案:A
6. 面向對象方法中,繼承是指
A 一組對象所具有的相似性質 B 一個對象具有另一個對象的性質 C 各對象之間的共同性質 D 類之間共享屬性和操作的機制 答案:D
7. 層次型、網狀型和關系型資料庫劃分原則是
A 記錄長度 B 文件的大小 C 聯系的復雜程度
D 數據之間的聯系方式 答案:D
8. 一個工作人員可以使用多台計算機,而一台計算機可被多個人使用,則實體工作人員、與實體計算機之間的聯系是
A 一對一B 一對多C 多對多D 多對一 答案:C
9. 資料庫設計中反映用戶對數據要求的模式是
A 內模式B 概念模式C 外模式D 設計模式 答案:C
10. 有三個關系R、S和T如下:則由關系R和S得到關系T的操作是
A 自然連接B 交C 投影D 並 答案:A
11. 以下關於結構化程序設計的敘述中正確的是
A 一個結構化程序必須同時由順序、分支、循環三種結構組成
B 結構化程序使用goto語句會很便捷 C 在C語言中,程序的模塊化是利用函數實現的
D 由三種基本結構構成的程序本文由論文聯盟http://www.LWLm.coM收集整理只能解決小規模的問題 答案:C
12. 以下關於簡單程序設計的步驟和順序的說法中正確的是
A 確定演算法後,整理並寫出文檔,最後進行編碼和上機調試
B 首先確定數據結構,然後確定演算法,再編碼,並上機調試,最後整理文檔
C 先編碼和上機調試,在編碼過程中確定演算法和數據結構,最後整理文檔
D 先寫好文檔,再根據文檔進行編碼和上機調試,最後確定演算法和數據結構 答案:D
13. 以下敘述中錯誤的是
A C程序在運行過程中所有計算都以二進制方式進行 B C程序在運行過程中所有計算都以十進制方式進行 C 所有C程序都需要編譯鏈接無誤後才能運行
D C程序中整型變數只能存放整數,實型變數只能存放浮點數 答案:B
14. 有以下定義:inta; longb; doublex,y;則以下選項中正確的表達式是
A a%(int)(x-y) B a=x!=y; C (a*y)%b D y=x+y=x 答案:C
15. 以下選項中能表示合法常量的是
A 整數:1,200 B 實數:1.5E2.0 C 字元斜杠:‘\’ D 字元串:"\007" 答案:C
16. 表達式a+=a-=a=9的值是
A 9 B _9 C 18 D 0 答案:D
17. 若變數已正確定義,在if (W)printf(“%d\n,k”);中,以下不可替代W的是
A a<>b+c B ch=getchar() C a==b+c D a++ 答案:A
18. 有以下程序
#include
main()
{inta=1,b=0;
if(!a) b++;
elsEif(a==0)if(a)b+=2;
elseb+=3;
printf(”%d\n”,b);
}
程序運行後的輸出結果是
A 0 B 1 C 2 D 3 答案:C
20. 有以下程序
#include
main()
{int a=1,b=2;
while(a<6){b+=a;a+=2;b%二10;}
printf(”%d,%d\n”,a,b);
}
程序運行後的輸出結果是
A 5,11 B 7,1 C 7,11 D 6,1 答案:D
21. 有以下程序
#include
main()
{int y=10;
while(y--);
printf(”Y=%d\n”,Y);
}
程序執行後的輸出結果是
A y=0 B y= -1 C y=1 D while構成無限循環 答案:B
22. 有以下程序
#include
main()
{char s[」=”rstuv";
printf(”%c\n”,*s+2);
}
程序運行後的輸出結果是
A tuv B 字元t的ASCII碼值 C t D 出錯 答案:D
23. 有以下程序
#include
#include
main()
{char x[]=”STRING”;
x[0」=0;x=’\0’;x[2」=’0’;
printf(”%d%d\n”,sizeof(x),strlen(x));
}
程序運行後的輸出結果是
A 61 B 70 C 63 D 71 答案:B
24. 有以下程序
#include
Int f(intx);
main()
{intn=1,m;
m=f(f(f(n)));printf(”%d\n”,m);
}
intf(intx)
{returnx*2;}
程序運行後的輸出結果是
A 1 B 2 C 4 D 8 答案:D
25. 以下程序段完全正確的是
A int *p;scanf("%d",&p); B int *p;scanf(“%d”,p);
C int k, *p=&k;scanf("%d",p); D int k, *p:;*p= &k; scanf(“%d”,p); 答案:D
26. 有定義語句:int *p[4];以下選項中與此語句等價的是
A intp[4]; B int**p; C int*(p「4」); D int (*p)「4」; 答案:D
27. 下列定義數組的語句中,正確的是
A B C intx[0..10]; D int x[]; 答案:B
28. 若要定義一個具有5個元素的整型數組,以下錯誤的定義語句是
A inta[5]=﹛0﹜; B intb[]={0,0,0,0,0}; C intc[2+3]; D inti=5,d[i]; 答案:A
29. 有以下程序
#include
voidf(int *p);
main()
{inta[5]={1,2,3,4,5},*r=a;
f(r);printf(”%d\n”;*r);
}
void f(int *p)
{p=p+3;printf(”%d,”,*p);}
程序運行後的輸出結果是
A 1,4 B 4,4 C 3,1 D 4,1 答案:D
30. 有以下程序(函數fun只對下標為偶數的元素進行操作)
# include
void fun(int*a;int n)
{int i、j、k、t;
for (i=0;i
Ⅶ 09年9月份國二C語言上機題庫
一、選擇題(每小題1分,共60分)
(1)1959年10月我國研製成功的一台通用大型電子管計算機是
A)103計算機
B)104計算機
C) 720計算機
D)l30計算機 〔答案討論〕
(2)關於計算機應用的描述中,錯誤的是
A)模擬核爆炸是一種特殊的研究方法
B)天氣預報採用了巨型計算機處理數據
C)經濟運行模型還不能用計算機模擬
D)過程式控制制可採用低檔微處理器晶元 〔答案討論〕
(3)關於伺服器的描述中,正確的是
A)按體系結構分為入門級、部門級、企業級伺服器
B)按用途分為台式、機架式、機櫃式伺服器
C)按處理器類型分為文件、資料庫伺服器
D)刀片式伺服器的每個刀片是一塊系統主板 〔答案討論〕
(4)關於計算機配置的描述中,錯誤的是
A)伺服器機箱的個數用1U/2U/3U/……/8U表示
B)現在流行的串列介面硬碟是SATA硬碟
C)獨立磁碟冗餘陣列簡稱磁碟陣列
D)串列SCSI硬碟簡稱SAS硬碟
(5)關於軟體開發的描述中,正確的是
A)軟體生命周期包括計劃、開發兩個階段
B)開發初期進行需求分析、總體設計、詳細設計
C)開發後期進行編碼、測試、維護
D)軟體運行和使用中形成文檔資料 〔答案討論〕
(6)關於多媒體的描述中,錯誤的是
A)多媒體的數據最很大,必須進行壓縮才能實用
B)多媒體信息有許多冗餘,這是進行壓縮的基礎
C)信息熵編碼法提供了無損壓縮
D)常用的預測編碼是變換編碼 〔答案討論〕
(7)關於數據報交換方式的描述中,錯誤的是
A)在報文傳輸前建立源結點與目的結點之間的虛電路
B)同一報文的不同分組可以經過不同路徑進行傳輸
C)同一報文的每個分組中都要有源地址與目的地址
D)同一報文的不同分組可能不按順序到達目的結點 〔答案討論〕
(8)IEEE 802.11無線區域網的介質訪問控制方法中,幀間間隔大小取決於
A)接入點
B)交換機
C)幀大小
D)幀類型 〔答案討論〕
(9)以下網路應用中不屬於Web應用的是
A)電子商務
B)域名解析
C)電子政務
D)博客 〔答案討論〕
(10)關於千兆乙太網的描述中,錯誤的是
A)與傳統乙太網採用相同的幀結構
B)標准中定義了千兆介質專用介面
C)只使用光纖作為傳輸介質
D)用GMII分隔MAC子層與物理層 〔答案討論〕
(11)虛擬區域網的技術基礎是
A)路由技術
B)帶寬分配
C)交換技術
D)沖突檢測 〔答案討論〕
(12)關於OSI參考模型的描述中,正確的是
A)高層為低層提供所需的服務
B)高層需要知道低層的實現方法
C)不同結點的同等層有相同的功能
D)不同結點需要相同的操作系統 〔答案討論〕
(13)如果網路結點傳輸I0bit數據需要1×10-8s,則該網路的數據傳輸速率為
A)10Mbps
B)1Gbps
C)100Mbps
D)10Gbps 〔答案討論〕
(14)關於傳統Ethernet的描述中,錯誤的是
A)是一種典型的匯流排型區域網
B)結點通過廠播方式發送數據
C)需要解決介質訪問控制問題
D)介質訪問控制方法是CSMA/CA 〔答案討論〕
(15)網橋實現網路互聯的層次是
A)數據鏈路層
B)傳輸層
C)網路層
D)應用層 〔答案討論〕
(16)在TCP/IP參考模型中,負責提供面向連接服務的協議是
A)FTP
B)DNS
C)TCP
D)UDP 〔答案討論〕
(17)以下哪一個不是無線區域網IEEE 802.11規定的物理層傳輸方式?
A)直接序列擴頻
B)跳頻廣播
C)藍牙
D)紅外 〔答案討論〕
(18)關於網路層的描述中,正確的是
A)基本數據傳輸單位是幀
B)主要功能是提供路由選擇
C)完成應用層信息格式的轉換
D)提供端到端的傳輸服務 〔答案討論〕
(19)1000BASE-T標准支持的傳輸介質是
A)單模光纖
B)多模光纖
C)非屏蔽雙絞線
D)屏蔽雙絞線 〔答案討論〕
(20)電子郵件傳輸協議是
A)DHCP
B)FTP
C)CMIP
D)SMTP 〔答案討論〕
(21)關於IEEE 802模型的描述中,正確的是
A)對應於OSI模型的網路層
B)數據鏈路層分為LLC與MAC子層
C)只包括一種區域網協議
D)針對廣域網環境 〔答案討論〕
(22)關於Ad Hoc網路的描述中,錯誤的是
A)是一種對等式的無線移動網路
B)在WLAN的基礎上發展起來
C)採用無基站的通信模式
D)在軍事領域應用廣泛 〔答案討論〕
(23)以下P2P應用軟體中不屬於文件共享類應用的是
A)Skype
B)Gnutella
C)Napster
D)BitTorrent 〔答案討論〕
(24)關於伺服器操作系統的描述中,錯誤的是
A)是多用戶、多任務的系統
B)通常採用多線程的處理方式
C)線程比進程需要的系統開銷小
D)線程管理比進程管理復雜 〔答案討論〕
(25)關於Windows Server基本特徵的描述中,正確的是
A)Windows 2000開始與IE集成,並擺脫了DOS
B)Windows 2003依據。NET架構對NT技術做了實質的改進
C)Windows 2003 R2可靠性提高,安全性尚顯不足
D)Windows 2008重點加強安交全性,其他特徵與前面版本類似
(26)關於活動目錄的描述中,錯誤的是
A)活動目錄包括日錄和目錄服務
B)域是基本管理單位,通常不再細分
C)活動目錄採用樹狀邏輯結構
D)通過域構成樹,樹再組成森林 〔答案討論〕
(27)關於Unix操作系統的描述中,正確的是
A)Unix由內核和外殼兩部分組成
B)內核由文件子系統和目錄子系統組成
C)外殼由進程子系統和線程子系統組成
D)內核部分的操作原語對用戶程序起作用 〔答案討論〕
(28)關於Linux操作系統的描述中,錯誤的是
A)內核代碼與Unix不同
B)適合作為Internet服務平台
C)文件系統是網狀結構
D)用戶界面主要有KDE和GNOME 〔答案討論〕
(29)關於TCP/IP協議集的描述中,錯誤的是
A)由TCP和IP兩個協議組成
B)規定了Internet中主機的定址方式
C)規定了Internet中信息的傳輸規則
D)規定了Internet中主機的命名機制 〔答案討論〕
(30)關於IP互聯網的描述中,錯誤的是
A)隱藏了低層物理網路細節
B)數據可以在IP互聯網中跨網傳輸
C)要求物理網路之間全互連
D)所有計算機使用統一的地址描述方法
(31)以下哪個地址為回送地址?
A)128.0.0.1
B)127.0.0.1
C)126.0.0.1
D)125.0.0.1
(32)如果一台主機的IP地址為20.22.25.6,子網掩碼為255.255.255.0,那麼該主機的主機號為
A)6
B)25
C)22
D)20 〔答案討論〕
(33)一個連接兩個乙太網的路由器接收到一個IP數據報,如果需要將該數據報轉發到IP地址為202.123.1.1的主機,那麼該路由器可以使用哪種協議尋找目標主機的MAC地址?
A)IP
B)ARP
C)DNS
D)TCP
(34)在沒有選項和填充的情況下,IPv4數據報報頭長度域的值應該為
A)3
B)4
C)5
D)6
(35)對IP數據報進行分片的主要目的是
A)提高互聯網的性能
B)提高互聯網的安全性
C)適應各個物理網路不同的地址長度
D)適應各個物理網路不同的MTU長度
(36)關於ICMP差錯報文特點的描述中,錯誤的是
A)享受特別優先權和可靠性
B)數據中包含故障IP數據報數據區的前64比特
C)伴隨拋棄出錯LF數據報產生
D)目的地址通常為拋棄數據報的源地址
37)一個路由器的路由表如下所示。如果該路由器接收到一個目的1P地址為10.1.2.5的報文,那麼它應該將其投遞到
A)10.1.0.0
B)10.2.0.5
C)10.4.0.0
D)10.3.0.7
(38)關於RIP與OSPF協議的描述中,正確的是
A)RIP和OSPF都採用向量-距離演算法
B)RIP和OSPF都採用鏈路-狀態演算法
C)RIP採用向量-距離演算法,OSPF採用鏈路-狀態演算法
D)RIP採用鏈路-狀態演算法,OSPF採用向量-距離演算法
(39)為確保連接的可靠建立,TCP採用的技術是
A)4次重發
B)3次重發
C)4次握手
D)3次握手
(40)關於客戶機/伺服器模式的描述中,正確的是
A)客戶機主動請求,伺服器被動等待
B)客戶機和伺服器都主動請求
C)客戶機被動等待,伺服器主動請求
D)客戶機和伺服器都被動等待 〔答案討論〕
(41)關於Internet域名系統的描達中,錯誤的是
A)域名解析需要一組既獨立又協作的域名伺服器
B)域名伺服器邏輯上構成一定的層次結構
C)域名解析總是從根域名伺服器開始
D)遞歸解析是域名解析的一種方式
(42)pwd是一個FTP用戶介面命令,它的意義是
A)請求用戶輸入密碼
B)顯示遠程主機的當前工作目錄
C)在遠程主機中建立目錄
D)進入主動傳輸方式
(43)為了使電子郵件能夠傳輸二進制信息,對RFC822進行擴充後的標准為
A)RFC823
B)SNMP
C)MIME
D)CERT
(44)關於WWW服務系統的描述中,錯誤的是
A)WWW採用客戶機/伺服器模式
B)WWW的傳輸協議採用HTML
C)頁面到頁面的鏈接信息由URL維持
D)客戶端應用程序稱為瀏覽器 〔答案討論〕
(45)下面哪個不是Internet網路管理協議?
A)SNMPv1
B)SNMPv2
C)SNMPv3
D)SNMPv4
(46)根據計算機信息系統安全保護等級劃分准則,安全要求最高的防護等級是
A)指導保護級
B)強制保護級
C)監督保護級
D)專控保護級
(47)下面哪種攻擊屬於被動攻擊?
A)流量分析
B)數據偽裝
C)消息重放
D)消息篡改
(48)AES加密演算法處理的分組長度是
A)56位
B)64位
C)128位
D)256位
(49)RC5加密演算法沒有採用的基本操作是
A)異或
B)循環
C)置換
D)加
(50)關於消息認證的描述中,錯誤的是:
A)消息認證稱為完整性校驗
B)用於識別信息源的真偽
C)消息認證都是實時的
D)消息認證可通過認證實現
(51)關於RSA密碼體制的描述中,正確的是
A)安全性基於橢圓曲線問題
B)是一種對稱密碼體制
C)加密速度很快
D)常用於數字簽名
(52)關丁Kerberos認證系統的描述中,錯誤的是
A)有一個包含所有用戶密鑰的資料庫
B)用戶密鑰是一個加密口令
C)加密演算法必須使用DES
D)Kerberos提供會話密鑰 〔答案討論〕
(53)用RSA演算法加密時,已知公鑰是(e=7,n=20),私鑰是(d=3,n=20),用公鑰對消息M=3加密,得到的密文是
A)19
B)13
C)12
D)7
(54)下面哪個地址不是組播地址?
A)224.0.1.1
B)232.0.0.1
C)233.255.255.1
D)240.255.255.1
(55)下面哪種P2P網路拓撲不是分布式非結構化的?
A)Gnutella
B)Maze
C)LimeWire
D)BearShare 〔答案討論〕
(56)關於即時通信的描述中,正確的是
A)只工作在客戶機/伺服器方式
B)QQ是最早推出的即時通信軟體
C)QQ的聊天通信是加密的
D)即時通信系統均採用SIP協議
(57)下面哪種服務不屬於IPTV通信類服務?
A)IP語音服務
B)即時通信服務
C)遠程教育服務
D)電視簡訊服務
(58)從技術發展角度看,最早出現的IP電話工作方式是
A)PC-to-PC
B)PC-to-Phone
C)Phone-to-PC
D)Phone-to-Phone 〔答案討論〕
(59)數字版權管理主要採用數據加密、版權保護、數字簽名和
A)認證技術
B)數字水印技術
C)訪問控制技術
D)防篡改技術 〔答案討論〕
(60)網路全文搜索引擎一般包括搜索器、檢索器、用戶介面和
A)索引器
B)機器人
C)爬蟲
D)蜘蛛
二、填空題(每空2分,共40分)
(1)精簡指令集計算機的英文縮寫是【1】。
(2)流媒體數據流具有連續性、實時性和【2】三個特點。
(3)00-60-38-00-08-A6是一個【3】地址。
(4)Ethernet V2.0規定幀的數據欄位的最大長度是【4】。
(5)RIP協議用於在網路設備之間交換【5】信息。
(6)網路協議的三個要素是【6】、語義與時序。
(7)TCP/IP參考模型的主機-網路層對應於OSI參考模型的物理層與【7】。
(8)一台Ethernet交換機提供24個100Mbps的全雙工埠與1個1Gbps的全雙工埠,在交換機滿配置情況下的總帶寬可以達到【8】。
(9)Web OS是運行在【9】中的虛擬操作系統。 〔答案討論〕
(10)Novell公司收購了SUSE,以便通過SUSE【10】Professional產品進一步發展網路操作系統業務。 〔答案討論〕
(11)IP服務的三個特點是:不可靠、面向非連接和【11】。 〔答案討論〕
(12)如果一個IP地址為10.1.2.20,子網掩碼為255.255.255.0的主機需要發送一個有限廣播數據報,該有限廣播數據報的目的地址為【12】。 〔答案討論〕
(13)IPv6的地址長度為【13】位。 〔答案討論〕
(14)瀏覽器結構由一個【14】和一系列的客戶單元、解釋單元組成。 〔答案討論〕
(15)為了解決系統的差異性,Telnet協議引入了【15】,用於屏蔽不同計算機系統對鍵盤輸入解釋的差異。 〔答案討論〕
(16)SNMP從被管理設備收集數據有兩種方法:基於【16】方法和基於中斷方法。 〔答案討論〕
(17)數字簽名是筆跡簽名的模擬,用於確認發送者身份,是一個【17】的消息摘要。 〔答案討論〕
(18)包過濾防火牆依據規則對收到的IP包進行處理,決定是【18】還是丟棄。 〔答案討論〕
(19)組播允許一個發送方發送數據包到多個接收方。不論接收組成員的數量是多少,數據源只發送【19】數據包。 〔答案討論〕
(20)P2P網路存在四種主要結構類型,Napster是【20】目錄式結構的代表。
答案
答案: ¬
一、選擇題 ¬
(1)B (2)C (3)D (4)A (5)B
(6)D (7)A (8)D (9)B (10)C ¬
(11)C (12)C (13)B (14)D (15)A ¬
(16)C (17)C (18)B (19)C (20)D ¬
(21)B (22)B (23)A (24)D (25)B ¬
(26)B (27)A (28)C (29)A (30)C ¬
(31)B (32)A (33)B (34)C (35)D ¬
(36)A (37)B (38)C (39)D (40)A ¬ ¬
(41)C (42)B (43)C (44)B (45)D ¬
(46)D (47)A (48)C (49)C (50)C ¬
(51)D (52)C (53)D (54)D (55)B ¬
(56)C (57)C (58)A (59)B (60)A ¬
二、填空題 ¬
(1)RISC ¬
(2)時序性 ¬
(3)乙太網物理地址(MAC) ¬
(4)1500B ¬
(5)路由 ¬
(6)語法 ¬
(7)數據鏈路層 ¬
(8)6.8Gbps ¬
(9)網頁瀏覽器 ¬
(10)Linux ¬
(11)盡最大努力投遞 ¬
(12)255.255.255.255 ¬
(13)128 ¬
(14)控制單元 ¬
(15)網路虛擬終端NVT ¬
(16)輪詢 ¬
(17)加密 ¬
(18)轉發 ¬
(19)一次 ¬
(20)集中 ¬
http://www.examda.com/ncre/kszt/
這上面全是真題
Ⅷ 計算機二級C語言選擇題及答案(2)
}
printf("%d ",num);
}
程序執行後的輸m結果是()。
A.35
B.37
C.39
D.3975
32.以下程序的'輸出結果是()。
main()
{char st[20]="hello \";
printf("%d%d ",strlen(st).sizeof(st));
}
A.9 9
B.5 20
C.13 20
D.20 20
33.若有以下的定義:‘int t[3][2];”,能正確表示t數組元素地址的表達式是()。
A.&t[3][2]
B.t[3]
C.t[l]
D.t[2][2]
34.函數fseek(pf,OL,SEEK END)中的SEEK ENE 代表的起始點是()。
A.文件開始
B.文件末尾
C.文件當前位置
D.以上都不對
35.下述程序的輸出結果是()。
#include
main()
{ int i;
for(i=l;i<=10;i++)
{if(i*i>=20)&&(i*i<=100))
break;
}
printf("%d ",i*i);
}
A.49
B.36
C.25
D.64
36.若有定義“int b[8],*p=b;”,則p+6表示()。
A.數組元素b[6]的值
B.數組元素b[6]的地址
C.數組元素b[7]的地址
D.數組元素b[o]的值加上6
37.設變數已正確定義,則以下能正確計算f=n!的程序是()。
A.f=0:
for(i=1;i<=n;i++)f*=i:
B.F=1:
for(i=l;i<2n;i++)f*=i:
C.f=l:
for(i=n;i>1;i++)f*=i:
D.f=1;
for(i=n;i>=2;i--)f*=i:
38.下述程序執行的輸出結果是()。
#include
main()
{ char a[2][4];
strcpy(a,"are");strcpy(a[1],"you");
a[0][3]=’&’;
printf("%s ",a):
}
A.are&you
B.you
C.are
D.&
39.設x=011050,則x=x&01252的值是()。
A.0000001000101000
B.1111110100011001
C.0000001011100010
D.1100000000101000
40.在“文件包含”預處理語句的使用形式中,當#include後面的文件名用(雙引號)括起時,尋找被包含文件的方式是()。
A.直接按系統設定的標准方式搜索目錄
B.先在源程序所在的目錄搜索,如沒找到,再按系統設定的標准方式搜索
C.僅僅搜索源程序所在目錄
D.僅僅搜索當前目錄
【答案與解析】
1.D。【解析】演算法的空間復雜度,是指執行這個演算法所需的存儲空間。演算法所佔用的存儲空間包括演算法程序所佔用的空間、輸入的初始數據所佔用的存儲空間、演算法執行過程中所需要的額外空間。
2.D。【解析】數據的存儲結構是指數據的邏輯結構在計算機存儲空間中的存放形式,一種數據結構可以根據需要採用不同的存儲結構,用的存儲結構有順序和鏈式結構。用不同的存儲結構,其處理的效率是不同的。
3.D。【解析】所謂的交換排序方法是指藉助數據元素之間的互相交換進行排序的一種方法,包括冒泡排序和快速排序,冒泡排序通過相鄰元素的交換,逐步將線性表變成有序是一種最簡單的交換排序方法。
4.C。【解析】結構化程序設計的原則和方法之一是限制使用GOT0語句,但不是絕對不允許使用GOT0語句。其他三項為結構化程序設計的原則。
5.D。【解析】文件系統所管理的數據文件基本上是分散、相互獨立的。相對於資料庫系統,以此為基礎的數據處理存在3個缺點:數據冗餘大、數據的不一致性、程序與數據的依賴性強。
6.C。【解析】面對象的設計方法的基本原理是:使用現實世界的概念抽象地思考問題從而自然地解決問題。它雖強調模擬現實世界中的概念而不強調演算法,但是它鼓勵開發者在軟體開發的過程中從應用領域的概念角度去思考。
7.D。【解析】所謂的後序遍歷是指,首先遍歷左子樹,然後遍歷右子樹,最後訪問根結點,並且在遍歷左、右樹時,仍然先遍歷左子樹,然後遍歷右子樹,最後訪問根點。因此,後序遍歷二叉樹的過程也是一個遞歸過程。
8.B。【解析】軟體的過程設計是指系統結構部件轉換成軟體的過程描述。
9.A。【解析】①對軟,牛開發的進度和費用估計不準確:②用戶對已完成的軟體系統不滿意的現象時常發生;③軟體產品的質量往往靠不住;④軟體常常是不可維護的;⑤軟體通常沒有適當的文檔;⑥軟體成本在計算機系統總成本中所佔的比例逐年上升;⑦軟體開發生產率提高的速度遠遠跟不上計算機應用迅速普能及深入的趨勢。
10.C。【解析】對象的封裝性是指從外面看只能看到對象的外部特性,而對象的內部,其處理能力的實行和內部狀態對外是不可見的,是隱蔽的。
11.C。【解析】資料庫系統由如下5個部分組成:資料庫(DB)、資料庫管理系統fDBMS)、資料庫管理員(人員)、系統平台之一——硬體平台(硬體)、系統平台之二——軟體平台(軟體)。其中 DB(DataBase)即資料庫,是統一管理的相關數據的集合;DBMS即資料庫管理系統,是位於用戶與操作系統之間的一層數據管理軟體,為用戶或應用完程序提供訪問DB的方法。由以上可知,選C為正確答案。
12.A。【解析】標識符是由字母、數字或下劃線組成,並且它的第一個字元必須是字母或者下劃線。B選項int不是表達變數類型的標識符,它不能再用做變數名和函數名。C 選項do是C語言的一個關鍵字。D選項標識符只能以字母或下劃線開始。
13.D。【解析】本題考查邏輯運算符的使用。當“&&”的兩個運算對象都是邏輯1時,表達式返回值才是1;“||” 的兩個運算對象至少有一個是邏輯1時,表達式返回值也是1,x14.C。【解析】第1個printf函數,格式說明的個數是2,而輸出項的個數是3,所以對於多餘的輸出項k不予輸出;第2個printf函數,有兩個%說明,第1個%後面的字元要原樣輸出。本題考查printf函數的格式。①“%x”和“%0”分別表示以十六進制和八進制無符合型輸出整型數據(不帶前導ox或0);②printf函數中格式說明符之前插入的任何字元都原樣輸出;③格式說明與輸出項的個數,也要相等,如果格式說明的個數少於輸出項的個數,則對於多餘的輸出項不予輸出。
15.C。【解析】函數fun(int x,int y)的功能是返回x+y的值。在主函數中,變數a,b,c的初始值分別為1,2,3。因此,逗號表達式“a++,b++,aq b”的值等於5,表達式c++的值為3,調用於函數的表達式為“fun(5,3);”,其返回值等於8。
16.D。【解析】在x=2,y=x+3/2中,3/2=1。2+1= 3,因此表達式的值為3,因為x,y為double型變數,故選擇D選項。
17.A。【解析】當x為1時,執行case 1,a自加等於1,因為case 1後沒有break,接著執行case 2,此時a的值為2,b自加為1,故選擇A選項。
18.D。【解析】本題考夢自增運算符“++”、邏輯與運算符“&&”和邏輯或運算符“||”。自增運算符“++”出現在變數之前,表示先使用變數的值加l,再使用變數的值進行運算;出現在變數之後,表示先使用變數的值進行運算,再使用變數的值加l。當邏輯與運算符“&&’’兩邊的運算對象都為真時,邏輯表達式的值才為真;當邏輯或運算符“||”只要一個值為1,值就為1。根據運算符的優先順序,題中應先計算內層括弧中的值。++j是先自加後運算,因此運算時j的值等於3,所以表達式++j=3成立,即表達式的值為1;1與任何數都為進行或(||)運算,結果都為1,因此k=3的表達式i++是先運算後自加,因此運算時i為1,所以i++=1成立,自加1後i=2。if語句的條件為真即“1”,所以輸出i、j、k的值分別是2,3,3。
19.A。【解析】本題考查switch語句。當i一1時,執行case 1,因為沒有遇到break語句,所以依次往下運行,“a=a+ 2=2,a=a+3=5”;當i=2時,執行case 2,因為沒有遇到break語句,所以依次往下執行,“a=a+2=7,a=a+3= 10”;當i=3時,執行case 3,a=a+1=11,因為沒有遇到break語句,所以依次往下運行,a—a+2—13,a—a+3一l6:當i=4時,執行default,a=a+3=19,結束循環。
20.C。【解析】只有當3個if條件同時成立,即能夠同時被2、3、7整除時,才輸出i的值,而從0到50能夠同時被2、3、7整除的數只有42,故選擇C選項。
21.A。【解析】循環的作用是求行下標從1到2列下標從0到i的元素之和,即s=a[1][0]+a[1][1]+a[2][0]+a [2][1]+a[2][2]=3+4+5+6+0=18。
22.A。【解析】在程序語句中,k的初始值為5,進行第l次while循環後,k自減1為4,非0,執行循環體里的printf語句,輸出k,此時k的值變為1。程序執行第2次循環時,k 自減1變為0,為假,退出while循環語句。所以程序的最後結果為1。
23.A。【解析】通過地址來引用數組元素的方法有下列5種:
(1)a[i][j];(2)*(a[i]+j);(3)*(*(a+j)+i);(4)* (a[i][j]);(5)(&aE0][0]q-3*i+j)。故A正確。
24.C。【解析】選項A、B的空間不夠;字元串存儲要有結束符’