c語言程序設計樣卷,c語言程序設計試卷

本文目錄一覽:

c語言,程序設計題,如圖?

c 語言程序設計練習題 c 語言程序設計練習題 篇一:c 語言程序設計基礎單元總結與練習題及答案 答案 單元一程序設計宏觀認識 單元總結提升 本…

C語言程序設計F卷-

考試試卷(F卷)

——標 准 答 案

計算機程序設計 課程 56 學時 3.5 學分 考試形式: 閉 卷

一、選擇題(15小題,每小題2分,共計30分)

1.下面不正確的字符串常量是 A 。

A)’abc’ B)”12’12” C)”0″ D)” ”

2.以下正確的敘述是 D

A)在C程序中,每行中只能寫一條語句

B)若a是實型變量,C程序中允許賦值a=10,因此實型變量中允許存放整型數

C)在C程序中,無論是整數還是實數,都能被準確無誤(精確)地表示

D)在C程序中,%是只能用於整數運算的運算符

3.已知字母A的ASCII碼為十進制數65,且c2為字符型,則執行語句c2=’A’十’6’一’3′;後,c2中的值為 A

A)D B)68 C)不確定的值 D)C

4.sizeof(float)是 B :

A)一個雙精度型表達式 B)一個整型表達式

C)一種函數調用 D)一個不合法的表達式

5.以下說法正確的是 D :

A)輸入項可以為一實型常量,如scanf(“%f”,3.5);

B)只有格式控制,沒有輸入項,也能進行正確輸入,如scanf(“a=%d,b=%d”);

C)當輸入一個實型數據時,格式控制部分應規定小數點後的位數,如scanf(“%4.2f”,f);

D)當輸入數據時,必須指明變量的地址,如scanf(“%f”,f);

6.已有如下定義和輸入語句,若要求a1,a2,c1,c2的值分別為10,20,A,B,當從第一列開始輸入數據時,正確的數據輸入方式是 D (註: 表示回車)。

int a1,a2; char c1,c2;

scanf(“%d%d”,a1,a2); scanf(“%c%c”,c1,c2);

A) 1020AB B)10 20 AB

C)10 20 AB  D)10 20AB

7.請閱讀以下程序:

void main()

{int a=5,b=0,c=0;

if(a=b+c) printf(“*** “);

e1se printf(“$$ “);

以上程序 D :

A)有語法錯不能通過編譯 B)可以通過編譯但不能通過連接

C)輸出*** D)輸出$$

8.下面程序段的運行結果是 C 。

x=y=0;

while(x15) {y++;x+=++y;}

printf(“%d,%d”,x,y);

A)20,7 B)6,12 C)20,8 D)8,20

9.若有說明:int a[3]={0};則下面正確的敘述是 D 。

A) 只有元素a[0]可得到初值0

B) 此說明語句不正確

C) 數組a中各元素都可得到初值,但其值不一定為0

D) 數組a中每個元素均可得到初值0

10.在c語言中,引用數組元素時,其數組下標的數據類型允許是_ C _。

A)整型常量 B)整型表達式

C)整型常量或整型表達式 D)任何類型的表達式

11.下面程序段的運行結果是 _ B _。

char c[5]={‘a’,’b’,”,’c’,”};

printf(“%s”,c);}

A)’a’’b’ B)ab C)ab c D)a b

12.以下敘述正確的是 C 。

A) 在C程序中,main函數必須位於程序的最前面

B) C程序的每行中只能寫一條語句

C) C語言本身沒有輸入輸出語句

D) 在對一個C程序進行編譯的過程中,可發現注釋中的拼寫錯誤

13.簡單變量做實參時,實參與其對應的形參之間的數據傳遞方式是 C 。

A)雙向值傳遞方式 B)地址傳遞方式

C)單向值傳遞方式 D)用戶指定傳遞方式

14.編輯程序的功能是 A 。

A)修改並建立源程序 B)將源程序翻譯成目標程序

C)調試程序 D)命令計算機執行指定的程序

15.在C語言中,5種基本數據類型的存儲空間長度排列順序為 C。

A)charint1ong int=”floatdouble /int

C)charint=1ong d)char=”int=1ong” int=”floatdouble /int

二、計算表達式(每小題1.5分,共計15分):

設 int x=25,y=-20;float a=102.56,b=50.87;(注意:各式結果不影響後續的題目!)

1.(++y)+(x–) ( 6 )

2.y*=y+=25 ( 25 )

3.x+y=0?(x-2*y):(x+2*y) ( 65 )

4.(x+y)/2+(int)(a-b)%(int)b ( 3 )

5.x/2+(a-b)/2 ( 37.845 )

6.!(x=a)(y=b)1 ( 0 )

7.!(a+b-1)||y+x/2 ( 1 )

8.計算(y=0)(++y)後y的值為: ( -20 )

9.printf(“%d”,’102’);結果為 ( 66 )

10.已知’a’的ASCII碼為97,則:printf(“%c”,’d’);結果為( d )

三、寫出下列程序的的執行結果(每小題5分,共計20分,注意輸出格式)

1.#include

Int main()

{ int a=23389,b=45;float x=647.3586,y=13643.5538;

char c1=’A’,c2[]=”Hello”;

printf(“a=%4d,b=%4d “,a,b);

printf(“%-9.2f,%9.2f “,x,y);

printf(“%o,%x,%u “,b,b,b);

printf(“%d,%c “,c1,c1);

printf(“%s,%6.4s “,c2,c2);

return 0;

}

2.#include

#define N 10

int main( )

{ int a=1,b=0, i;

for (i=0; in span=”” i++)

{ printf(“%6d%6d”,a,b);

printf(” “);

a=b+a;

b=a+b;}

return 0;}

3.#include

int main()

{ int i,j,k=0;

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

{ for(j=2;j=i-1;j++)

if(i%j==0) break;

if(j==i)

{ printf(“%7d”,i) ;

k++;

if(k%2==0) printf(” “);

}

}

Return 0;

}

4.#include

int main()

{ int i=16,j,x=6,y,z;static char c[]=”I am a student”;

j=i+++1; printf(“%5d ”,j);

x*=i=j; printf(“%5d ”,x);

x=1,y=2,z=3;

x+=y+=z;

printf(“%5d ”,(z+=x)y? z++:y++);

x=y=z=-1;

++x||++y||z++;

printf(“%5d,%5d,%5d ”,x,y,z);

printf(“%s,%5.4s ”,c,c);

return 0;

}

四、程序填空(每空1.5分,共計15分)

1.下面程序的功能是:將字符數組s2中的全部字符拷貝到字符數組s1中,不用strcpy函數。

#include

main()

{ char s1[80], s2[80];

int i;

printf(“input s2:”);

gets(s2) ;

for(i=0;s2[i]!=’’; i++ )

s1[i]=s2[i] ;

s1[i]=’’;

printf(“s1: %s “,s1);

return 0;

}

2.輸入20個整數,找出其中的最大數及最小數,並求其和值。

#include

int main()

{ int a[20],i,max,min,sum;

printf(“input a[0]-a[19]:”);

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

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

max=a[0]; min=a[0]; sum= a[0] ;

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

{ if(a[i]max) max=a[i];

if(a[i]min) span=”” min=a[i] ;

sum+=a[i];

}

printf(%d,%d,%d “,max,min,sum);

return 0;

}

3.輸入一行字符到字符數組中,將其中的小寫字母轉化成大寫字母,大寫字母轉化成小寫字母,然後輸出。

#include

#include

main()

{ char c,str[80];

int i;

gets(str);

for(i=0;(c=str[i])!= ’’ ;i++)

{ if( c=’A’c=’Z’ ) c=c+32;

else if(c=’a’c=’z’) c=c-32;

str[i]=c; }

puts( str );

return 0;

}

五、編寫程序(每小題10分,共計20分)

(注意:可做在試卷反面)

1.輸出100到300之間能被5整除卻不能被3整除的所有數之和。

#include

int main()

{ int n,sum=0;

for(n=100; n=300; n++)

if(n%5==0 n%3!=0) sum += n;

printf(“%d ”, sum);

return 0;

}

2.編寫main函數及一個求x階乘(x!)的用戶自定義函數fun( ),並在主函數中調用該函數求組合數c的值

添加圖片注釋,不超過 140 字(可選)

#include

int main()

{ long int fun(long int x);

long res, res1, res2, res3,m, n;

scanf(“%ld,%ld”,m,n);

res1=fun(m); res2=fun(n); res3=fun(m-n);

res=res1/(res2*res3);

printf(“%ld ”,res);

return 0;

}

long int fun(long int x);

{ long int i, res=1;

for(i=2; i=x; i++)

res *= i;

return(res);

}

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;

}

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

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

相關推薦

發表回復

登錄後才能評論