當前位置:首頁 » 編程語言 » c語言程序設計考試試題

c語言程序設計考試試題

發布時間: 2023-08-20 05:07:36

c語言程序設計(201803)測試求大佬幫忙!

  1. 選D

  2. 選C;"my name"算上空格一共7個字元,加上結尾的''為8個字元,所以如果m前沒有空格,那麼答案為C

  3. 選C;p指向a[3]=4的地址,即p及其之後地址中的數值為{4,5,6,7,8,9,10},所以其中第5個數為p[4]=8

  4. 選C

  5. 選D;A錯誤,字元串應為char型;B錯誤,數組長度不夠;C錯誤,沒有vhst類型;D正確,可看作字元數組,{}內的數值可轉為相應的ASCII字元

  6. 選C;字元數組即字元串不能直接通過"="賦值,要使用strcpy函數

  7. 選C;函數實參可以是常量、變數或表達式,該題中逗號表達式(exp2,exp3)返回exp3,(exp4,exp5,exp6)返回exp6,因此一共3個實參

  8. 選C;A錯誤,函數調用時不用指明其參數類型;B錯誤,fun函數沒有返回值,不能賦給k;C正確;D錯誤,函數調用時不用指明其返回類型

  9. 選A;n++表示先返回n的值,再對n進行自增操作,即先令k=n,再執行n=n+1

  10. 選C;if-else不是循環結構

  11. 選D;aa表示數組首地址,即&aa[0],而不是&aa[1]

  12. 選B

  13. 選B;a[2]=3,a[2]+1=4,所以a[a[2]+1]=a[4]=5

  14. 選C;A錯誤,除非函數定義在調用語句之後的位置,才需要提前聲明;B錯誤,函數返回值不一定要顯示給出,沒有返回值類型的默認為整型;C正確;D錯誤,在類的定義中,當構造函數和析構函數不需要完成操作時可用空函數來表示,但它們又是有意義的

  15. 選B;scanf需指明讀入變數的地址,字元串名稱c就表示字元串的地址,也即字元數組首元素的地址,不用再加取地址符&

  16. 選A

  17. 選D;同第6題

碼字不易,望採納~

Ⅱ 求一份C語言程序設計的期末考試試題!!!謝謝了

一.
選擇題
(共15題,
每題2分,共30分)
1.
定義結構體的關鍵字是(

A.
union
B.
enum
C.struct
D.typedef
2.
設整型變數a為5,使b不為2的表達式是(

A.
b=a/2
B.
b=6-(--a)
C.
b=a%2
D.
b=a>3?2:1
3.
下面哪一項是不正確的字元串賦值或賦初值的方法(

A.
char
*str;
str=
「china」;
B.
char
str[7]=
{『c』,
『h』,
『i』,
『n』,
『a』};
C.
char
str1[]=
「china」,str2[]=「123」;
D.
char
str1[10];
str1=
「china」;
4.
以下對二維數組a進行正確初始化的是(

A.
int
a[2][3]={{1,2},{3,4},{5,6}};
B.
int
a[
][3]={1,2,3,4,5,6};
C.
int
a[2][
]={1,2,3,4,5,6};
D.
int
a[2][
]={{1,2},{3,4}};
5.
選出下列標識符中不是合法的標識符的是(

A.
hot_do
B.
cat1
C.
_pri
D.
2ab
6.
以下說法中正確的是(

A.
C語言程序總是從第一個的函數開始執行
B.
在C語言程序中,要調用的函數必須在main()函數中定義
C.
C語言程序總是從main()函數開始執行
D.
C語言程序中的main()函數必須放在程序的開始部分
7.
若已定義:int
a[9],
*p=a;並在以後的語句中未改變p的值,不能表示a[1]地址的表達式為(

A.
p+1
B.
a+1
C.
a++
D.
++p
8.
若有說明:
int
i,j=7,
*p=&i;,
則與i=j;
等價的語句是(

A.
i=
*p;
B.
*p=*&j;
C.
i=&j;
D.
i=*
*p;
9.
若變數c為char類型,能正確判斷出c為小寫字母的表達式是(

A.
『a』<=c<=
『z』
B.
(c>=
『a』)
||
(c<=
『z』)
C.
(『a』<=c)
and
(『z』>=c)
D.
(c>=
『a』)
&&
(c<=
『z』)
10.
以下程序的輸出結果是(

main()
{
int
a[]={1,2,3,4,5,6,7,8,9},
*p;
p=a;
*(p+3)+=2;
printf(
「%d,%d\n」,*p,*(p+3)
);
}
A.
0,
5
B.
1,
6
C.
1,
5
D.
0,
6
11.
以下程序的輸出結果是(

main()
{
int
a=5;
float
x=3.14;
a*=x*(『E』-
『A』);
printf(「%f\n」,(float)a);
}
A.
62.000000
B.
62.800000
C.
63.000000
D.
62
12.
以下程序的輸出結果是(

#define
f(x)
x*x
main()
{
int
a=6,b=2,c;
c=f(a)/f(b);
printf(「%d\n」,c);
}
A.
9
B.
6
C.
36
D.
18
13.
定義如下變數和數組:int
i;
int
x[3][3]={1,2,3,4,5,6,7,8,9};
則語句for(i=0;i<3;i++)
printf("%d
",x[i][2-i]);
的輸出結果是(

A.
1
5
9
B.
1
4
7
C.
3
5
7
D.
3
6
9
14.
下列程序段的輸出結果是


void
main(
)
{
int
k;
for
(k=1;k<5;k++)
{
if(k%2!=0)
printf(
「#」
);
else
printf(「*」)
;
}
}
A.
#*#*
B
.
*#*#
C.
##
D.
**
15.
下列程序執行後輸出的結果是(

int
d=1;
fun
(int
p)
{
int
d=5;
d
+
=p
+
+;
printf("%d,",d);
}
main(
)
{
int
a=3;
fun(a);
d
+
=
a
+
+;
printf("%d\n",d);
}
A.
8,
4
B.
9,
6
C.
9,
4
D.
8,
5
二.
填空題(共7題,每空2分,共30分)
1.
數組
int
a[3][5];
共定義了_______________個元素。
2.
有float
f=3.1415927;

printf(「%5.4f」,
f
);輸出的結果是_______________。
3.
下面程序的功能是:輸出
100以內(不包含100)能被
3整除且個位數為
6的所有整數,請填空。
main(
)
{
int
i;
for(i=1;
_______________;
i++)
if
(_______________)
printf("%d",
i);
}
4.
設有「int
x=2,
y」說明,則逗號表達式「y=x+5,x+y」的值是
_______________
5.
以下是使用指針,進行字元串復制的程序,請填空。
main()
{
char
a[]=
「Tsinghua
University」,
b[30],
*p1,*p2;
p1=a;
p2=b;
for(;
*p1!=
『_______________』;
p1++,
p2++)
_______________=_______________;
*p2=
『_______________』;
printf(「string
a
is:%s\n」,a);
printf(「string
b
is:%s\n」,b);
}
6.
下面程序用冒泡法對數組a進行降序排序,請填空。
main()
{
int
a[5]={4,7,2,5,1};
int
i,j,m;
for(i=0;i<4;i++)
for(j=0;j<_______________;j++)
if(
_______________<
_______________
)
{
m=a[
j];
a[
j]=a[
j+1];
a[
j+1]=
m;
}
for(i=0;i<5;i++)
printf("%d
",a[i]);
}
7.
函數fun的功能是:使一個字元串按逆序存放,請填空。
void
fun
(char
str[])
{
char
m;
int
i,j;
for(i=0,j=strlen(str);i<_______________;i++,j--)
{
m=str[i];
str[i]=
_______________;
str[j-1]=m;
}
printf("the
rotated
string
is
%s\n",_______________);
}

Ⅲ C語言程序設計F卷-

考試試卷(F卷)

——標 准 答 案

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

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

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

A)'abc' B)"12཈" C)"0" D)" "

2.以下正確的敘述是 D

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

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

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

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

3.已知字母A的ASCII碼為十進制數65,且c2為字元型,則執行語句c2='A'十ƌ'一Ɖ'後,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(x<15) {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)char<int<1ong int<="float<double </int

C)char<int<=1ong d)char="int=1ong" int<="float<double </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; i<n 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;i<31;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;i<20;i++)

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

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

for(i=1; i<20 ;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語言程序設計》練習題

一、選擇題
1、C語言規定,在一個源程序中,main()函數的位置(C )。
A) 必須在最開始 B)必須在最後
C) 可以任意 D) 必須在系統調用的庫函數後面

這題你死記就行,你看看這個
任何一個C++程序都必須定義一個main函數,它的返回類型總是int類型。這個函數由操作系統來調用,在main函

數執行完以後,程序也就終止了。 main也可以使用return向操作系統返回一個值,使用操作系統的命令可以檢測

main的返回值。一般約定在main返回0時,表示程序運行過程中沒有出現錯誤,其它非零值表示程序出現異常情況。
若沒有為main指定返回值,這樣返回值是任意的。

2、若x和y都是int 型變數,x=100,y=200,且有以下程序段,printf(「%d」,(x,y));則其輸出結果是( A)。
A) 200 B) 100 C) 100 200 D) 輸出不確定值

(x,y)這是個逗號表達式,表達式的值為最後一個逗號後面表達式的值,因為前面有一個%d,所以輸出 的是y的



3、合法的C語法字元常量是(C )。
A) 「A」 B) 65 C) 『\t』 D) A

字元都是由兩個單引號括起來的,死記, a)為字元串

4、表達式「3!=4」的值是(A )。
A) 1 B) 0 C) T D) F

!=是c語言的邏輯運算符,3!=4為真,多以得1, 3=4為假,值為0

5、 int a=1,b=2,c=3,d=4,執行下列程序後x的值為( C)。
if(a>b) x=1;else if (c>d) x=2;else x=3;
A) 1 B) 2 C) 3 D) 4

如果a>b,1>2為假,不執行x=1,執行else if(c>d),判斷:3>4為假,不執行x=2,執行=3,完

6、以下程序的輸出結果是(D)。
Int x=10,y=3,z;printf(「%d\n」,z=(x%y,x/y));
A)1 B) 0 C) 4 D) 3

逗號表達式,x%y,10%3,商3餘1,模取余數1,x/y,10/3,商3餘1,除法取商3,逗號表達式,表達式的值為最後一

個逗號後面表達式的值

7、為表示x≥y≥z,應使用C語言表達式(A )。
A) (x>=y)&&(y>=z) B) (x>=y) AND (y>=z)
C) (x>=y>=z) D) (x>=y) & (y>=z)

關系運算符,x>=y與y>=z必須是同時成立的,因此要用邏輯運算符&&,&&與的意思

8、合法的數組定義是( a )。
A) int a[ ]=」string」; B) int a[5]={0,1,2,3,4,5};
C) char a=」string」; D) char a[ ]={「01234」};

a不指定數組長度定義,正確
b數組長度為5,就是裡面有5個數組元素,多了一個數組元素
c定義a不是數組而是一個變數,素組應該是a[]
d是錯的,字元串是這樣定義的:char a[ ]={'0','1','2','3','4','\0'};
[4]中數字是數組長度,說明裡面有幾個元素

9、設x和y均為int型變數,則語句「x+=y;y=x-y;x-=y;」的功能是(D)。
A) 把x和y按從小到大排列 B)把x和y按從大到小排列
C)無確定結果 D)交換x和y中的值

x+=y等同於x=x+y,把x加y的值賦給x,x現在存的是x與y的和
y=x-y把x減y的值賦給y,x現在存的是x與y的和 (x+y)-y=x,把x的值給y,y存x的值
x-=y等同於x=x-y,把x減y的值賦給x,(x+y)-y=x,現在的後面的y存的是x的值,做完後x里存的值是y,完成交換

10、若已定義x和y為double類型,則表達式「x=1,y=x+3/2」的值是(C)。
A) 1 B)2 C) 2.0 D) 1.0

逗號表達式,先讓x=1在算y=x+3/2,得2,因為是double類型,所以有小數點

11、下列條件語句中,功能與其他語句不同的是 (D)
A) if(a) printf("%d\n",x); else printf("%d\n",y);
B) if(a==0) printf("%d\n",y); else printf("%d\n",x);
C) if (a!=0) printf("%d\n",x); else printf("%d\n",y);
D) if(a==0) printf("%d\n",x); else printf("%d\n",y);

a 如果a為真輸出x,如果a為假輸出y
b 如果a==0,也就是為假,輸出y,a為真輸出x,同a
c 如果a!=0為真,輸出x,a為假輸出y同上
d 如果a為假輸出x,如果a為真輸出y,與以上的都不同

12、以下能正確定義二維數組的是 (C)
A) int a[][3]; B) int a[][3]=2{2*3};
C) int a[][3]={0}; D) int a[2][3]={{1},{2},{3,4}};

a 沒有給數組賦初值
b {}里不能有*
c 正確,記住第一個[]中可以為空,第二個[]不能為空,死記
d a[2][3] 的意思是有兩個一維數組,每個一維數組里有3個元素,{{1},{2},{3,4}}; 她的意思是三個數組,{}中的每一個{}代表一個數組,里邊的數為數組元素

13、用C語言編寫的代碼程序 (B)
A)可立即執行 B)是一個源程序
C)經過編譯即可執行 D)經過編譯解釋才能執行

死記

Ⅳ 求解C語言程序設計題

完整的fun函數代碼如下:

int fun(STU a[], int n, STU h[]) {

int i, k = 0;

double avg = 0;

for (i = 0; i < n; i++) {

a[i].sum = a[i].s1 * 0.7 + a[i].s2 * 0.3;

avg += a[i].sum; // 先計算總分

}

avg = avg / n; // 再計算平均分

for (i = 0; i < n; i++) {

if (a[i].sum > avg) { // 統計平均分以上的學生

strcpy(a[i].level, "均分以上");

h[k++] = a[i];

}

}

return k;

}

運行結果如下:

可見成功輸出了平均分以上的學生信息,望採納~

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

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

熱點內容
王者鍵盤怎麼設置安卓 發布:2025-02-05 10:32:01 瀏覽:373
阿里雲輕量伺服器ip搭建 發布:2025-02-05 10:24:46 瀏覽:486
編程高精度 發布:2025-02-05 10:22:28 瀏覽:230
使命召喚如何配置爆炸狙 發布:2025-02-05 10:08:12 瀏覽:143
java訪問共享目錄 發布:2025-02-05 10:03:56 瀏覽:281
行車記錄儀存儲卡多大合適 發布:2025-02-05 09:35:21 瀏覽:112
oppo手機鎖屏密碼忘了怎麼辦 發布:2025-02-05 09:33:50 瀏覽:124
phprsa演算法 發布:2025-02-05 09:33:48 瀏覽:231
快寫編譯器 發布:2025-02-05 09:29:15 瀏覽:590
java隨機驗證碼 發布:2025-02-05 09:27:45 瀏覽:637