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

mooc學院c語言期末考試

發布時間: 2023-05-03 13:10:07

1. 求一份大一c語言考試試卷,加答案

附件上傳失敗...

C語言期末考試題及答案(1)

1、構成C語言的基本單位是___B____。
過程?
函數?
語句?
命令?
2、設x為整型變數,不能正確表達數學關系:5<x<10的c語言表達式是__B___。
5
x>5&&x<10?
x==6||x==7||x==8||x==9?
!(x<=5)&&(x<10)?
3、在C語言中,邏輯運算符的優先順序從高到低的排列順序為__D___。
&&、||、!?
||、&&、!?
&&、!、||?
!、&&、||?
4、下面語句中,正確的是__D___。
printf("%c\n","student");?
printf("%c\n","c");?
printf("%s\n",&a);?
printf("%s\n","hello");?
5、對於for(表達式1;;表達式3)可以理解為__B___。
for(表達式1;0;表達式3)?
for(表達式1;1;表達式3)?
for(表達式1;表達式1;表達式3)?
for(表達式1;表達式3;表達式3)?
6、執行下面程序段的結果是__B___。 main() { int x=1,a=0,b=0; switch(x) { case 0:b++; case 1:a++; case 2:a++;b++; } printf("a=%d,b=%d",a,b); }
a=1,b=1?
a=2,b=1?
a=1,b=0?
a=2,b=2?
7、執行下面程序段的結果是__D___。 int x=0; do { printf(「%2d」,x--); }while(x);
列印出321?
列印出23?
不列印任何結果?
陷入死循環?
8、設x=10,y=5;z=15,執行下面一段程序後z的結果是__C___。 If(x>y) if(y>z)x=y; else z=y;
7?
6?
5?
4?
9、如果一個函數被說明為static,那麼__B___。
該函數只能被main函數調用?
該函數能被當前文件的函數調用,但不能被其他文件的函數調用?
該函數不能被當前文件的函數調用,可以被其他文件的函數調用?
任何文件的函數都可以調用該函數?
10、下面關於局部變數的描述中,錯誤的是__D___。
函數的局部變數的有效范圍只能在本函數?
函數的形式參數也是局部變數?
局部變數的名稱不能和函數同名稱?
不同的函數中不能定義相同名稱的局部變數?
11、下列初始化字元數組的語句中,錯誤的是__A___。
char str[5]="hello";?
char str[]={'h','e','l','l','o','\0'};?
char str[5]={"hi"};?
char str[100]="";?
12、引用數組元素時,數組下標可以是__D___。
整型常量?
整型變數?
整型表達式?
以上均可?
13、 已知:char str[10],*p=str; 下面的語句中正確的是__B___。
str="ABC";?
p="ABC";?
*str="ABC";?
*p="ABC";?
14、下面語句中,錯誤的是___D__。
int i;int *p;p=&i;?
int i,*p;p=&a;?
int i,*p=&a;?
int i,*p;*p=i;?
15、下面對於結構體類型的描述正確的是__A___。
結構體類型的大小為各成員變數所佔內存的總和?
結構體類型變數與簡單數據類型變數的引用規則一致。?
結構體類型的大小為其成員中所佔內存空間最大的變數的大小?
結構體類型的大小為其最後一個成員中所佔內存空間的大小?
16、C語言規定:在一個源程序中,main函數的位置____C____。
必須在最開始?
必須在系統調用的庫函數的後面?
可以任意?
必須在最後?
17、表達式18/4*sqrt(4.0)/8值的數據類型是 ___C____。
int?
float?
double?
不確定?
18、在c語言中,char型數據在內存中的存儲形式是 ___D___。
補碼?
反碼?
原碼?
ASCII碼?
19、閱讀以下程序,當輸入的數據形式為:25,13,10<CR>時,正確的輸出結果為___D___。 main() { int x,y,z; scanf("%d%d%d",&x,&y,&z); printf("x+y+z=%d\n",x+y+z); }
x+y+z=48?
x+y+z=35?
x+z=35?
不能確定?
20、有如下程序 void main() { float x=2.0,y; if(x<0.0) y=0.0; else if(x<10.0) y=1.0/x; else y=1.0; printf(「%f\n」,y); } 該程序的輸出結果是( C )。
0.000000?
0.250000?
0.500000?
1.000000?
21、判斷char型變數s是否為小寫字母的正確表達式是__C____。
'a'<=s<='z'?
(s>='a')&(s<='z')?
(s>='a')&&(s<='z')?
('a'<=s)and('z'>=s)?
22、執行以下語句後,y 的值為___A___。 int x,y,z; x=y=z=0; ++x || ++y && ++z;
0?
1?
2?
不確定值?
23、有如下程序段: int number=0; while(number++<=3) printf(「%d\n」,number++); 則正確的執行結果是___C___。
2 3 4?
0 1 2?
1 3?
2 4?
24、有如下程序 void main() { int n=9; while(n>6) { n--; printf(「%d」,n); } } 該程序段的輸出結果是__B___。
987?
876?
8765?
9876?
25、要使以下程序段輸出10個整數,請在空格中填入一個整數。 for(i=0;i<=___B___;printf("%d\n",i+=2));
15?
18?
20?
10?
26、設函數fun的定義形式為: fun(char ch,float x){…} 則以下對函數fun的調用語句中正確的是___B___。
fun(「abc」,3)?
t=fun(『D』,5)?
fun(『ab』,3)?
fun(『78』,1)?
27、函數求sum(int n)的功能是計算自然數1到n的和,即1+2+…+n。 Main() { printf("The sum=%d\n",sum (10)); } int sum(int n){ int s=0,i; for(i=0;i<=n;i++) _____B_____ } 請從備選答案中選擇一答案,補全程序。
s=s+n;return s;?
s=s+i;return s;?
return s;?
return s+=I;?
28、設函數fun的定義形式為 int fun(int a[],int n) { int s=0,i=0; for(i=0;i<n;i++)s+=a[i]; return s; } main() { int a[10]={1,2,3,4,5}; printf("sum=%d", fun(&a[2],2)); } 則程序的運行結果為___C___。
3?
5?
7?
9?
29、若有說明:int a[10];則對數組元素的正確引用是___D____。
a[10]?
a[3,5]?
a(5)?
a[10-10]?
30、以下不正確的定義語句是___B___。
double x[5]={2.0,4,0,6,0,8,0,10.0};?
int y[5]={0,1,3,5,7,9};?
char c1[]={'1','2','3','4','5'};?
char c2[]={'\x10','\xa','\x8'};?
31、下面程序的運行結果是___B____。 #include "stdio.h" main() { char str[]="SWLIA",c; int k; for(k=0;(c=str[k])!='\0';k++) { switch(c) { case 'I':++k;break; c
SWA?
SW*?
SW*A?
SW?
32、以下能正確進行字元串賦值操作的是___D___。
char s[5]={"12345"};?
char s[5]={'1','2','3','4','5',『6』};?
char *s;*s="12345";?
char *s="12345";?
33、以下程序段的運行結果是___C___。 Char a[ ]="program", *p; p=a; while (*p!='g') { printf("%c", *p-32); p++; }
PROgram?
PROGRAM?
PRO?
proGRAM?
34、若有說明:char *pc[ ]={"aaa", "bbb", "ccc", "ddd"};,則以下敘述正確的是__C____。
*pc[0]代表的是字元串"aaa"的首地址?
*pc[0]代表的是字元'a'的首地址?
pc[0]代表的是字元串"aaa"的首地址?
pc[0]代表的是字元'a'的首地址?
35、下列程序的運行結果是___B___。 #include <stdio.h> #include <string.h> void f (char *s, int n) { char a,*q1,*q2; q1=s;q2=s+n-1; while(q1<q2) { a=*q1++; *q1=*q2--; *q2=a;} } main() { char b[]="ABCDEFG"; f(b, s
GAGGAGA?
AGAAGAG?
GFEDCBA?
AGADAGA?
36、定義如下的結構體描述同學信息 struct Student { unsigned long id; char name[30]; char class[30]; }s; 假設此同學的序號為1002,姓名為黎明,班級為冶金3班,則描述正確的為___C__。
id=1002; name=黎明; class=冶金3班;?
id=1002; name=」黎明」; class=」冶金3班」;?
s.id=1002; s.name=」黎明」; s.class=」冶金3班」;?
s.id=1002; s.name=黎明; s.class=冶金3班;?
37、用來描述C程序中注釋的是__C___。
//?
?
**?
38、下列變數中合法的定義是__A___。
short _a=2-1?
long if=0xabcL?
double 1_d=1.5e2?
float a=1.5e2.7?
39、當c的值不為0時,能夠將c的值賦給變數a和b的是__C___
c=b=a?
(a=c)||(b=c)?
(a=c)&&(b=c)?
a=c=b?
40、設有以下程序段,執行後的輸出結果是___B__ int x=100,y=200; printf("%d",(x,y));
100?
200?
100,200?
編譯出錯
C語言期末考試題及答案(2)

1、若執行下面的程序時從鍵盤輸入10,則輸出是__B__ main( ) { int a; scanf(「%d」,&a); if(a++>10) printf(「%d\n」,++a); else printf("%d\n",a--); }
12?
11?
10?
9?
2、執行下面程序段的結果是__D___ int x=0; do { printf(「%2d」,x--); }while(x);
列印出321?
列印出23?
不列印任何結果?
陷入死循環?
3、執行與句:for(n=0;n++<4; ); 後,變數n的值是__C__。
3?
4?
5?
不定?
4、以下關於循環的描述中,錯誤的是__D___。
可以用for語句實現的循環一定可以用while語句實現?
可以用while語句實現的循環一定可以用for語句實現?
可以用do…while語句實現的循環一定可以用while語句實現?
do…while語句與while語句的區別僅僅是關鍵字while的位置不同?
5、下面的描述錯誤的是__C__。
函數可以有多個形式參數?
函數可以沒有返回值?
函數內可以嵌套定義函數?
函數可以被其他函數調用?
6、函數返回值的類型是由__A__決定的。
定義函數時指定的返回類型?
函數中return語句的表達式類型?
主調函數的實際參數類型?
主調函數的返回值類型?
7、定義了一維int型數組a[10]後,下面錯誤的引用是__B__。
a[0]=1;?
a[10]=2;?
a[0]=5*2;?
a[1]=a[2]*a[0];?
8、定義了int型二維數組a[6][7]後,數組元素a[3][4]前的數組元素個數為__B__。
24?
25?
18?
17?
9、下面語句中,錯誤的是__D__。
int i; int *p; p=&i;?
int i,*p; p=&a;?
int i,*p=&a;?
int i,*p; *p=i;?
10、 已知int型二維數組a[3][4],數組元素a[1][2]的地址不能表達為__C__。
&a[1][2]?
a[1]+2?
*a[1]+2?
*(a+1)+2?
11、C語言中,5種基本數據類型的存儲空間長度的排列順序為___A___。
char
char=int
char
char=int=long int<=float
12、假設所有變數均為整型,則表達式(a=2,b=5,b++,a+b)的值是 ___B___。
7?
8?
6?
2?
13、若有說明語句:char c='\72';則變數c ___A___。
包含1個字元?
包含2個字元?
包含3個字元?
說明不合法,c的值不確定?
14、若x,y均定義為整型,z定義為double型,以下不合法的scanf函數調用語句是___C___。
scanf("%d%lx,%le",&x,&y,&z);?
scanf("%2d * %d%lf",&x,&y,&z);?
scanf("%x%*d%o",&x,&y,&z);?
scanf("%x%o%6.2f",&x,&y,&z);?
15、若輸入字元串:abcde<回車>,則以下while循環體將執行___A___次。 while((ch=getchar())=='e') printf("*");
1次?
死循環?
0次?
5次?
16、執行下面的程序段後,k的值是___C___。 k=1;n=263; do{k*=n%10;n/=10;}while(n);
3?
63?
36?
2?
17、下面程序段中循環的執行次數是___B___。 a=10;b=0; do{b+=2;a-=2+b;}while(a>=0);
10?
3?
5?
4?
18、下面程序段的運行結果是__D____。 x=2; do{printf("*");x--;}while(!x==0);
*?
***?
沒有輸出?
**?
19、下面程序段的運行結果是___B___。 i=1;s=1;a=0; do{a=a+s*i;s=-s;i++;}while(i<=10); printf("%d",a);
2?
-2?
3?
0?
20、有如下程序 void main() { int a=2,b=-1,c=2; if(a) if(b<0) c=0; else c++; printf("%d\n",c); } 該程序的輸出結果是___A___。
0?
1?
2?
3?
21、程序中對fun函數有如下說明 void fun(); 下面說明是錯誤的是___B___。
fun函數無返回值?
fun函數的返回值可以是任意的數據類型?
fun函數沒有形式參數?
void 可以省略?
22、函數求sum(int n)的功能是計算自然數1到n的和,即1+2+…+n。 main() { printf("The sum=%d\n",sum (10)); } int sum(int n){ int s=0,i; for(i=0;i<=n;i++) _____B_____ } 請從備選答案中選擇一答案,補全程序。
s=s+n; return s;?
s=s+i; return s;?
return s;?
return s+=i;?
23、 有以下程序 int f1(int x,int y){return x>y?x:y;} int f2(int x,int y){return x>y?y:x;} main() { int a=4,b=3,c=5,d=2,e,f,g; e=f2(f1(a,b),f1(c,d)); f=f1(f2(a,b),f2(c,d)); g=a+b+c+d-e-f; printf()__A___
4,3,7?
3,4,7?
5,2,7?
2,5,7?
24、若有說明:int a[][3]={1,2,3,4,5,6,7};則數組a第一維的大小是___B___。
2?
3?
4?
無確定值?
25、判斷字元串s1是否大於字元串s2,應當使用___D____。
if(s1>s2)?
if(strcmp(s1,s2))?
if(strcmp(s2,s1)>0)?
if(strcmp(s1,s2)>0)?
26、當運行以下程序時,從鍵盤輸入:AhaMA Aha<CR> <CR>表示回車,則下面程序的運行結果是___A____。 #include "stdio.h" main() { char s[80],c='a'; int i=0; scanf("%s",s); while(s[i]!='\0') { if(s[i]==c)
ahAMa?
AhAMa?
AhAMa ahA?
ahAMa ahA?
27、以下程序執行後a的值為___C____。main( ) { int a,m=2, k=1, *p=&k; a=p!=&m; printf("%d\n",a); }
-1?
0?
1?
2?
28、以下能正確讀入字元串的程序段是____C___。
char *p;scanf("%s", p);?
char str[10];scanf("%s", &str);?
char str[10], *p;p=str; scanf("%s", p);?
char str[10], *p=str;scanf("%s", p[1]);?
29、若有定義:int i, x[3][4];,則不能將x[1][1]的值賦給變數i的語句是___B___。
i=x[1][1] ?
i=*(*(x+1))?
i=*(*(x+1)+1)?
i=*(x[1]+1)?
30、下面程序的運行結果是____A___。 # include <stdio.h> # include <string.h> fun(char *s) { char t,*a,*z; a=s; z=s+strlen(s)-1; while(a++<z--) { t=*a++; *a=*z--; *z=t;} } main() { char *p; p="a
abdddfg?
afcdebg?
gbedcfa?
gfedcba?
31、用來描述C程序中注釋的是__C___
/ /?
?
* *?
32、對於"xy\n\102\\\'"字元串的長度是__B___
7?
6?
12?
13?
33、已知:int x=10;執行語句x-=x+x;後x的值是__A___
-10?
10?
-20?
20?
34、下列描述中,正確的是__A___
所有的輸入/輸出都是通過調用庫函數處理的?
所有的輸入/輸出都是通過輸入/輸出語句實現的?
getchar和putchar可以省略#include?
在輸入/輸出格式中的*表示跳過數據的含義?
35、設x=10,y=5;z=15,執行下面一段程序後z的結果是__C___ if(x>y) if(y>z)x=y; else z=y;
7?
6?
5?
4?
36、執行下面程序段的結果是__D___ int x=0; do { printf(「%2d」,x--); }while(x);
列印出321?
列印出23?
不列印任何結果?
陷入死循環?
37、以下關於switch語句和break語句的描述正確的是__D___
在switch語句中必須使用break語句?
break語句只能用於switch語句體中?
break語句只能用於循環語句中?
在switch語句中可以使用break語句?
38、與語句while(!x)等價的語句是__A___
while(x==0)?
while(x!=0)?
while(x!=1)?
while(~x)?
39、下面的描述錯誤的是__C___
?函數可以有多個形式參數?
?函數可以沒有返回值?
?函數內可以嵌套定義函數?
?函數可以被其他函數調用?
40、 下面關於局部變數的描述中,錯誤的是__D___
?函數的局部變數的有效范圍只能在本函數?
?函數的形式參數也是局部變數?
?局部變數的名稱不能和函數同名稱?
?不同的函數中不能定義相同名稱的局部變

2. 大一期末考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]);

}

}

運行結果:

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

3. 中國大學mooc學C語言期末成績可以加分嗎

通過MOOC網站,你可以在那門課規定的時間裡面選修課程,按時完成測驗以及考試。如果滿足課程設定的發證要求,就會有證書啦。其實這是一種自主學習而已,這個證書就是對你參與課程並取得一定能力的肯定,一般也就是讓自己能有點成就感吧

4. c語言期末考試 求大神幫幫忙感激不盡

還需要寫嗎,挺簡單的

5. 求一份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",_______________);
}

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

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

7. 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]

8. 大一期末C語言考試的重點是什麼

我上點選擇題
1、以下不正確的描述為【 】。
(A) 調用函數時,實參可以是表達式
(B) 調用函數時,實參與形參可以共用內存單元
(C) 調用函數時,將為形參分配內存單元
(D) 調用函數時,實參與形參的類型必須一致
2、以下正確的敘述是【 】。
(A) C語言的主函數是無參函數
(B) C語言的主函數最多允許有1個形式參數
(C) C語言的主函數最多允許2個形式參數
(D) C語言的主函數可以有2個以上形式參數
3、C語言中函數返回值的類型是由【 】決定的。
(A) return語句中的表達式類型
(B) 調用該函數的主調函數類型
(C) 調用函數時臨時
(D) 定義函數時所指定的函數類型
4、若x為int型變數,則以下函數fun【 】。
fun(int x)
{
printf("%d",x);
}
(A) 返回值為void類型
(B) 無法確定返回值
(C) 返回值為int類型
(D) 沒有返回值
5、以下不正確的描述為【 】。
(A) 不同函數中可以使用相同名字的變數
(B) 形式參數是局部變數
(C) 一個函數內部定義的變數只能在本函數范圍內逗旅有效
(D) 在一個函數內部的復合語句中定義的變數可以在本函數范圍內有效
6、C語言規定,調用一個函數時,實參變數和形參變數之間的數據傳遞是【 】。
(A) 地址傳遞
(B) 值傳遞
(C) 由實參傳給形參,並由形參傳回來給實參 十
(D) 由用戶指定傳遞方式
7、若用數組名作為函數調用時的實參,則實際上傳遞給形參的是【 】。
(A) 數組首地址
(B) 數組的第一個元素值
(C) 數組中全部元素的值
(D) 數組元素的個數
8、凡是函數中未指定存儲類別的變數櫻指升,其隱含的存儲類別為【 】。//應該為局部變數
(A) 自動(auto)
(B) 靜態(static)
(C) 外部(extem)
(D) 寄存器(register)
9、在C語言中,對於存儲類型為【 】的變數,只有在使用它們時才佔用內存單元。
(A) static和auto
(B) register和extern
(C) register和static
(D) auto和register
10、在一個源文件中定義的全局變數的作用域為【 】。
(A)本文件的全部范圍
(B)本程序的全部范圍
(C)本函數的全部范圍
(D)從定義變數的位置開始至文件結束
11、在一個C源程序文件中,若要定義一個只允許本源文件中所有函數使用的全局變數,則該變數需要使用的存儲類別為【 】。
(A)extern
(B)register
(C)auto
(D)static
12、以下不正確的描述為【 】。
(A)在函數之外定義的變數稱為外部變數,外部變數是全局變數
(B)在一個函數中既可以使用本函數中的局部變數,又可以使用全局變數
(C)外部變數定義和外部變數說明的含義不同
(D)若在同一個源文件中,外部變數與局部變數同名,則在局部變數的作用范圍內,外部變數不起作用
13、以下正確的函數定義形式是【 】。
(A)double fun(int x,int y)
(B)double fun(int x; int y)
(C)double fun(int x,int y);
(D)double fun(int x,y);
14、以下說法正確的是【 】。
(A) 實參和與其對應的形參各佔用獨立的存儲單元
(B) 實參和與其對應的形參共佔用一個存儲單元
(C) 只有當實參和與其對應的形參同名時才共用存儲單元
(D) 形參是虛擬的脊老,不佔用存儲單元
15、若調用一個函數,且此函數中沒有return語句,則正確的說法是【 】。
(A) 沒有返回值
(B) 返回若干個系統默認值
(C) 能返回一個用戶所希望的函數值
(D) 返回一個不確定的值
16、以下敘述正確的是【 】。
(A )定義函數時,形參的類型說明可以放在函數體內
(B) return後邊的值不能為表達式
(C) 如果函數的類型與返回值類型不一致,以函數類型為准
(D) 如果形參與實參的類型不一致,以實參類型為准
17、以下程序有語法性錯誤,有關錯誤的原因的正確說法是【 】。
main( )
{int G=5,K;
void Prt_char();
……
K=Prt_char(G);
……
}
(A) 語句void prt_char();有錯,它是函數調用語句,不能用void說明
(B) 變數名不能使用大寫字元
(C) 函數說明和函數調用語句之間有矛盾
(D) 函數名不能使用下劃線
18、以下正確的描述是【 】。
(A) 函數的定義可以嵌套,但函數的調用不可以嵌套
(B) 函數的定義不可以嵌套,但函數的調用可以嵌套
(C) 函數的定義和函數的調用均不可以嵌套
(D) 函數的定義和函數的調用均可以嵌套
19、以下說法正確的是【 】。
如果在一個函數中的復合語句中定義了一個變數,則該變數
(A) 只在該復合語句中有效
(B) 在該函數中有效
(C) 在本程序范圍內均有效
(D) 為非法變數說明
20、以下程序的正確運行結果是【 】。
f(int a)
{int b=0; static int c=3;
b++; c++;
return(a+b+c);
}
main()
{int a=2,i;
for(i=0;i<3;i++) printf("%4d",f(a));
}

(A) 7 7 7 (B) 7 10 13
(C) 7 9 11 (D) 7 8 9

21、請選擇正確的運行結果填入【 】中。
#include <stdio.h>

fun(int x,int y)
{static int m=0,i=2;
i+=m+1;
m=i+x+y;
return(m);
}
main()
{
int j=4,m=1,k;
k=fun(j,m);
printf("%d,",k);
k=fun(j,m);
printf("%d\n",k);
}

(A) 08, 20 (B) 8, 8 (C) 8, 17 (D) 8, 16
22、請選擇正確的運行結果填入【 】中。
#include <stdio.h>
int x,y;
num( )
{
int a=15,b=10;
int x,y;
x=a-b;
y=a+b;
return;
}
main( )
{int a=7,b=5;
x=a+b;
y=a-b;
num( );
printf("%d,%d\n",x,y);
}
(A) 12,2 (B) 5,25 (C) 2,12 (D)不確定
一、填空題
1、一個C語言程序的語句至少應包含一個______。
2、C語言源程序文件的擴展名是______,經過編譯、連接後,生成文件的擴展名是______。
3、結構化程序由順序結構、______和______三種基本結構組成。
4、C語言的執行是從______開始執行的。
5、C源程序的語句分隔符是______。
6、在C語言中,用關鍵字______定義單精度實型變數。
7、表達式S=12應當讀做「______」。
8、C語言源程序的基本單位是______。
9、設int x=9,y=8;表達式x-=y+1的結果是______。
10、若a為整型變數,a=12,則表達式:a * =2+3的值______。
11、調用C語言對輸入輸出處理的庫函數時,在# include命令行中應包含的頭文件是______。
12、表達式9%5的結果是______。
13、若a為整型變數,a=12,則表達式:a+=4的值______。
14、 在C語言中,要求運算數必須是整型的運算符是______。
15、在C語言中,用______表示邏輯「真」值。
16、7、表達式10/3的結果是______。
17、通常一個位元組包含______個二進制位。
18、 假設所有變數均為整型,a=2,b=5,b++則表達式a+b的值是______。
19、在C語言中,最基本的數據類型只有四種,它們分別是:______、______、______和double。
20、一個C程序有且僅有一個______函數。
21、若a為整型變數,a=12,則表達式:a-=2的值______。
22、在C語言中,有三種邏輯運算符,它們分別是:______、______、______。
23、在C語言中,字元輸入函數和字元輸出函數分別是:______和______。
24、C程序開發的四個步驟是______、______、______和執行。
25、C程序的結構分別是:順序結構、______、______。
26、if語句中的表達式可以是關系表達式、______、______。
27、______是C語言中惟一一個三元運算符。
28、C語言提供的預處理命令主要包括如下三種:宏定義、______、______。

9. 大學c語言有沒有期末考試

大學c語言有期末考試。根據查詢相關信息顯示:C語言是一種計算機程序設計語言,具有高級語言的特點,匯編語言的特點,可以作為工作系統設計語言,編寫系統應用程序,也可以作為應用程序設計語言,編寫不依賴計算機硬體的應用程序,故大學c語言有期末考試。

10. c語言期末考多少分過

60分。c語言期末考的話要考60分才能通過,因為60分是及格分。