當前位置:首頁 » 編程語言 » c語言期末考試題目分布
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言期末考試題目分布

發布時間: 2023-04-27 23:40:57

Ⅰ 計算機二級c語言考試的題型有哪些以及相應的分值是多少

考試形式及分值:
筆試:選擇(70分)填空(30分)
機試:改錯(30分)填空(30分)程序(40分)

Ⅱ 大一C語言期末考試的試題大概是什麼樣子的主要考什麼

主要考程序閱讀題,重點在c語言函數、指針、數組應用幾個方面,要掌握基礎的編程方法,比如排序基本演算法,後面要編程序的

Ⅲ C語言期末考試試題(譚浩強版)

C語言期末考試試題
2008年04月12日 星期六 00:22

一 選擇題(24分,每小題2分)
1.已知函數fread的調用形式為fread(buffer,size,count,fp),其中buffer代表的是()。

A 存放讀入數據項的存儲
B 存放讀入數據的地址或指向此地址的指針
C 一個指向所讀文件的文件指針
D 一個整形變數,代表要讀入的數據項總數

2.以下程序的輸出結果為( )。
main( )
{
int i=010,j=10;
printf("%d,%d\n",i++,j--);
}

A 11,9
B 9,10
C 8,10
D 9,9

3.設a為int型變數,執行下列賦值語句後,a的取值分別是( )。
a=125.534;
a=20.0/3;
a=(int)125.521%4;
a=5<<2;

A 125,6,31,1
B 125,6,1,20
C 125,6.666666,31,20
D 125.534,6.666666,2,20

4.設i和k都是int類型,則for循環語句( )。
for(i=0,k=-1;k=1;i++,k++)
printf("****\n");

A 循環結束的條件不合法
B 循環體一次也不執行
C 循環體只執行一次
D 是無限循環

5.以下程序的輸出結果為( )。
main( )
{
char c;
int i;

for(i=65;i<68;i++)
{
c=i+32;
switch(c)
{
case 'a':
case 'b':
case 'c':printf("%c,",c);break;
default:printf("end");
}
}
}

A a,b,c,end
B a,a,a,end
C a,a,a,
D a,b,c,

6.函數調用語句:fseek(fp,-10L,2);的含義是( )。
A 將文件位置指針從文件末尾處向文件頭的方向移動10個位元組
B 將文件位置指針從當前位置向文件頭的方向移動10個位元組
C 將文件位置指針從當前位置向文件末尾方向移動10個位元組
D 將文件位置指針移到距離文件頭10個位元組處

7.以下程序的輸出結果為( )。
main( )
{
int i=0,j=0;
while(s1[i]!='\0')
i++;
while(s2[j]!='\0')
s1[i++]=s2[j++];
s1[i]=0;

printf("%s\n",s1);
}

A side
B country
C sidetry
D countryside

8.下列說法不正確的是( )。

A 主函數main中定義的變數在整個文件或程序中有效
B 不同函數中,可以使用相同名字的變數
C 形式參數是局部變數
D 在一個函數內部,可以在復合語句中定義變數,這些變數只在本復合語句中有效

9.在下列程序段中,枚舉變數 c1的值是( )。
enum color { red,yellow,blue=4,green,white}c1;
c1=yellow;
c1=white;

A 1
B 3
C 5
D 6

10.設有說明 int (*ptr)();其中標識符ptr是( )。

A 是一個指向整形變數的指針
B 是一個指針,它指向一個函數值是int的函數
C 是一個函數名
D定義不合法

11.定義由n個指向整形數據的指針組成的數組p,其正確的方式為( )。

A int p;
B int (*p)[n];
C int *p[n];
D int (*p)( );

12.具有相同類型的指針類型變數p與數組a,不能進行的操作是( )。

A p=a;
B *p=a[0];
C p=&a[0];
D p=&a;

二 判斷對錯,對的劃「√」,錯的劃「×」(20分,每小題2分)

1.參加位運算的數據可以是任何類型的數據。 ( )

2.若有定義和語句:
int a;
char c;
float f;
scanf("%d,%c,%f",&a,&c,&f);

若通過鍵盤輸入:10 A 12 5
則a=10,c=『A』,f=12.5。 ( )

3.C語言把文件看作是一個字元(位元組)的序列。 ( )

4.若有宏定義:
#define S(a,b) t=a;a=b;b=t
由於變數t沒定義,所以此宏定義是錯誤的。 ( )

5.在Turbo C中,下面的定義和語句是合法的:
file *fp;
fp=fopen("a.txt","r"); ( )

6.若有定義:
char s[ ]="china";
則Turbo C系統為數組s開辟6個位元組的內存單元。 ( )

7.若有定義和語句:
int a[3][3]={{3,5},{8,9},{12,35}},i,sum=0;
for(i=0;i<3;i++)
sum+=a[i][2-i];
則sum=21。 ( )

8.若有定義和語句:
struct student
{
int num;
char name[10];
float score;
}
s[5]={{1,"lili",98.5},{9,"xiaohua",66}},*p=s;printf("%d",*p++);
輸出結果是1。 ( )

9.在程序中定義了一個結構體類型後,可以多次用它來定義具有該類型的變數。 ( )

10.在Turbo C中,此定義和語句是合法的:
enum aa{ a=5,b,c}bb;
bb=(enum aa)5; ( )

三 寫出下列程序的運行結果(36分,每小題6分)
1.
main( )
{
int i=29,j=6,k=2,s;
s=i+i/j%k-9; //s=i+(i/j)%k-9
printf(「s=%d\n」,s);
}

2.
main( )
{
int x=31,y=2,s=0;
do
{
s-=x*y;
x+=2;y-=3;
}
while(x%3==0); //先執行,後判斷
printf(「x=%d\ty=%d\ts=%d\n」,x,y,s);
}

3.
main( )
{
int a[6]={10,20,30,40,50,60},i;
invert(a,0,5);
for(i=0;i<6;i++)
printf(「%d,」,a[i]);
printf(「\n」);
}

invert(int s[ ],int i,int j) //倒置
{
int t;
if(i<j)
{
invert(s,i+1,j-1); //函數自身的嵌套調用,形成循環
t=s[i];
s[i]=s[j];
s[j]=t;
}
}

4.
#include <stdio.h>

main()
{
char str[ ]="The C program",c;
int i;
for(i=2;(c=str[i])!='\0';i++)
{
switch(c)
{
case 'g': ++i; break; //由於++i,跳過了g後面的1個字母
case 'o': continue;
default: printf(「%c」,c); continue;
}
printf(「*」);
}
printf(「\n」);
}

5.
struct w //結構體
{
char low;
char high;
};

union u //共用體
{
struct w byte;
short word;
}uw;

main( )
{
int result;
uw.word=0x1234;

printf("word value:%04x\n",uw.word);
printf("high byte:%02x\n",uw.byte.high);
printf("low byte:%02x\n",uw.byte.low);

uw.byte.low=0x74;

printf("word value:%04x\n",uw.word);
result=uw.word+0x2a34;
printf("the result:%04x\n",result);
}

6.
main()
{
char *s2="I love China!",**s1=&s2;
char *s3,c,*s4="w";
s3=&c;
*s3='H';
s2=s2+2;
printf("%s\t%c\t%s\t%c\n",s2,*s3,s4,**s1);
}

四 閱讀下列程序,在 處填入適當內容,使程序完整(20分,每個空2分)

1.百馬百擔問題:有100匹馬,馱100擔貨,大馬馱3擔,中馬馱2擔,兩匹小馬馱1擔,問大、中、小馬各多少匹?
main( )
{
int hb,hm,hl,n=0;
for(hb=0;hb<=100;hb+=(1))
for(hm=0;hm<=100-hb;hm+=(2))
{
hl=100-hb- (3) ;
if(hb/3+hm/2+2*(3)==100)
{
n++;
printf("hb=%d,hm=%d,hl=%d\n",hb/3,hm/2,2*hl);
}
}
printf("n=%d\n",n);
}

2.用「起泡法」對輸入的10個字元排序後按從小到大的次序輸出。
#define N 10

char str[N];

void main()
{
int i,flag;

for(flag=1;flag==1;)
{
scanf("%s",str);
flag=0;
printf("\n");
}

sort(___(4)___);

for(i=0;i<N;i++)
{
printf("%c",str[i]);
}
printf("\n");
}

sort(char str[N]) //冒泡排序
{
int i,j;
char t;

for(j=1;j<N;j++)
for(i=0;i<10-j;i++)
if(str[i]>str[i+1])
{
t=str[i];
____(5)____;
____(6)____; //交換位置
}
}

3.以下程序是一個函數,功能是求二階矩陣(m行n列矩陣)的所有靠外側的各元素值之和。(本程序中二階矩陣用一維數組來表示。)

例如,矩陣為:
3 0 0 3
2 5 7 3
1 0 4 2
則所有靠外側的各元素值之和為3+0+0+3+2+3+1+0+4+2=18。

add(int m,int n,int arr[])
{
for(i=0;i<m;i=i+m-1)
for(j=0;j<n;j++)
sum=sum+____(7)____;
for(j=0;j<n;j=j+n-1)
for(i=1;____(8)____;i++)
sum=sum+arr[i*n+j];
return(sum);
}

4.用指針作函數參數,編程序求一維數組中的最大和最小的元素值。
#define N 10
main()
{
void maxmin(int arr[],int *pt1,int *pt2,int n);
int array[N]={10,7,19,29,4,0,7,35,-16,21},*p1,*p2,a,b;
p1=&a;
p2=&b;
maxmin(array,p1,p2,N);
printf("max=%d,min=%d",a,b);
}

void maxmin(int arr[],int *pt1,int *pt2,int n)
{
int i;
*pt1=*pt2=arr[0];
for(i=1;i<n;i++)
{
if(arr[i]>*pt1)
____(9)____ ;

if(arr[i]<*pt2)
____(10)____ ;
}
}

答案
一 選擇題(24分,每小題2分)
1.( B ) 2.( C ) 3.( B )
4.( D ) 5.( D ) 6.( A )
7.( D ) 8.( A ) 9.( D )
10.( B ) 11.( C ) 12.( D )
二 判斷對錯,對的劃「√」,錯的劃「×」(20分,每小題2分)
1.( × ) 2.( √ )
3.( √ ) 4.( × )
5.( × ) 6.( √ )
7.( √ ) 8.( × )
9.( √ ) 10.( √ )
三 寫出下列程序的運行結果(36分,每小題6分)
1.s=20
2.x=35 y=-4 s=-29
3.60,50,40,30,20,10,
4.e C pr*am
5.word value:1234
6.love China! H w l
high byte:12
low byte:34
word value:1274
the result:3ca8
四 閱讀下列程序,在 處填入適當內容,使程序完整(20分,每個空2分)
1.(1) 3 (2) 2 (3)hm hl
2.(4) str (5) str[i]=str[i+1] (6) str[i+1]=t
3.(7) arr[i*n+j] (8) i<m-1
4.(9) *ptr1=arr[i] (10) *ptr2=arr[i]

Ⅳ 求一份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語言的期末考試卷,我是大一的新生,想看看試卷的大概格式和內容。

本試卷共8頁,共5大題,考生在作答前應先檢查是否有缺頁、白頁,以防漏答。答題前,請先填寫學號、姓名、專業及班級。

一、單項選擇題(共10題,每題2分,共20分。在備選答案中選擇一個最佳答案。多選、錯選、不選不得分)
1、不是C語言基本數據類型的是( )。
A、指針類型 B、整型
C、字元型 D、實型
2、設有:int a=3, b= 4, c= 5,x , y; 表達式0 && (x=a)&&(y=b)的值為( )。
A、1 B、0 C、3 D、4
3、設有語句 int a=3 ; 則執行了語句 a+=6;後,變數a 的值為( )。
A、18 B、-3 C、9 D、12
4、執行以下程序段後,輸出的y值為(迅畢 )
void main()
{ int a[]={2,4,6,8,10};
int y, *p;
p=&a[0];
y=*p; printf(「%d」,y);
}
A、2 B、4 C、6 D、8
5、有定義語句:float a[4];則分配給數組a的內存空間為( )位元組。
A、 20 B、 12 C、 16 C、10
6、以下描述錯誤的是( )。
A、break語句可用於while語句。
B、break語句和continue語句的作用是一樣的。
C、在循環語句中使用break語句是為了跳出循環,提前結束循環。
D、在循環語句中使用continue語句是為了結束本次循環,而不終止整個循環。
7、C語言中規定,if語句的嵌套結構中,else總是( )。
A、與最近的if 配對 B、與第一個if 配對
C、按縮進位置相同的if配對 D、與最近的且尚未配對的if 配對
8、說明語句「int (*p)( ); 」的含義是( ) 。
A、p是一個指向一維數組的指針變數。
B、p是指針變數,指向一個整型數據。
C、p是一個指向函數的指針,該函數返回一個int型數據。
D、以上都不對。
9、以下對二維數組c的正確聲明是 ( ) 。
A、int c[3][ ]; B、int c(3,4);
C、int c(2)(2); D、int c[3][2];
10、下述程序段執行後輸出結果為( )。
int x=100, y=200;
printf ("% d", (x, y));
A、100 B、200 C、100,200 D、編譯出錯

二、填空題(共7題,共10空,每空1分,共10分。將答案填在題中橫線上)
1、C語言提供的三種邏輯運算符是 && 、 || 和!;
2、函數的返顫昌畢回值是通過函數中的 return 語句獲得的。
3、在"int a[ ][3]={{1},{3,2},{4,5,6},{0}};"定義後,a[2][2]的值為_6__ _;
4、對於"int *pa[5];" pa是一個具有5個元素的_數組指針_,每個元素是一個指向int型變數的__指針__;
5、單向鏈表的尾節點next指針應賦值__ NULL___;
6、在語句for(x=1,y=3;x>y;y++)中循環體執行的次數為 0 。
7、int a[5];數組a的首地址為2000,則元素a[1]的地址為 2002 ,元素a[2]的地址為 2004 。
三、程序填空題(茄芹共2題,共5空,每空4分,共20分)
1、以下程序完成計算1-1/2+1/3-1/4+1/5+……前n 項和,請填空。
#include <stdio.h>
int main( )
{ int i, n, flag;
float sum;
scanf("%d", &n);
flag= 1 ;
sum=0;
for(i=1;i<=n; i++ )
{ sum+=(float)flag/i;
flag=-flag ;
}
printf("%.3f\n", sum);
}
2、以下程序的功能是從鍵盤輸入n個整數,統計其中正數、0、負數的個數,請填空。
#include <stdio.h>
void main( )
{int a, i, count1,count2,count3;
count1=count2=count3=0 ;
for(i=1;i<=n;i++)
{ scanf(「%d」, &a);
if(a>0) count1++;
else if(a==0) count2++ ;
else count3++;
}
printf(「正數:&d個,零:%d個,負數:%d個\n」, count1,count2,count3 );
}

四、運行程序結果題(共4題,每題6分,共24分)
1、寫出程序運行結果。
void main( )
{ int x=1,y=2,t;
int *p1,*p2;
p1=&x; p2=&y;
t=*p1;*p1=*p2;*p2=t;
printf("x=%d,y=%d\n",x,y);
}
運行結果為:
程序有錯,不能運行!或寫:
x=2,y=1

2、寫出程序運行結果。
#include<stdio.h>
int max(int a,int b)
{ int c;
c=a>b?a:b;
return(c);
}
int min(int a,int b)
{int c;
c=a<b?a:b;
return(c);
}
void main()
{ int a=2,b=6;
printf("max=%d\n",max(a,b));
printf(「min=%d\n」,min(a,b));
}
運行結果為:
程序有錯,不能運行!或寫:
max=6
min=2

3、寫出程序運行結果。
#include <stdio.h>
void main()
{ int a[3][3]={1,2,3,4,5,6,7,8,9};
int i,j,sum=0;
for (i=0;i<3;i++)
for(j=0;j<3;j++)
if(i==j) sum=sum+a[i][j];
printf(「sum=%d\n」,sum);
}
運行結果為:
程序有錯,不能運行!或寫:
sum=15

4、寫出程序運行結果。
void main( )
{ int n,f;
n=1;
while(n<=10)
{ f=f*n;
n+=2;
}
printf(「f=%d\n」,&f);
}
運行結果為:
程序有錯,不能運行!或寫:
f=不確定
五、程序設計題(共2題,每題13分,共26分)
1、將一個數組按逆序存放,如元素1、2、3、4、5,按逆序存放後為5、4、3、2、1。

2、求出1!+2!+3!+…+8!的和並輸出。
#include<stdio.h>
float fact(int n)
{ float f;
if(n==1||n==0) f=1;
else f=fact(n-1)*n;
return(f);
}
void main( )
{float sum;
int i;
sum=0;
for(i=1;i<=8;i++)
sum+=fact(i);
printf("sum=%f\n",sum);
}

Ⅵ 大一期末考C語言試題求解答

第一題:#include<stdio.h>

voidmain()

{

inta[10],b[9],i=0;

for(;i<10;i++)

{

printf("請輸入第%d個數",i+1);

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

}

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

b[i-1]=a[i]-a[i-1];

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

{

if(i%3==0)printf(" ");

printf("%d ",b[i]);

}

}

運行結果:

學習是要用心的,多動腦,多思考學到的東西才是自己的。喔,對了給分喲!!!!!

Ⅶ c語言考試都考什麼類型的題目呢

單項選擇題共四十題,四十分,每一個選扮族擇分值為1分,其中單項選擇中含公共基礎知識,該部分十道題,佔10分。

二、程序填空題

程序填空題有2-3個空,佔比分值18分,該題型為上機題,其三個空佔比18分,可想而知其重要性。

三、程序改錯題

程序改錯題有2-3處錯誤,該題型分值佔比也是18分,難度比程序填空題略難。該題型也為上機題,也許重視該類題型。

四、程序設計題

程序設計題是計算機二級C語言考試重點,該題為一大題,佔比分值24分,該題型也為上機題,為考試重點,需多加練習。

註:二級公共基礎知識在各科考試掘培選擇題中體現。程序設計部分,判缺唯主要考查考生對程序設計語言使用和編程調試等基本能力,在選擇題和操作題中加以體現。

計算機二級c語言考試考試要求:

一、熟悉Visual C++2010 Express集成開發環境。

二、掌握結構化程序設計的方法,具有良好的程序設計風格。

三、掌握程序設計中簡單的數據結構和演算法並能閱讀簡單的程序。

四、在Visual C++2010 Express集成環境下,能夠編寫簡單的C程序,並具有基本的糾錯和調試程序的能力。

以上便是計算機二級c語言考試題型及分值說明。

Ⅷ 計算機二級c語言考試題型和分值。

全國計算機二級州帆陪C語言程序設計包括40個單選題(每題一分)和三道操作題(60分)。
單選題中1~10題為二級公共基礎知識,單選題的11~40題是C語言的內容。
操作題包括程序填空(18分)、程序改錯(18分)和編程題(24分)各一題。
程序填空是將一個完整的程序,扣掉兩到三處,讓考生將它填寫完整。由於每位考生具體抽到的題目不同,程序填空有2到3個空要填。

C語言有基礎知識(C語言概述、常量與變數、數據類型、運算符和表達式),編程三大結構(順序結構、選擇結構、循環結構),數組、函數和指針,其他內容(預處理命令、結構體和共用體、位運算、文件)四大部分內容。重點是第二、三部分。

Ⅸ 全國計算機二級考試(c語言)的題型及各題分值是怎樣的(筆試和上機)

全國計算機二級考試(c語言)的題型及各題分值是怎樣的題型分值分布:

1、單項選擇題,40題,40分(含公共基礎知識部分10分)。

2、程序填空題,2~3個空,18分;上機題。

3、程序改錯題,2~3處錯誤,18分;上機題。

4、程序設計題,1題,24分;上機題。

二級公共基礎知識在各科考試選擇題中體現。程序設計部分,主要考查考生對程序設計語言使用和編程調試等基本能力,在選擇題和操作題中加以體現。

(9)c語言期末考試題目分布擴展閱讀:

二級c語言考試要求:

1、熟悉Visual C++2010 Express集成開發環境。

2、掌握結構化程序設計的方法,具有良好的程序設計風格。

3、掌握程序設計中簡單的數據結構和演算法並能閱讀簡單的程序。

4、在Visual C++2010 Express集成環境下,能夠編寫簡單的C程序,並具有基本的糾錯和調試程序的能力。

Ⅹ 徐師大c語言期末考試11機

1、函數fun的功能是計算x^n。
double fun(double x,int n)
{int i; double y=1;
for(i=1;i<=n;i++) y=y*x;
return y;
}
主函數中已經正確定義m、a、b變數並賦值,並調用fun函數計算:m=a^4+b^4-(a+b)^3。實現這一計算的函數調用語句為______。

答案: 1:fun(a,4)+fun(b,4)-fun((a+b),3)
評析:
函數fun的功能是計算x的n次方,所以a的4次方的調用函數應當為fun(a,4),b的4次方的調用函數應當為fun(b,4),(a+b)的3次方的調用函數應當為fun((a+b),3),所以,實現m=a^4+b^4-(a+b)^3這一計算的函數調用語句為:fun(a,4)+fun(b,4)-fun((a+b),3);。
知識點:知識點/函數/函數的正確調用,嵌套調用,遞歸調用

2、以下sstrcpy()函數實現字元串復制,即將t所指字元串復制到s所指內存空間中,形成一個新字元串s。請填空。
void sstrcpy(char *s,char *t)
{ while(*s++=______);}
main()
{ char str1[100],str2[]="abcdefgh";
sstrcpy(str1,str2);
printf("%s\n",str1);
}

答案: 1:*t++
評析:
要使sstrcpy()函數實現字元串復制,必須將t字元串中的每個字元逐個拷到s字元串中,所以可以使用*s=*t;s++;t++。或者可以寫成*s++=*t++,本題只有一個空,可以填入*t++。
知識點:知識點/指針/用指針作函數參數

3、以下程序給指櫻源神針p分配三個double型動態內存單元,請填空。
#include <stdlib.h>
main()
{ double *p;
p=(double*)malloc(______);
p[0]=1.5; p[1]=2.5;p[2]=3.5;
printf("%f%f%f\n",p[0],p[1],p[2]);
}

答案: 1:3*sizeof(double)
評析:
malloc(size)在內存的動態存儲區中分配一個長度為size的連續空間。此函數的值(即"返回值")是一個指針,它的值是該分配域的起始地址。如果此函數未能成功地執行,則返回值為0。
本題中要求分配三個double型動態內存單元,所以size處應當為3*sizeof(double)。
知識點:知識點/指針/各類型的指針及指針變數,通過指針引用各類型數據

4、以下程序運行後的輸出結果是______。
main()
{ int a,b,c;
a=25;
b=025;
c=0x25;
printf("%d %d %d\n",a,b,c);
}

答案: 25 21 37
評析:
本題考查的是格式字元的輸出。
變數a、b、c分別為十進制、八進制、十六進制的25,格式字元d所代表的含義是,以帶符號的十進制形式輸出整數(正數不輸出符號),所以本題a=25則輸出值為25;脊虧b=025轉換為10進制:b=2*8+5=16+5=21,則輸出的值為21;c=0x25轉換為10進制:c=2*16+5=32+5=37,則輸出的值為37,而且printf中三個%d之用的是空格,所以輸出的幾個數字之間也必須是空格。
知識點:知識點/函數/變數的存儲類別,變數的作用域和裂腔生存期

5、以下程序運行後的輸出結果是______。
main ()
{ char a[]="Language",b[]="Programe";
char *p1,*p2; int k;
p1=a; p2=b;
for(k=0;k<=7;k++)
if(*(p1+k)==*(p2+k)) printf("%c",*(p1+k));
}

答案: gae
評析:
本題考查的是字元指針變數與字元數組。
解題過程:
(1)當k=0時,*(p1+0)='L',*(p2+0)='P',L!=P,所以沒有輸出
(2)當k=1時,*(p1+1)='a',*(p2+1)='r',a!=r,所以沒有輸出
(3)當k=2時,*(p1+2)='n',*(p2+2)='o',n!=o,所以沒有輸出
(4)當k=3時,*(p1+3)='g',*(p2+3)='g',g==g,所以輸出g
(5)當k=4時,*(p1+4)='u',*(p2+4)='r',u!=r,所以沒有輸出
(6)當k=5時,*(p1+5)='a',*(p2+5)='a',a==a,所以輸出a
(7)當k=6時,*(p1+6)='g',*(p2+6)='m',g!=m,所以沒有輸出
(8)當k=7時,*(p1+7)='e',*(p2+7)='e',e==e,所以輸出e
(9)當k=8時結束循環
(10)輸出結果為:gae。
知識點:知識點/數組的定義和引用/字元串與字元數組

6、以下程序通過函數SunFun和f(x),x=0到10,這里f(x)=x^2+1,由F函數實現,請填空。
main()
{ printf("The sun=%d\n",SunFun(10));}
SunFun(int n)
{ int x,s=0;
for(x=0;x<=n;x++)s+F(______);
return s;
}
F(int x)
{ return (______);}

答案: 1:x
2:x*x+1
評析:
本題考查的是函數的調用。
解題過程:
(1)f(x)的含義為x的平方加上1
(2)所以F(int x)的返回值應該為 x*x+1
(3)SunFun(10)的作用是將0到10之間所有的整數相加求和
(4)所以F()的形式參數為x。
知識點:知識點/函數/函數的正確調用,嵌套調用,遞歸調用

7、以下程序中,函數SumColumMin的功能是:求出M行N列二維數組每列元素中的最小值,並計算它們的和值。和值通過形參傳回主函數輸出。請填空。
#define M2
#defineN4
void SumColumMin(int a[M][N],int *sum)
{ int i,j,k,s=0;
for(i=0;i<N;i++)
{ k=0;
for(j=1;j<M;j++)
if(a[k][i]>a[j][i])k=j;
s+=______ ;
}
______ =s;
}
main()
{ int x[M][N]={3,2,5,1,4,1,8,3},s;
SumColumMin(______);
printf("%d\n",s);
}

答案: 1:a[k][i]
2:*sum
3:x,&s
評析:
本題考查的是函數參數的傳送。
解題過程:
(1) 執行以i為變數的for語句
1)k=0
2)執行以j為變數的for語句
①當j=1
②比較a[0][0]和a[1][0]的大小,如果a[0][0]大於a[1][0]則k=1;如果a[0][0]大於a[1][0]則k=0
③j=2所以結束循環
3)此時a[k][i]就代表第一列中最小的值,要累計所有列中的最小值的和,應該在第一空內填寫 a[k][i],用變數s累加。
(2) SumColumMin是一個無返回值的函數,其中形式參數*sum是一個指針類型,所以第二空應該填寫 *sum,用來將該指針變數指向s
(3) 當主函數main調用SumColumMin時,需要兩個實際參數,一個代表被操作的數組,一個為指向累計和的指針變數,所以第三個空應該為 x,&s,分別代表已經被定義的數組x,和整型變數s的地址。
知識點:知識點/函數/函數的正確調用,嵌套調用,遞歸調用

8、以下程序的輸出結果是 。
main()
{
int a=0;
a+=(a=8);
printf("%d\n",a);
}

答案: 16
評析:
本題的考查點是表達式。
表達式a+=8相當於a=a+8,對表達式逐步求解過程如下:
a+=(a+8)此時,a的值賦值為8,而不再是0;
a+=8
a=a+8
a=16
故本題答案為16。
知識點:知識點/函數/形式參數與實在參數,參數值的傳遞

9、以下程序的輸出結果是______。
#define MAX(x,y)(x)>(y)?(x):(y)
main()
{
int a = 5, b = 2,c = 3, d = 3, t;
t = MAX(a + b, c + d)*10;
printf("%d\n", t);
}

答案: 7
評析:
本題的考查點是宏定義。
宏替換後,表達式t = MAX(a + b, c + d)*10即變為:t = (a+b)>(c+d) ? (a+b) : (c + d)*10;
由於(a+b)>(c+d)為真, 所以t = (a+b),即為7。
故本題答案為:7。
知識點:知識點/編譯預處理/宏定義:不帶參數的宏定義;帶參數的宏定義

10、函數mycmp(char *s,char *t)的功能是比較字元串s和t的大小,當s等於t時返回0,當s>t返回正值,當s<t時返回負值。請填空。
mycmp( char *s,char *t)
{ while (*s==*t)
{ if (*s=='\0')return 0;
++s;++t;
}
return(______);
}

答案: *s-*t
評析:
本題的考查點是比較字元串的大小。
函數的兩個形參是兩個字元指針變數,字元串的首地址是指針變數的值,*s和*t表示字元串數組s和t的第一個字元,在while循環中,是通過s和t值的不斷變化改變兩個串的第一個字元,要返回s和t的第一個不同字元的ASCII碼的差值,必須使用"*s-*t"得出。
故本題答案為:*s-*t。
知識點:知識點/函數/庫函數的正確調用

11、若給fun函數的形參s傳送字元串:" 6354abc",則函數的返回值是______。(字元串中包括空格)
long fun(char s[ ])
{ long n; int sign;
for (; isspace(*s);s++);
sign=(*s=='-')?-1:1;
if (*s=='+' || *s=='-') s++;
for (n=0;isdigit(*s);s++)
n=10*n+(*s-'0');
return sign*n;
}

答案: 6354
評析:
本題的考查點是函數的返回值。
這個函數的目的是提取出由函數的形參傳送來的字元串中的數字字元,並通過相應各個字元位置計算出它們數值形式的冪,最後返回字元串中的數字字元的數值形式,所以函數的返回值應當是"6354"。
故本題答案為:6354。
知識點:知識點/函數/函數的正確調用,嵌套調用,遞歸調用

12、以下程序段的輸出結果為______。
char *p;int i,d;
p="PDP1-0";
for(i=0;i<7;i++)
{
d=isdigit(*(p+i) );
if(d!=0)
printf("%c\n",*(p+i) );
}

答案: 1

評析:
本題的考查點是函數isdigit()。
這段程序的目的是按從左至右的順序從字元串p中找出阿拉伯數字字元,如果找到,將其列印出來。最後的輸出應當是:
1
0

知識點:知識點/函數/庫函數的正確調用

13、下列程序中字元串中各單詞之間有一個空格,則程序的輸出結果是______。
# include<string.h>
main( )
{ char str1[ ]="How do you do", *p1=str1;
strcpy(str1+strlen(str1)/2,"es she");
printf("%s\n",p1);
}

答案: How does she
評析:
本題的考查點是字元串拷貝函數strcpy()。
strlen(str1)是求str1字元串的長度,為13,然後,進行除2運算,結果為6。strcpy()函數是把字元串"es she"拷貝到str1後的第6個字元後面,也就是說,拷貝後的結果是"How does she"。
故本題答案為:How does she。
知識點:知識點/函數/庫函數的正確調用

14、下面的函數strcat(str1,str2)實現將字元串str2拼接到字元串str1後面的功能。請填空使之完整。
char *strcat(str1,str2)
char *str1,*str2;
{ char *t=str1;
while(______)str1++;
while(______);
return(t);}

答案: 1:*str1!='\0'
2:*str1++=*str2++
評析:
本題的考查點是字元串連接函數strcat()。
函數strcat(str1,str2)實現將字元串str2連接到字元串str1後面,所以首先要找到字元串str1的串尾,根據C語言的語法規定,一個串的串尾一定是一個隱含字元"\0",而在程序中,對字元串中字元的訪問是通過兩個指針變數來完成的,因此要找到字元串str1的串尾,要判斷*str1是否為"\0",要找到字元串str2的串尾,要判斷*str2是否為"\0",程序中必須可以使字元串中字元逐一順序體現,所以在題中我們應填寫"*str1"和"*str1++=*str2++ "。
知識點:知識點/函數/庫函數的正確調用

15、以下程序的輸出結果是______。
void fun()
{ static int a=0;
a +=2; printf("%d",a);
}
main()
{ int cc;
for(cc=1;cc<4;cc++) fun();
printf("\n");
}

答案: 246
評析:
循環for(cc=1;cc<4;cc++)被執行了3次。在函數fun中,由於a是static型變數,所以函數第1次調用後,a= 2;第2次調用後,a = 4;第3次調用後,a = 6。

知識點:知識點/函數/函數的正確調用,嵌套調用,遞歸調用

16、若要使指針p指向一個double類型的動態存儲單元,請填空。
p=______malloc(sizeof (double));

答案: (double*)
評析:
函數malloc返回的是void*而不是double類型指針。所以要使指針p指向一個double類型的存儲單元就必須進行強制類型轉換。
知識點:知識點/函數/函數的類型和返回值

17、下列程序段的輸出結果是______。
main()
{ char b[]="Hello,you";
b[5]=0;
printf("%s\n",b);
}

答案: Hello
評析:
字元串中,數值0或符號'\0'表示字元串的結束。本題中,b[5]被賦了0值,表明字元串b的第六個字元就是結束標志。因此,只輸出前五個字元,即Hello。
知識點:知識點/數組的定義和引用/一維數組和多維數組的定義、初始化和引用

18、下列程序的輸出結果是______。
void fun(int *n)
{ while((*n)--);
printf("%d",++(*n));
}
main()
{ int a=100;
fun(&a);
}

答案: 0
評析:
在函數fun()中,while((*n)--)是先引用*n的值,再做(*n)-- 運算,所以循環結束時*n的值為0,再做(*n)-- 運算後,*n的值為-1;執行++(*n)後,*n的值是0。
知識點:知識點/函數/函數的正確調用,嵌套調用,遞歸調用

19、以下程序中,主函數調用了LineMax函數,實現在N行M列的二維數組中,找出每一行上的最大值。請填空:
#define N 3
#define M 4
void LineMax(int x[N][M])
{ int i,j,p;
for(i=0;i<N;i++)
{ p=0;
for(j=1;j<M;j++)
if(x[i][p]<x[i][j])______;
printf("The max value in line %d is %d\n",i,______);
}
}
main()
{ int x[N][M]={1,.5,7,4,2,6,4,3,8,2, 3,1};
______;
}

答案: 1:p=j
2:a[i][p]
3:LineMax(x)
評析:
LineMax函數中運用了兩個循環,外循環來控制數組的行,內循環控制列,在尋找每行最大的元素時,先把每行的第一個元素列下標即0賦給p,然後把後面的數逐一與之比較,如果大於它,則把大的數的列下標重新賦給p。
所以(1)處應該填p=j;
內循環結束後,便獲得了本行中最大的數,即a[i][p],這也就是(2)處應該填寫的答案;
而(3)處,很顯然是要調用函數,關鍵就在於參數怎麼寫,函數中需要的是整個數組,所以應該把數組名做為實參,傳遞過去,(3)處的答案應該是LineMax(x)。注意大小寫,C語言中大小寫是不等價的。
知識點:知識點/函數/函數的正確調用,嵌套調用,遞歸調用

20、若有如下結構體說明:
struct STRU
{ int a,b;char c: double d;
struct STRU *p1,*p2;
};
請填空,以完成對t數組的定義,t數組的每個元素為該結構體類型。
______t[20]

答案: struct STRU
評析:
本題主要考查考生對C語言中結構體的掌握。
結構體類型是構造數據類型,是用戶自已定義的一種類型。
結構體類型的定義:
struct 結構體類型名
{
成員項表;
};
定義結構體變數的的形式為:
struct 結構體類型名變數1,變數2,...
其中變數包括:一般變數、指針變數、數組變數等。
知識點:知識點/數組的定義和引用/一維數組和多維數組的定義、初始化和引用

21、以下程序運行後的輸出結果是______。
void fun(int x,int y)
{x=x+y;y=x-y;x=x-y;
printf("%d,%d,",x,y);}
main()
{int x=2,y=3;
fun(x,y);
printf("%d,%d\n",x,y);
}

答案: 3,2,2,3
評析:
本題的考查點是交換變數的值。
被調函數fun()實現的功能是交換變數x和y的值並列印,由於該函數無返回值,所以在主函數中列印出的x和y的值仍然為2,3。
故本題答案為:3,2,2,3。

知識點:知識點/函數/形式參數與實在參數,參數值的傳遞

22、下面程序的運行結果是:______。
#define N 10
#define s(x) x*x
#define f(x) (x*x)
main()
{int i1,i2;
i1=1000/s(N);i2=1000/f(N);
printf("%d %d\n",i1,i2);
}

答案: 1000 10
評析:
本題的考查點是宏定義。
根據宏定義,變數i1的值為1000/10*10=1000,變數i2的值為1000/(10*10)=10。
故本題答案為:1000和10。
知識點:知識點/編譯預處理/宏定義:不帶參數的宏定義;帶參數的宏定義

23、下面程序的運行結果是:______。
void swap(int *a,int *b)
{int *t;
t=a;a=b;b=t;
}
main()
{int x=3,y=5,*p=&x,*q=&y;
swap(p,q);
printf("%d%d\n",*p,*q);
}

答案: 35
評析:
本題的考查點是函數調用。
觀察本題的程序可以看出,被調函數swap()實現的功能是交換變數的值,但由於函數不返回任何值,所以在main()函數中列印出的變數的值並沒有發生交換,即仍為3和5。
故本題答案為:3和5。
知識點:知識點/函數/函數的類型和返回值

24、fun函數的功能是:首先對a所指的N行N列的矩陣,找出各行中的最大的數,再求這N個最大值中的最小的那個數作為函數值返回。請填空。
#include <stdio.h>
#define N 100
int fun(int(*a)[N])
{int row,col,max,min;
for(row=0;row<N;row++)
{for(max=a[row][0],col=1;col<N;col++)
if(______) max=a[row][col];
if(row==0) min=max;
else if(______) min=max;
}
return min;
}

答案: 1:max<a[row][col]
2:max<min
評析:
本題的考查點是求矩陣最大值的演算法。
本題中的第一空要求判斷出每一行中的最大數,應該填寫條件max<a[row][col],第二空要求從N個最大值中找出最小的數,應填入條件max<min。
故本題答案為:max<a[row][col]和max<min。
知識點:知識點/函數/函數的正確調用,嵌套調用,遞歸調用

25、以下程序的輸出結果是______。
#define MCRA(m) 2*m
#define MCRB(n,m) 2*MCRA(n)+m
main()
{ int i=2,j=3;
printf("%d\n",MCRB(j,MCRA(i)));
}

答案: 16
評析:
本題的考查點是帶參數的宏定義。
帶參數的宏定義是這樣展開置換的:在程序中如果有帶實參的宏,則按#define 命令行中指定的字元串從左到右進行置換。如果串中包含形參,則將程序語句中相應的實參(可以是常量、變數或表達式)代替形參,如果宏定義中的字元串中的字元不是參數字元,則保留。因此對MCRB(j,MCRA(i))進行宏展開就得到了2*MCRA(j)+MCRA(i),即:2*2*j+2*i=2*2*3+2*2=16。
故本題答案為:16。

知識點:知識點/編譯預處理/宏定義:不帶參數的宏定義;帶參數的宏定義

26、以下程序的功能是調用函數fun計算:m=1-2+3-4+…+9-10,並輸出結果。請填空。
int fun ( int n)
{ int m=0,f=1,i;
for(i=1; i<=n; i++)
{ m+=i*f;
f=______;
}
return m;
}
main()
{ printf("m=%d\n",______);}

答案: 1:-f
2:fun(10)
評析:
本題的考查點是C程序設計。根據程序寫出運行結果。
考察的知識點主要是函數的調用。本題利用一個fun函數來完成題目要求的計算。程序中f起的作用是控制i*f的符號,看的出,偶數位都為負值,所以f的值為(-1)^(i+1),最後要求輸出m的值,在輸出中調用fun函數,並把實參10傳給n。
知識點:知識點/函數/函數的正確調用,嵌套調用,遞歸調用

27、以下程序運行後的輸出結果是______。
main()
{ int i,n[]={0,0,0,0,0};
for(i=1;i<=4;i++)
{ n[i]=n[i-1]*2+1;
printf("%d ",n[i]);
}
}

答案: 1 3 7 15
評析:
本題的考查點是C程序設計。根據程序寫出運行結果。
該程序考察的是數組的知識點,n是一個有5個元素,且元素值全為0的數組。程序運行過程時先進行for循環,i=1時,n[1]=n[0]*2+1,此時n[1]=1;執行i++;i=2時,再進行循環,n[2]=n[1]*2+1,此時n[2]=3,再執行i++,此時i=3,繼續循環,n[3]=n[2]*2+1,此時n[3]=7,然後i=4時,n[4]=n[3]*2+1,此時n[4]=15。循環結束。注意輸出函數中%d後有空格。
知識點:知識點/數組的定義和引用/一維數組和多維數組的定義、初始化和引用

28、請在以下程序第一行的下劃線處填寫適當內容,使程序能正常運行。
______( double,double);
main()
{ double x,y;
scanf("%1f%1f",&x,&y);
printf(%1f\n",max(x,y));
}
double max(double a,double b)
{ return(a>b ? a:b);}

答案: double max
評析:
本題的考查點是C程序設計。調試程序,把不完善的程序進行修改和補充,使之能得到正確的結果。
主函數里可以看到調用了一個max函數,函數在被調用之前需要先定義,所以要求填空的內容應該是對函數進行定義的語句。由題目內容也可以看出此函數是double型的。
知識點:知識點/函數/函數的正確調用,嵌套調用,遞歸調用

29、有以下程序
void f(int y,int *x)
{ y=y+*x; *x=*x+y;}
main()
{ int x=2,y=4;
f(y,&x);
printf("%d %d\n",x,y);
}
執行後輸出的結果______。

答案: 8 4
評析:
f函數中變數x傳遞的是變數的地址,可以實現值的變換,而變數y是傳遞的值,執行完f後,y的值是變了,但main函數中的y並未變化。也就是說由於"單向傳送"的"值傳遞"方式,形參值的改變無法傳給實參。
知識點:知識點/函數/形式參數與實在參數,參數值的傳遞

31、C語言程序的基本單位是______
答案:函數
32、設有說明語句:char a= '\72';則變數a包含______個字元、
答案:1
33、c語言是一種______(選擇面向對象或面向過程)高級程序設計語言。
答案:面向過程
34、C語言中唯一的三目運算符是______
答案:條件運算符#? :
35、C語言中結束一次循環的語句是______
答案:continue
36、C語言中結束整個循環的語句是______
答案:break
37、二維數組a中元素a[2][2]的值是______ a[4][5]={{1,2,3},{3,2,1,6},{1}};
答案:0
38、寫出下面個邏輯表達式的值,設a=3,b=4,則c=5 a || b+c && b-c=______
答案:1
39、寫出下面個邏輯表達式的值,設a=3,b=4,則! (a+b)+c –1 && b+ c/2 =______
答案:1
40、在C語言中打開文件的函數名稱是______
答案:fopen#fopen()
41、在C語言中關閉文件的函數名稱是______
答案:fclose#fclose()
42、C語言中基本的數據類型有______
答案:int float char # 整型 實型 字元型
43、設y是int型變數,請寫出判斷y為奇數的關系表達______
答案:y%2!=0 # y%2==1 # y%2
44、以下程序運行後的輸出結果是______
main()
{ int i=10,j=0;
do
{ j=j+i; i-;
while(i>2);
printf("%d\n",j);
}
答案:52
45、設有以下程序:
main()
{ int n1,n2;
scanf("%d",&n2);
while(n2!=0)
{ n1=n2%10;
n2=n2/10;
printf("%d",n1);
}
}
程序運行後,如果從鍵盤上輸入1298;則輸出結果為______
答案:8921

46、以下程序輸出的最後一個值是______
int ff(int n)
{ static int f=1;
f=f*n;
return f;
}
main()
{ int i;
for(i=1;i<=5;i++) printf("%d\n",ff(i));
}
答案:120
47、設有以下程序:
main()
{ int a, b, k=4, m=6, *p1=&k, *p2=&m;
a=pl==&m;
b=(*p1)/(*p2)+7;
printf("a=%d\n",a);
printf("b=%d\n",b);
}
執行該程序後,a的值為______b的值為______
答案:0 @ 7
48、 函數fun的功能是:累加數組元素中的值。n為數組中元素的個數。累加的和值放入x所指的存儲單元中。
fun(int b[], int n ,int *y)
{for(k=0;______;k++) r=r+b[k];
*y=______;
}
答案:k<n @ r
51、以下程序運行後的輸出結果是______
main()
{ char m;
m='B'+32; printf("%c",m);
}
答案:b

52、以下程序運行後的輸出結果是______
main()
{ int a=1,b=3,c=5;
if (c=a+b) printf("yes\n");
else printf("no\n");
}
答案:yes