c語言程序設計結課測驗答案,c語言程序設計實驗教程答案

本文目錄一覽:

求29.30.31答案和解釋 c語言程序設計

29、數組的下標值必須是整數,且不能越界,數組a的下標值範圍是0–9

A

*(a+i)

等價於

a[i]

B

a[p-a+i]

等價於

a[i]

因為

p=a

所以

p-a+i=i

C

p+i

是數組中下標值為i的元素的地址

D

*(a[i])

等價於

a[i]

所以

本題答案是

C

30、strcpy(s1,s2)字元串賦值函數,把串s2放在s1的位置上,所以s1必須有足夠的存儲空間來存放串s2

A

st1

是一維數組可以存放字元串teacher1

B

st4

是一個指針變數,但是該指針指向一個連續的存儲空間

teacher1

C

st3是指針變數,但是該指針沒有指向任何存儲空間,所以不能把串teacher1放在st3

D

st1

是一維數組可以存放字元串teacher1

所以

本題答案

C

31、p

q

是指針變數,存放的是n的地址

A

p=q

p

q

指針類型相同

可以直接賦值

B

*p=*q

也可以

//

p=q=n

*p=*q=n

C

n=*p

原理同

B項

D

p是指針,應該存放n的地址,即p=n

所以本題答案是:

D

c語言答案

C語言程序設計複習:

1、理解以下術語的含義:數組、函數、地址 指針 指針變數 直接訪問 間接訪問、結構體

2、用起泡法對10個數由小到大排序(P134例題)

5、輸入10個學生的成績,分別用函數實現下列功能:

1)計算所有學生的平均分;

2) 計算學生成績中最高分;

3) 計算學生成績中最低分;

4) 統計及格學生人數;

5) 查找成績為指定成績(如90)記錄,如果沒有,請給出提示,如果有,請統計滿足條件的記錄數。

6、有一個已經排好序的數組,今輸入一個數,要求按原來排序的規律將它插入數組中。(P153習題7.4)

7、編寫一個函數,輸入一個4位數字,要求輸出這4個數字字元,但每兩個數字字元間空一個空格。如輸入1990,應輸出「1 9 9 0」。(要求用函數)(P202習題8.8)

8、編寫一個函數,求一個字元串的長度。在main函數中輸入字元串,並輸出其長度。(要求用指針,不能使用strlen()函數) (P279習題10.6)

9、編寫一個程序,打入月份號,輸出該月的英文月名。例如,輸入「3」則輸出「March」(要求用指針數組)。(P279習題10.18)

10、將一個數組中的值按逆序重新存放。例如,輸入的數組順序為8,6,5,4,1,要求改為1,4,5,6,8。(P153習題7.5)

11、編寫一個函數用「起泡法」對輸入的10個字元按由小到大順序排序(要用函數)。(P202習題8.11)

12、將數組a中n個整數按相反順序存放(要用函數)。(P237例題10.7)

13、輸入一行文字,找出其中大寫字母、小寫字母、空格、數字及其他字元各有多少。(要求用指針實現)(P279習題10.8)

14、編寫一個函數,將兩個字元串連接(要用自定義函數,不能用strcat函數)。(P202習題8.6)

15、輸入3個字元串,按照由小到大的順序輸出。(要求用指針) (P278習題10.2)

16、輸入10整數,將其中最小的數與第一個數對換,把最大的數與最後一個數對換。寫三個函數:1、輸入10個數; 2、進行處理; 3、輸出10個數(數據對換要求用指針實現)(P278習題10.3)

參考答案:

2、用起泡法對10個數由小到大排序

#include stdio.h

void main()

{ int a[10]; int i,j,t;

printf(“input 10 numbers :\n”);

for (i=0;i10;i++)

scanf(“%d「,a[i]);

printf(「\n”);

for(j=0;j9;j++)

for(i=0;i10-j;i++)

if (a[i]a[i+1])

{t=a[i];a[i]=a[i+1];a[i+1]=t;}

printf(“the sorted numbers :\n”);

for(i=0;i10;i++)

printf(「%d 「,a[i]);

}

3、用遞歸方法求n階勒讓德多項式的值,遞歸公式為(要求用函數):(P202習題8.13)

pn(x)= 1 n=0

x n=1

((2n-1)*x-pn-1(x)-(n-1)*pn-2(x)/n n1

3、#include stdio.h

void main()

{

int x,n;

float p(int,int);

printf(「input n x:」);

scanf(「%d,%d」,n,x);

printf(「n=%d,x=%d\n」,n,x);

printf(「P%d(%d)=%6.2f\n」,n,x,p(n,x));

}

float p(int n,int x)

{

if(n==0)

return 1;

else if(n==1)

return x;

else

return ((2*n-1)*x*p((n-1),x)-(n-1)*p((n-2),x))/n;

}

4、輸入3個整數,按由小到大的順序輸出(要求用指針類型)(P228例題)

4、輸入3個整數,按由小到大的順序輸出(要求用指針類型)

#include stdio.h

void main()

{

void sort (int*a, int*b,int*c);

int a,b,c;

scanf(“%d%d%d”,a,b,c);

sort(a,b,c);

printf(“a=%d,b=%d,c=%d\n”,a,b,c);

}

void sort (int *a, int *b,int *c)

{

int tmp;

if (*a*b)

{

tmp=*a;

*a=*b;

*b=tmp;

}

if (*a*c)

{

tmp=*a;

*a=*c;

*c=tmp;

}

if (*b*c)

{

tmp=*b;

*b=*c;

*c=tmp;

}

}

5、輸入10個學生的成績,分別用函數實現下列功能:

1)計算所有學生的平均分;

6) 計算學生成績中最高分;

7) 計算學生成績中最低分;

8) 統計及格學生人數;

9) 查找成績為指定成績(如90)記錄,如果沒有,請給出提示,如果有,請統計滿足條件的記錄數。

#include stdio.h

void main()

{

int average(int a[]);

int max(int a[]);

int min(int a[]);

int pass(int a[]);

int search(int a[],int g);

int i,j,g;

int score[10],aver,m1,m2,p,s;

printf(“Please input 10 scores:\n”);

for(i=0;i10;i++)

scanf(“%d”,score[i]);

printf(“\n”);

aver=average(score);

m1=max(score);

m2=min(score);

p=pass(score);

printf(“平均分為: %d\n”,aver);

printf(“最高分為: %d\n”,m1);

printf(“最低分為: %d\n”,m2);

printf(“及格人數為: %d\n”,p);

printf(“需要查找嗎?\n”);

printf(“輸入1繼續查找,輸入0退出(1/0):”);

scanf(“%d”,j);

if(j==1)

{

printf(“請輸入要查找的分數: \n”);

scanf(“%d”,g);

s=search(score,g);

if(s==0)

printf(“沒有滿足條件的記錄”);

else

printf(“成績為%d的學生共有%d名\n”,g,s);

}

}

int average(int a[])

{

int i;

int aver,sum=a[0];

for(i=1;i10;i++)

sum=sum+a[i];

aver=sum/10;

return aver;

}

int max(int a[])

{

int i;

int m=a[0];

for(i=1;i10;i++)

if(ma[i])

m=a[i];

return m;

}

int min(int a[])

{

int i;

int m=a[0];

for(i=1;i10;i++)

if(ma[i])

m=a[i];

return m;

}

int pass(int a[])

{

int i;

int s=0;

for(i=0;i10;i++)

if(a[i]=60)

s++;

return s;

}

int search(int a[],int g)

{

int i;

int s=0;

for(i=0;i10;i++)

if(a[i]==g)

s++;

return s;

}

6、已有一個已排好次序的數組,要求輸入一個數後,按原先排序的規律將它插入數組中。

Void main()

{int a[11]={1,4,6,9,13,16,19,28,40,100};

int temp1,temp2,number,end,i,j;

printf(“初始數組如下:”);

for (i=0;i10;i++)

printf(“%5d”,a[i]);

printf(“\n”);

printf(“輸入插入數據:”);

scanf(“%d”,number);

end=a[9];

if(numberend)

a[10]=number;

else

{for(i=0;i10;i++)

{ if(a[i]number)

{temp1=a[i];

a[i]=number;

for(j=i+1;j1;j++)

{temp2=a[j];

a[j]=temp1;

temp1=temp2;

}

break;

}

}

}

for(i=0;i11;i++)

printf(“a%6d”,a[i]);

}

7、編寫一個函數,輸入一個4位數字,要求輸出這4個數字字元,但每兩個數字字元間空一個空格。如輸入1990,應輸出「1 9 9 0」。

#include iostream

void main()

{

void stradd(char str[]);

char str[80];

printf(“輸入一串數字\n\n”);

gets(str);

stradd(str);

printf(“\n\n加空格後的字元串\n\n”);

puts(str);

}

void stradd(char str[])

{

char a[80];

int i=0,j;

for(j=0;str[j]!=’\0′;j++)

{

a[i]=str[j];

a[i+1]=’ ‘;

i+=2;

}

a[i]=’\0′;

for(i=0;a[i]!=’\0′;i++)

{

str[i]=a[i];

}

str[i]=’\0′;

}

8、編寫一個函數,求一個字元串的長度。在main函數中輸入字元串,並輸出其長度。(要求用指針實現)

#include “stdio.h”

int stringlength( char *str )

{int n;

n=0;

While(*str!=0)

{n++;

str++;

}

Return(n);

}

int main()

{

char str〔100〕,

int len,

printf(“Please input a string: “),

scanf(“%s”.str),

len = stringlength( str ),

printf(“The string』s length is %d.”.len),

return 0;

}

9、編寫一個程序,打入月份號,輸出該月的英文月名 n。例如,輸入「3」則輸出「March」,要求用指針數組處理。

#include stdio.h

main()

{ char *month_name[13]={“illegal month”,”January”,”February”,”March”,”April”,

“May”,”June”,”July”,”August”,”September”,”October”,”November”,”December”};

int n;

printf(“Input month: “);

scanf(“%d”,n);

if((n=12)(n=1))

printf(“It is %s.\n”,*(month_name+n));

else

printf(“It is wrong.\n”);

}

10、將一個數組中的值按逆序重新存放。例如,輸入的數組順序為8,6,5,4,1,要求改為1,4,5,6,8。

#include stdio.h

#define N 5;

void main()

{

int a[N],i,temp;

printf(「enter array a:\n」);

for(i=0;iN;i++)

scanf(「%d」,a[i]);

printf(「array a:\n」);

for(i=0;iN;i++)

{temp=a[i];a[i]=a[N-i-1];a[N-i-1]=temp;}

printf(「\nNow, array a:\n」);

for(i=0;iN;i++)

printf(「%4d」,a[i]);

printf(「\n」);

}

11、編寫一個函數用「起泡法」對輸入的10個字元按由小到大順序排序(要用函數)。

#include stdio.h

void main()

{ char str[80];

void sort(char str[]);

printf(“輸入一個字元串\n\n”);

gets(str);

sort(str);

printf(“\n\n字元由小到大排序為:\n\n”);

puts(str);

}

void sort(char str[])

{ int i,j;

char temp;

for(i=0;istrlen(str);i++)

{

for(j=0;jstrlen(str)-i-1;j++)

{

if(str[j]str[j+1])

{

temp=str[j];

str[j]=str[j+1];

str[j+1]=temp;

}

}

}

}

12、將數組a中n個整數按相反順序存放(要用函數)。

#include stdio.h

void inv(int x[ ],int n)/*形參x是數組名*/

int temp,i,j,m=(n-1)/2;

for(i=0;i<=m;i++)

{j=n-1-i;

temp=x[i];x[i]=x[j];x[j]=temp;}

return;

void main()

{ int i,a[10]={3,7,9,11,0,6,7,5,4,2};

printf(「轉換前的數組為:\n”);

for(i=0;i<10;i++)

printf(“%d,”,a[i]);

printf(“\n”);

inv(a,10);

printf(「轉換後的數組為:\n”);

for(i=0;i<10;i++)

printf(“%d,”,a[i]);

printf(“\n”);

13、輸入一行文字,找出期中大寫字母、小寫字母、空格、數字及其他字元各有多少?(要求用指針實現)

#includestdio.h

#includestring.h

int main()

{

char str[40];//創建字元串數組

int count[5]={0,0,0,0};//創建計數器數組並初始化

printf(“Please input a string .\n”);

scanf(“%s”,str);

char *p=str;//指針p指向字元串數組str

int n=strlen(str);//確定輸入字元串的長度

for(int i=0;in;i++)

{

if(*(p+i)=’A’*(p+i)=’Z’)

{

count[0]++;//統計大寫字母數目

}

else if(*(p+i)=’a’*(p+i)=’z’)

{

count[1]++;//統計小寫字母數目

}

else if(*(p+i)=’0’*(p+i)=’9′)

{

count[2]++;//統計數字數目

}

else if(*(p+i)==”)

{

count[3]++;//統計空格數目

}

else

{

count[4]++;//統計其他字元數目

}

}

printf(“大寫字母 小寫字母 數字 空格 其他字元:\n”);

for(i=0;i5;i++)

{

printf(“%d\t “,count[i]);//列印各統計數目

}

printf(“\n\n”);

return 0;

}

14、編寫一個函數,將兩個字元串連接。

#include stdio.h

#includestring.h

void concatenate(char string1[],char string2[],char string[])

{

int i,j;

for(i=0;string1[i]!=』\0』;i++)

string[i]=string1[i];

for(j=0;string2[j]!=』\0』;j++)

string[i+j]=string2[j];

string[i+j]=』\0』;

}

void main()

{

char s1[100],s2[100],s[100];

printf(「input string1:」);

scanf(「%s」,s1);

printf(「input string2:」);

scanf(「%s」,s2);

concatenate(s1,s2,s)

printf(「the new string is %s」,s);

}

15、輸入3個字元串,按照由小到大的順序輸出。 (要求用指針實現)

#include stdio.h

void main()

{

void sort (int*a, int*b,int*c);

int a,b,c;

scanf(“%d%d%d”,a,b,c);

sort(a,b,c);

printf(“a=%d,b=%d,c=%d\n”,a,b,c);

}

void sort (int *a, int *b,int *c)

{

int tmp;

if (*a*b)

{

tmp=*a;

*a=*b;

*b=tmp;

}

if (*a*c)

{

tmp=*a;

*a=*c;

*c=tmp;

}

if (*b*c)

{

tmp=*b;

*b=*c;

*c=tmp;

}

}

16、輸入10整數,將其中最小的數與第一個數對換,把最大的數與最後一個數對換。寫三個函數:1、輸入10個數; 2、進行處理; 3、輸出10個數(數據對換要求用指針實現)

#include stdio.h

void input(int number[])

{

Int I;

Printf(「input 10 numbers:」);

For(i=0;i10;i++)

Scanf(「%d」,number[i]);

}

void max_min_value(int number[])

{

int *max,*min,*p,temp;

max=min=number;

For(p=number+1;pnumber+10;p++)

if(*p*max)

max=p;

else if(*p*min)

min=p;

temp=number[0];number[0]=*min;*min=temp;

if(max=number) max=min;

temp=number[9];number[9]=*max;*max=temp;

}

void output(int number[])

{

int *p;

printf(「Now, they are: 「);

for(p=number;pnumber+10;p++)

Printf(「%d」,*p);

printf(「\n」);

}

void main()

{

int number[10];

input(number);

max_min_value(number);

output(number);

}

C語言程序設計試題

1. 一條簡單語句是以_____;___字元作為結束符的,一條複合語句是分別以___{_____字元和_____}___字元作為開始符和結束符的。

2. 任何一個C++程序至少且只能包含一個_____主___函數,且程序總是從這個函數開始執行,不論這個函數的位置如何。一個函數定義由 函數頭 和 函數體 兩部分組成。

3. C++頭文件和源程序文件的擴展名分別為 .h 和 .cpp。

4. cout與操作符___配合使用才能顯示輸出,cin與操作符__配合使用才能實現輸入。

5. 數據類型int,char,bool,float,double, int * 等的類型長度分別為___4_、1_、_1_、_4、_8___和_____4___。

6. 數值常量46、0173和0x62對應的十進位值分別為_____46___、____123____和______98__。

7. 字元串」It\』s\40a\40C++programe!」中包含有______19____個字元。

8. 若x=5,y=10,則計算y*=++x表達式後,x和y的值分別為____6____和____60____。

9. 若x=25,則計算y=x--表達式後,x和y的值分別為____24____和__25______。

10. 假定x和ch分別為int型和char型,則sizeof(x)和sizeof(ch)的值分別為___4_____和_____1___。

11. 假定x=64,y=88,則x2和y2的值分別為____128____和___44_____。

12. 假定x是一個邏輯量,則xtrue的值與_____x___的值相同,x||false的值也與_____x___的值相同。

13. 假定x是一個邏輯量,則x!x和x||!x的值分別為____0____和____1____。

14. 假定x=10,則表達式x=10?20:30的值為____20____。

15. 表達式sqrt(81)和pow(6,3)的值分別為________9______和_________216_____。

16. 數學算式(1+x)sin48°和axbex+1對應的算術表達式分別為___(1+x)*sin(48*3.14159/180)_____和_____a*pow(x,b)*exp(x+1)___。

17. 邏輯表達式:a=x||b2*y+10的相反式為:___~(a=x2*y+10)_____。

18. 在嵌套的if語句中,每個else關鍵字與它前面最接近的____if____關鍵字相配套。

19. 在for語句中,假定循環體被執行次數為n,則表達式1共被計算____n___次,表達式2共被計算____n____次,表達式3共被計算____n____次。

20. 執行for和while循環時,每次是先進行____條件____的判斷,然後再執行____循環___,執行do循環時則相反。

另外,站長團上有產品團購,便宜有保證

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(s0)

{ 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;i8;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;i6;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 (k1) 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=a3;

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(x15) printf(“%d”,x-5);

if(x10) printf(“%d”,x);

if(x5) 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(k0)開始的後續元素全部向前移動一個位置。請填空。

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;i6;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語言程序設計2015A卷-

一、判斷題(每小題1分,共15分)

1.標準C中,只有數值型數據才能進行4則混合運算。

2.標準C中,_a是合法的自定義標識符。

3.有定義:float f;表達式f+=(int)3.6%2」不符合C語言語法。

4.標準C中,邏輯運算的結果只有是1表示滿足條件,而結果是0表示不滿足條件。

6.以下運算符排列順序滿足按照優先順序從高到低的排列:『』、『!』、『==』、『-』。

7.語句for(;;);是非法的。

8.在C語言程序中可以由多個源文件構成,每個源文件都可以有自己的main()函數。

9.while和do-while的主要區別是後者至少無條件執行一次。

10.數組名代表數組的首地址是常量,所以將實參數組名表示地址傳給形參數組名是錯誤的。

11.當函數沒有返回值類型時,表示函數類型為void。

12.C語言中,指針變數作函數參數時,它們不是採取單向值傳遞的方式。

13.一個函數中只允許有一條return語句。

14.在C語言中,如果沒有說明變數的存儲類型是auto類型的。

15.由於指針中所存放的地址都是整數,所以整型指針和浮點型指針可以相互賦值。

二、填空題(每空1分,共15分)

1. 若a=4;b=5,c=6;則表達式c==(b=-a); 中c的值是 (1) 。

2. 計算表達式的值:

4&&-4的值: (2) ;

設int a=3,b=4,c=5,則表達式a||b+cb==c的值: (3) ;

設x=2.5, a=7, y=4.7,則表達式x+a%3*(int)(x+y)%2/4的值: (4) ;

設a=12,則表達式a*=a/5的值: (5) ;

3. 若int x = 4,y = 6,z = 0;有循環while(x = y) {z ++;y–;}

則循環語句執行完後,z值為 (6) 。

4. 變數的指針就是指該變數的 (7) 。

5. 若有定義int (*p)[4],則標識符p是 (8) ;若有定義int *p[4],則標識符p是 (9) ;

6. 已有定義:char *p[ ]={「France」,「Chinese」,「Russia」,「America」};則語句printf(「%s」,p[2]);printf(「%c」,*(p[1]+2));printf(「%c」,*(*(p+1)+1));

的輸出結果分別為: (10) 、 (11) 、 (12) 。

7. 已有定義: int x=65; 若格式化輸出結果為「A, 65」,則對應的格式化輸出語句為printf(「 (13) , (14) 」, x, x)。

8. 已定義:int a[][2]={1, 2, 3, 4, 2, 6, 7, 2};則a[3][0]= (15) 。

三、簡答題(每題4分,共12分)

1、簡述選擇語句if和else語句對與switch語句的區別。

2、簡述在循環語句中,break和continue的區別。

3、若int a[5],*p=a;簡述*p++和(*p)++的區別。

四、下列各程序中每個程序各有2個錯誤,指出錯誤語句,寫出對應正確語句(每小題4分,共16分)

五、程序填空題:下列程序中缺少若干條語句,在對應的下劃線上填上合適的語句,每一個下劃線只填一條語句(每小題6分,共24分)

六、閱讀下列程序,寫出運行結果(第一小題4分,第二小題6分,共10分)

七、編程題(8分)

編譯程序,其功能是比較字元串的大小( 不允許 用系統提供的字元串比較函數strcmp)。要求是:

(1) 通過主函數調用一個函數strcompare來實現。

(2) 要求函數strcompare實現兩個字元的比較:如第一個字元小於第二個字元則返回一個負值;如兩個字元相等則返回0值;如第一個字元大於第二個字元則返回一個正值。

(3) 並輸出兩個字元串中相同部分的子串。

《C語言程序設計基礎》試卷參考答案

一、判斷題(每小題1分,共15分)

1~5 ; 6~10 ; 11~15

二、填空題(每空1分,共15分)

(1) 6 (2) 1 (3) 1 (4) 2.5 (5) 24 (6) 6

(7)地址 (8) 行指針,指向有四個元素的一維數組

(9)指針數組名,該數組有四個元素,每個元素都是指針

(10)Russia (11)i (12)h (13) %c (14) %d (15)7

三、簡答題(每題4分,共12分)

1、if總是判斷其後面的表達式的值是否為非零值,如是非零值則執行其後面的語句或由{}括起來的複合語句,否則執行else後面的語句。而switch語句則根據其後面表達式的可數值來判斷,執行switch語句體內與其中的一個case:常量值相等語句後面的語句。執行break語句後,跳出switch語句體。

2、break是終止整個循環過程;continue是終止本次循環。

3、*p++首先取a[0]的值,然後p指向a[1];(*p)++使得a[0]的值自增1,但p保持不變。

四、下列各程序中每個程序各有2個錯誤,指出錯誤語句,寫出對應正確語句(每小題4 分,共16分)

1、 (1)缺#include ; (2)scanf(「%f」,a); 改為 scanf(「%f」,a);

2、 (1)缺sum=0; (2)for(i=1; i=3; i++) 改為for(i=0;i3;i++)

3、 (1)p1=p2 改為 *p1=*p2 (2)swap(a, *p) 改為swap(a, p)

4、 (1)在if(m0)語句後添加else if(m==0) a=1; (2) 添加 return(a);

五、程序填空題:下列程序中缺少若干條語句,在對應的下劃線上填上合適的語句,每一個下劃線只填一條語句(每小題6分,共24分)

1、 (1)x=0; (2)if(n==x) (3)s++;或s=s+1;

2、 (4)num[i] (5)max num[i]? (6)num[i]!=0

3、 (7)n-i-1 (8)a[j]a[j+1] (9)a[j+1]=temp

4、 (10)count=0; (11)n%10 (12)n0或n!=0或n

六、閱讀下列程序,寫出運行結果(第一小題4分,第二小題6分,共10分)

1、 #*#*#*

2、 main i=1 j=2 k=2

sub i=1 j=2 k=1 x=2

sub i=1 j=2 k=1 x=3

七、編程題(8分)

#include

main()

{

int i,j, flag=0;

char str1[90],str2[90];

gets(str1);

gets(str2);

i=0;

do{

flag=strcompare(str1[i],str2[i]);

i++;

}while(str1[i]!=』』 str2[i]!=』』 flag=0);

if(flag0)printf(「%s小於%s 」,str1,str2);

else if(flag==0) printf(「%s 等於%s 」,str1,str2);

else printf(「%s大於%s 」,str1,str2);

printf(「兩個字元串中相同的字串為:」);

j=0;

i–; 後3句可用str1[i]=』』; printf(「%s」,str1);代替//用str2也可以。

while(ji){printf(「%c」,str1[i]);j++;} span=”” /i){printf(「%c」,str1[i]);j++;}

}

int strcompare(char c1,char c2)

{

int v;

v=c1-c2;

return v;

}

《C語言程序設計》試題1 求解 請勿亂填 非常感謝

CCCBA,DBD9D

CDBBB,BCBAC不敢保證全對。。。

第九題我覺得答案是2.。。。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/195621.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-02 20:36
下一篇 2024-12-02 20:36

相關推薦

  • MQTT使用教程

    MQTT是一種輕量級的消息傳輸協議,適用於物聯網領域中的設備與雲端、設備與設備之間的數據傳輸。本文將介紹使用MQTT實現設備與雲端數據傳輸的方法和注意事項。 一、準備工作 在使用M…

    編程 2025-04-29
  • Python3.6.5下載安裝教程

    Python是一種面向對象、解釋型計算機程序語言。它是一門動態語言,因為它不會對程序員提前聲明變數類型,而是在變數第一次賦值時自動識別該變數的類型。 Python3.6.5是Pyt…

    編程 2025-04-29
  • Deepin系統分區設置教程

    本教程將會詳細介紹Deepin系統如何進行分區設置,分享多種方式讓您了解如何規劃您的硬碟。 一、分區的基本知識 在進行Deepin系統分區設置之前,我們需要了解一些基本分區概念。 …

    編程 2025-04-29
  • 寫代碼新手教程

    本文將從語言選擇、學習方法、編碼規範以及常見問題解答等多個方面,為編程新手提供實用、簡明的教程。 一、語言選擇 作為編程新手,選擇一門編程語言是很關鍵的一步。以下是幾個有代表性的編…

    編程 2025-04-29
  • Qt雷達探測教程

    本文主要介紹如何使用Qt開發雷達探測程序,並展示一個簡單的雷達探測示例。 一、環境準備 在開始本教程之前,需要確保你的開發環境已經安裝Qt和Qt Creator。如果沒有安裝,可以…

    編程 2025-04-29
  • 猿編程python免費全套教程400集

    想要學習Python編程嗎?猿編程python免費全套教程400集是一個不錯的選擇!下面我們來詳細了解一下這個教程。 一、課程內容 猿編程python免費全套教程400集包含了從P…

    編程 2025-04-29
  • OpenJudge答案1.6的C語言實現

    本文將從多個方面詳細闡述OpenJudge答案1.6在C語言中的實現方法,幫助初學者更好地學習和理解。 一、需求概述 OpenJudge答案1.6的要求是,輸入兩個整數a和b,輸出…

    編程 2025-04-29
  • Python煙花教程

    Python煙花代碼在近年來越來越受到人們的歡迎,因為它可以讓我們在終端里玩煙花,不僅具有視覺美感,還可以通過代碼實現動畫和音效。本教程將詳細介紹Python煙花代碼的實現原理和模…

    編程 2025-04-29
  • 使用Snare服務收集日誌:完整教程

    本教程將介紹如何使用Snare服務收集Windows伺服器上的日誌,並將其發送到遠程伺服器進行集中管理。 一、安裝和配置Snare 1、下載Snare安裝程序並安裝。 https:…

    編程 2025-04-29
  • 學堂雲Python語言程序設計答案

    學堂雲Python語言程序設計是一門重要的計算機專業課程。它涵蓋了Python語言及其應用,包括基礎語法、函數、文件處理、數據結構、圖形界面和網路編程等內容。在學習中,我們經常會需…

    編程 2025-04-29

發表回復

登錄後才能評論