當前位置:首頁 » 編程語言 » 長春理工大學c語言程序設計題庫
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

長春理工大學c語言程序設計題庫

發布時間: 2022-05-19 05:40:40

1. 求:c語言程序設計試卷及答案一份

一、選擇題(1~40題每題1分,41~50題每題2分,共60分)下列各題A、B、C、D四個選項中,只有一個選項是正確的。請將正確選項塗寫在答題卡相應位置上,答在試卷上不得分。

1.微型計算機的運算器、控制器及內存儲器組合在一起,稱之為()(本題分值:1分)
【正確答案】D
A.ALU
B.CPU
C.MPU
D.主機
2.下列存儲器中,存取速度最快的是()(本題分值:1分)
【正確答案】D
A.軟盤
B.硬碟
C.光碟
D.內存
3.系統軟體中最重要的是()(本題分值:1分)
【正確答案】A
A.操作系統
B.語言處理程序
C.工具軟體
D.資料庫管理系統
4、CPU處理的數據基本單位為字,一個字的字長()(本題分值:1分)
【正確答案】D
A.為8個二進制位
B.為16個二進制位
C.為32個二進制位
D.與CPU晶元的型號有關
5.列印當前屏幕內容應使用的控制鍵是()(本題分值:1分)
【正確答案】D
A.Scroll-Lock
B.Num-Lock
C.PgDn
D.PrtSc(Print Screen)
6.能將高級語言源程序轉換成目標程序的是()(本題分值:1分)
【正確答案】C
A.調試程序
B.解釋程序
C.編譯程序
D.編輯程序
7.二進制數1110111.11轉換成十進制數是()(本題分值:1分)
【正確答案】B
A.119.375
B.119.75
C.119.125
D.119.3
8.十六進制數FF.1轉換成十進制數是()(本題分值:1分)
【正確答案】A
A.255.0625
B.255.125
C.127.0625
D.127.125
9.中國國家計算機網路設施是()(本題分值:1分)
【正確答案】A
A.NCFC
B.CERNET
C.ISDN
D.Internet
10.控制鍵^C的功能為()(本題分值:1分)
【正確答案】A
A.終止當前操作
B.系統復位
C.暫停標准輸出設備的輸出
D.結束命令行
11.COMMAND.COM為命令處理程序,DOS系統啟動後,它()(本題分值:1分)
【正確答案】B
A.駐留在外存,需要時裝入內存
B.常駐內存,包含所有內部命令
C.不能處理外部命令
D.不能處理後綴為.EXE的可執行文件
12.為了將所有擴展名為.PAS的文件改成擴展名為.P,應使用命令()(本題分值:1分)
【正確答案】C
A.REN *.PAS .?AS
B.REN PAS P
C.REN *.PAS *.P
D.REN *.PAS *.P??
13.設當前盤中文件XY.C的路徑為\A\B\XU,當前目錄為\A\B。為了查看文件XY.C的內容,應使用命令()(本題分值:1分)
【正確答案】A
A.TYPE XU\XY.C
B.TYPE \XU\XY.C
C.DIR XU\XY.C
D.DIR \A\B\XU\XY.C
14.要將提示符改成當前盤當前目錄後加一個大於號「>」,應使用命令()(本題分值:1分)
【正確答案】B
A.PROMPT
B.PROMPT $ p $ g
C.PROMPT $ $
D.PROMPT C\>
15.在多媒體計算機系統中,CD-ROM屬於()(本題分值:1分)
【正確答案】D
A.感覺媒體
B.表示媒體
C.表現媒體
D.存儲媒體
16.設當前盤為C盤,將A盤根目錄下的文件目錄信息存放到當前盤當前目錄下的文件AB中,應使用命令()(本題分值:1分)
【正確答案】C
A.TYPE A:\>AB
B.DIR >AB
C.DIR A:\>AB
D.DIR \>AB
17.在位運算中,操作數每右移一位,其結果相當於()(本題分值:1分)
【正確答案】B
A.操作數乘以2
B.操作數除以2
C.操作數除以16
D.操作數乘以16
18.在當前盤當前目錄下有一個文件A.BAT,其內容為
CD \
MD \XYZ\AB\B\C
CD XYZ\AB\B
在正確執行上述文件後,接著執行下列命令時,不會發生錯誤的是()(本題分值:1分)
【正確答案】C
A.MD C
B.RD \XYZ
C.RD C
D.RD B
19.下列命令組中兩個DOS命令互相等價的是()(本題分值:1分)
【正確答案】D
A.TYPE AB.TXT與DIR AB.TXT
B.DISKCOMP A:B:與COMP A:.* B:*.
C.TYPE AB.TXT>>XY.TXT與COPY AB.TXT XY.TXT
D.TYPE AB.TXT>XY.TXT與COPY AB.TXT XY.TXT
20.設A盤為啟動盤,其目錄結構為
根目錄
DOS子目錄 COMAND.COM
USER子目錄 AUTOEXEC.BAT
其文件AUTOEXEC.BAT的內容如下:
MD \XYZ
CD \DOS\USER
則由A盤啟動成功後,A盤的當前目錄是()(本題分值:2分)
【正確答案】C
A.\DOS\USER
B.\XYZ
C.根目錄
D.\DOS
21.C語言提供的合法關鍵字是()(本題分值:1分)
【正確答案】C
A.switch
B.cher
C.case
D.default
22.在C語言中,合法的字元常量是()(本題分值:1分)
【正確答案】B
A.′\084′
B.′\x43′
C.′ab′
D.′\0′
23.若已定義x和y為double類型,則表達式: x=1,y=x+3/2的值是()(本題分值:1分)
【正確答案】C
A.1
B.2
C.2.0
D.2.5
24.合法的數組定義是()(本題分值:1分)
【正確答案】D
A.int a[]=〃string〃;
B.int a[5]={0,1,2,3,4,5};
C.char a=〃string〃;
D.char a[]={0,1,2,3,4,5};
25.設a為整型變數,不能正確表達數學關系10<a<15的C語言表達式是()(本題分值:1分)
【正確答案】A
A.10<a<15
B.a==11||a==12||a==13||a==14
C.a>10&&a<15
D.!(a<=10)&&!(a>=15)

26.若t為double類型,表達式t=1,t+5,t++的值是()(本題分值:1分)
【正確答案】C
A.1
B.6.0
C.2.0
D.1.0
27.若有定義和語句:
char s[10];s=〃abcd〃;printf(〃%s\n〃,s);
則結果是(以下μ代表空格)()(本題分值:1分)
【正確答案】D
A.輸出abcd
B.輸出a
C.輸出abcdμμμμμ
D.編譯不通過
28.若有定義和語句:
int **pp,*p,a=10,b=20;
pp=&p;p=&a;p=&b;printf(〃%d,%d\n〃,*p,**pp);
則輸出結果是()(本題分值:1分)
【正確答案】D
A.10,10
B.10,20
C.20,10
D.20,20
29.若有以下定義和語句:
int u=010,v=0x10,w=10;
printf(〃%d,%d,%d\n〃,u,v,w);
則輸出結果是()(本題分值:1分)
【正確答案】A
A.8,16,10
B.10,10,10
C.8,8,10
D.8,10,10
30.若有以下定義和語句:
char c1=′b′,c2=′e′;
printf(〃%d,%c\n〃,c2-c1,c2-′a′+′A′);
則輸出結果是()(本題分值:1分)
【正確答案】B
A.2,M
B.3,E
C.2,E
D.輸出項與對應的格式控制不一致,輸出結果不確定
31.若有定義:int a[3][4];,()不能表示數組元素a[1][1]。(本題分值:1分)
【正確答案】D
A.*(a[1]+1)
B.*(&a[1][1])
C.(*(a+1))[1]
D.*(a+5)

32.若i、j已定義為int型,則以下程序段中內循環體的總的執行次數是()(本題分值:1分)
for(i=5;i>0;i--)
for(j=0;j<4;j++){…}
【正確答案】A
A.20
B.24
C.25
D.30
33.若有以下定義和語句:
char *s1=〃12345〃,*s2=〃1234〃;
printf(〃%d\n〃,strlen(strcpy(s1,s2)));
則輸出結果是()(本題分值:1分)
【正確答案】A
A.4
B.5
C.9
D.10
34.若有以下定義和語句:
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
則不能表示a數組元素的表達式是()(本題分值:1分)
【正確答案】B
A.*p
B.a[10]
C.*a
D.a[p-a]
35.下面程序的輸出結果是()(本題分值:2分)
【正確答案】C
A.k=3 a=2 b=3
B.k=3 a=3 b=2
C.k=2 a=3 b=2
D.k=2 a=2 b=3
36.下面程序的輸出結果是()(本題分值:1分)
main()
{unsigned a=32768;
printf(〃a=%d\n〃,a);}
【正確答案】C
A.a=32768
B.a=32767
C.a=-32768
D.a=-1
37.執行下面語句後的輸出結果為()(本題分值:1分)
int i=-1;
if(i<=0) printf(〃****\n〃);
else printf(〃%%%%\n〃)
【正確答案】D
A.****
B.%%%%
C.%%%%c
D.有語法錯誤,不能正確執行
38.對於條件表達式(M)?(a++):(a--),其中的表達式M等價於()(本題分值:1分)
【正確答案】C
A.M==0
B.M==1
C.M!=0
D.M!=1
39.下述程序段的輸出結果是()(本題分值:1分)
int x=10;
int7nbspy=x++;
printf(〃%d,%d〃,(x++,y),y++);
【正確答案】A
A.11,10
B.11,11
C.10,10
D.10,11
40.若有以下的定義:
int a[]={1,2,3,4,5,6,7,8,9,10},*p=a
則值為3的表達式是()(本題分值:1分)
【正確答案】A
A.p+=2,*(p++)
B.p+=2,*++p
C.p+=3,*p++
D.p+=2,++*p
41.假定所有變數均已正確說明,下列是程序段運行後x的值是()(本題分值:2分)
a=b=c=0;x=35;
if(!a) x--;
else if(b);
if(c) x=3;
else x=4;
【正確答案】B
A.34
B.4
C.35
D.3
42.在以下一組運算中,優先順序最高的運算符是()(本題分值:2分)
【正確答案】C
A.<=
B.=
C.%
D.&&
43.若有以下定義和語句:
int w[2][3],(*pw)[3];pw=w;
則對w數組元素的非法引用是()(本題分值:2分)
【正確答案】A
A.*(w[0]+2)
B.*(pw+1)[2]
C.pw[0][0]
D.*(pw[1]+2)
44.若有以下程序片段: char str[ ]=〃ab\n\012\\\\〃; printf(〃%d〃,strlen(str));
上面程序片段的輸出結果是()(本題分值:2分)
【正確答案】C
A.3
B.4
C.6
D.12
45.函數調用:strcat(strcpy(str1,str2),str3)的功能是()(本題分值:2分)
【正確答案】C
A.將串str1復制到串str2中後再連接到串str3之後
B.將串str1連接到串str2之後再復制到串str3之後
C.將串str2復制到串str1中後再將串str3連接到串str1之後
D.將串str2連接到串str1之後再將串str1復制到串str3中
46.以下對C語言函數的有關描述中,正確的是()(本題分值:2分)
【正確答案】A
A.在C中,調用函數時,只能把實參的值傳送給形參,形參的值不能傳送給實參
B.C函數既可以嵌套定義又可以遞歸調用
C.函數必須有返回值,否則不能使用函數
D.C程序中有調用關系的所有函數必須放在同一個源程序文件中
47.以下敘述中不正確的是()(本題分值:2分)
【正確答案】C
A.在C中,函數中的自動變數可以賦初值,每調用一次,賦一次初值
B.在C中,在調用函數時,實參和對應形參在類型上只需賦值兼容
C.在C中,外部變數的隱含類別是自動存儲類別
D.在C中,函數形參可以說明為register變數

48.設有以下定義或語句,則輸出的結果是(用small模式編譯,指針變數佔2個位元組)()(本題分值:2分)
struct date
{long *cat;
struct date *next;
double dog;
}too;
printf(〃%d〃,sizeof(too));
【正確答案】D
A.20
B.16
C.14
D.12
49.設有定義:struct sk
{int a;float b;}data,*p;
若有p=&data;,則對data中的a域的正確引用是()(本題分值:2分)
【正確答案】B
A.(*p).data.a
B.(*p).a
C.p->data.a
D.p.data.a
50.以下對枚舉類型名的定義中正確的是()(本題分值:2分)
【正確答案】B
A.enum a={one,two,three};
B.enum a{one=9,two=-1,three};
C.enum a={〃one〃,〃two〃,〃three〃};
D.enum a{〃one〃,〃two〃,〃three〃};
二、填空題(每空2分,共40分)請將答案分別寫在答題卡中序號【1】至【20】的橫線上,答在試卷上不得分。
1、與十進制數101等值的二進制數為。(本題分值:2分)
【正確答案】
【1】1100101
2、DOS命令分為內部命令與外部命令,XCOPY命令屬於命令。(本題分值:2分)
【正確答案】
【2】外部
3、設當前盤為A盤,當前系統提示符為「>」,在不改變當前盤的情況下,顯示C盤的當前目錄路徑,應使用命令。 (本題分值:2分)
【正確答案】
【3】CD C:
4、自動批處理文件名必須是。(本題分值:2分)
【正確答案】
【4】AUTOEXEC.BAT

5、設在當前盤當前目錄下有兩個文件W.TXT與P.TXT,現要將文件P.TXT連接到文件W.TXT的後面,若使用COPY命令,則完整的命令為。(本題分值:2分)
【正確答案】
【5】COPY W.TXT+P.TXT W.TXT
6、表示條件10<x<100或x<0的C語言表達式是。(本題分值:2分)
【正確答案】
【6】(x>10&& x<100)||x<0
或(10<x&&x<100)||x<0
或x<0 ||(x>10&&x<100)
或0>x ||(10<x&&x<100)
7、以下程序中,主函數調用了LineMax函數,實現在N行M列的二維數組中,找出每一行上的最籩怠G胩羈鍘?br> #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 is %d\n〃,);
}
}
main()
{ int x[N][M]={1,5,7,4,2,6,4,3,8,2,3,1};
;
}
(本題分值:6分)
【正確答案】
【7】p=j
【8】x[i][p]
【9】LineMax(x)
8、以下程序的功能是:從鍵盤上輸入若干個學生的成績,統計計算出平均成績,並輸出低於平均分的學生成績,用輸入負數結束輸入。請填空。
main()
{float x[1000],sum=0.0,ave,a;
int n=0,i;
printf(〃Enter mark:\n〃);scanf(〃%f〃,&a);
while(a>= 0.0 && n<1000)
{sum+=;x[n]=;
n++; scanf(〃%f〃,&a);
}
ave= ;
printf(〃Output:\n〃);
printf(〃ave=%f\n〃,ave);
for(i=0;i<n;i++)
if() printf(〃%f\n〃,x[i]);
}
(本題分值:8分)
【正確答案】
【10】a
【11】a
【12】sum/n或sum/(float)n或sum/(double)n
【13】x[i]<ave或!(x[i]>=ave)或ave>x[i]
9、執行以下程序,輸入-10的結果是,輸入5的結果是,輸入10的結果是,輸入30的結果是。
(本題分值:8分)
【正確答案】
【14】0
【15】5
【16】10
【17】5
10、以下程序的功能是。
main()
{int num[10]={10,1,-20,-203,-21,2,-2,-2,11,-21};
int sum=0,i;
for(i=0;i<10;i++)
if(num[i]>0)
sum=num[i]+sum;
printf(〃sum=%6d〃,sum);
}
(本題分值:2分)
【正確答案】
【18】計算數組num中大於零的數據之和
11、以下程序可以把從鍵盤上輸入十進制數(long型)以二到十六進制數的形式輸出,請填空。
#include
main()
{char
b[16]={′0′,′1′,′2′,′3′,′4′,′5′,′6′,′7′,′8′,′9′,′A′,′B′,′C′,′D′,′E′,′F′};
int c[64],d,i=0,base;
long n;
printf(〃Enter a number:\n〃); scanf(〃%1d〃,&n);
printf(〃Enter new base:\n〃); scanf(〃%1d〃,&base);
do
{c[i]=;
i++;
n=n/base;
}while(n!=0);
printf(〃The result is:\n〃);
for(--i;i>=0;--i)
{?d=c[i];
printf(〃%c〃,b);
}
}
(本題分值:4分)
【正確答案】
【19】n%base
【20】 [d]

2. 長春理工大學10級C語言考試題庫

每年考的都不一樣,最好是去問下老師大致范圍,問不到的話就得都看了

3. c語言程序設計習題!!10道

1. 在C程序中,只能用於整型變數的運算符是___ 求余(%)___。
2. 在C語言中,char類型變數占 2 個位元組。
3. 若a已定義為double類型,請寫出從鍵盤給a輸入數據的語句 scanf("%lf",&a); 。
4. 為使以下程序能正確運行,請填空。
#include<stdio.h>
#include<math.h>
main()
{ double x, y;
scanf("%lf%lf",&x,&y);
printf("y=%f\n", pow(x,y));}
5. 以下程序執行後的輸出結果是 -2 。
main()
{ int m=3,n=4,x;
x=-m++;
x=x+8/++n;
printf("%d\n",x); }
6. 以下程序的輸出結果是 10 20 0 。
main()
{ int a,b,c;
a=10; b=20; c=(a%b<1)||(a/b>1);
printf("%d %d %d\n",a,b,c); }
7. 以下程序中調用fun函數,對主函數x和y中的值進行對調。請填空。
void fun( double *a, double *b)
{ double x;
x=*a; *a=*b ; *b=x ; }
main()
{ double x,y;
printf(「Enter x, y : 「); scanf(「%lf%lf」,&x,&y);
fun( x,y);
printf(「x=%f y=%f\n」,x,y );}
8. C語言規定:字元串以 '\0' 作為結束標志。
9. 以下程序的輸出結果是 3 。
long fun( int n)
{ long t;
if ( n==1 || n==2 ) t=1;
else t=fun(n-1) + fun(n-2);
return ( t );
}
main( )
{ printf(「%d\n」,fun(4) );}
10. 設有定義:
struct date
{ int year, month, day ; } d1;
請寫出利用輸入語句,為變數d1中的year成員從鍵盤輸入數值的語句 scanf ("%d",&(d1.year)); 。

4. 《C語言程序設計》第14章在線測試

一.
1.B 2.D 3.A 4.B 5.D
二.
1.BC 2.ABC 3.AB 4.CD 5.AB
三.
1.錯誤 2.正確 3.錯誤 4.正確 5.錯誤

5. 《C語言程序設計》第17章在線測試

1、D 因為#define C(x) ((x)*(x))宏中需要使用完備的括弧才不會有引用錯誤
2、D 認真區分char a[]和char *p的區別,a是數組的首地址,也是指針,但是p僅僅是指向一個字元串的首地址的指針,雖然也是指針,但是你並不知道p指針具體在什麼代碼段的什麼位置,從而p+=2的位置你也無法確定。
3、C extern本來就是外部的意思嘛
4、A 僅僅在主函數中有效,這是對的。
5、B 局部變數優先,給你舉個例子:
int a=1;
int main()
{
int a=2;
cout<<a;
return 0;
}
就是類似這樣的例子,你在main函數外定義了一個全局變數a,在main內部又定義了一個變數名也是a的局部變數,那麼你在main中用cout輸出的時候就是輸出了局部變數a的值,要輸出全局變數a的值時則要使用::a,實際上是局部變數將全局變數屏蔽了,可以看做局部變數的優先於全局變數
/**********************************************************************************/
第二題1、ABC
2、ABD
3、CD
4、AB
5 、AD
/**********************************************************************************/
第三題
正確
錯誤,可改為int *p=&x
錯誤,不是指向結構體的指針,不可以用->
正確,因為數組名那可是一個指針,是數組的首地址
正確 當然可以遞歸了,網上多的是那種遞歸的小程序
如果有什麼不清楚,咱們可以後續交流哦@—@

6. C語言程序設計考題

第五題應該是對的,字元數組的值是用單引號引起來的,而字元串是用雙引號的,還有,假如定義a[3],如果當字元數組來用,可以存放3個值,例如a[0]='1',a[1]='2',a[2]='3',如果當字元串來用,則只能存放2個字元,因為還有個結束標志,如:a="ds";
第六題應該是錯的,應該用FILE來表示,C語言是區分大小寫的!

7. C語言程序設計習題!!5道

16.D. int d[3][]={{1,2},{1,2,3},{1,2,3,4}};
17. C . 852
18. C . i=p+q-3
19. C . 89
20. D . a>=10||a<=0

8. 《C語言程序設計》第12章在線測試

D,C,A,B,B
BD,ABC,ABCE,B,BC
錯(&是取地址符),錯(移到距末尾-10L的地方),錯(返回0),對,對

9. C語言題庫,求發一份

單選題
1. 以下敘述中正確的是(1)。
A.若e1、e2為變數,e為表達式,則
e1=e2=e使得e1、e2都具有表達式e的值 。


B.程序中不能定義與庫函數名同名的變數。
C.一個C源程序可放在多個文件中,但
一個函數不能跨放在兩個不同的文件中。
D.C語言編譯系統以函數為單位編譯源程序。

2. 若a,b,c都是實型變數,則下列語句中除 (2) 之外,都可能得不到正確的計算結果。
A.if(b*b-4*a*c==0) x1=x2=-b/(2*a);
else x1=(-b+sqrt(b*b-4*a*c))/(2*a), x2=(-b-sqrt(b*b-4*a*c))/(2*a);

B.b=2.0e38+1.0-2.0e38;
C.a=456*768/2;
D.double define=1.0;
3. 以下正確的常量是(3 )。
A.『077』 B.『\0x89』 C.3.14u D.『\012』
4. 若已有聲明「float x= -1234.5678; int m,n=4;」則執行「m=printf(「\n%8.3f\n」,x)/n;」語句後,
變數m的值是 (4) 。
A. 2 B. 3 C. 4 D. 5
5. 若已有聲明「int x1; float x2; long x3; char x4;」,且以下選項均出現在switch語句中,其中正確
的是 (5) 。
A. case 1.1: scanf("%d",&x1);break;
B. case 1+2: scanf("%f",&x2); break;
C. case 'x':
case 'y'-1: scanf("%ld",&x3); break;
D. case x4: scanf("%c",&x4); break;
6. 33.以下表達式中,能夠作為「if(e) 語句」中判斷條件表達式e 的是 (6) 。

A. x==++(x+1) B. x+=++x||x++ C. x+1=z D. x%2.0!=0
7. 以下局部變數聲明中,正確的是 (7) 。
A.int x=0, void=1; B.int x=1,y=2x;
C.int x=2,y=sqrt(x); D.int x=sqrt(y),y=4;
8. 在以下語句中,正確的是 (8) 。
A.if(a>b)m=a;n=b;else m=b;n=a;
B.if(a>b){m=a;n=b;else m=b;n=a;}
C.if(a>b)m=a,n=b;else m=b,n=a;
D.if(a>b){m=a;n=b;}else(a<=b){m=b;n=a;}
9.24.已知有聲明:「char c=『1』 ; int x=300 ; float t=35000 ; double d=3.1234567e10 ;」,則以下表達式
求值時除 (9 ) 外,其結果都可能是不準確的。
A.x=t/c B.t=d/x C.t=d/1e5f D. t=x+c
10.若有聲明「int i,k=1; unsigned j;」,則下列語句執行時會出現無限循環的語句
是 (10) 。

A.for(j=15;j>0;j-=2) k++;

B.for(j=0;j<15;j+=2) k++;

C.for(i=0;i<15;i+=2) k++;

D.for(i=15;i>0;i-=2) k++;

11.已有聲明「int x=2,y=1,z=0;」,以下表達式的值不為0的是 (11) 。
A. x==(x=0,y=1,z=2)
B. z>y>x
C. x>y==1
D. x>(y=2)

12.若e1、e2和e3是表達式,以下選項中與語句while(e1){e2,e3;}功能等價的語句是 (12 ) 。
A. for( ;e1;e3)e2; B. for( ;e1;e2)e3; C. for(e1;e2;e3); D. for(e1; e2, e3; );
13.已有聲明「int x=3;」,以下選項中與「x+=x =x+1」功能不等價的表達式是 (13 ) 。
A.x=x+(x=xx+1) B.x=x+(x=x(x+1)) C.x=x+(x=xx1) D.x=x(x+1), x=x+x
14.若已有聲明「int a=2; 」,則執行語句「printf("%d", a, a+1 );」後的輸出結果是 (14) 。
A.語法錯 B. 2,3 C. 2 D. 3
15.語句「if (!n) n++;」中的「!n」等價於如下 (15) 條件的判定。

A.n==0 B.n!=0 C.n>0 D.n<0
16.若已有聲明「int a=1; 」,則以下表達式中錯誤的是 (16 ) 。
A.-a++ B.+a-- C.--a D.++-a
17.下列 (17) C語言表達式能正確表達數學計算式1÷× 2xy。
A. 1/sqrt(2*3.14)*2*pow(x,y) B.1.0/sqrt(2)*2*x**y
C. 1.0/sqrt(6.28)*2x^y D.1/6.28^0.5*2*pow(x,y)
18. 已有聲明「int a=3,b=3,c=2;」,以下表達式中值為0的是 (18) 。
A. !a&&!b&&c B. !a || !b || c C. a==b &&b>=c D. a>=b &&b>c
19.
36.若有: int w=1 , x=2 , y=3 , z=4; 則表達式 w>x?x--:y<z?y--:++z 的值為 (19 ) 。

A. 4 B. 3 C. 2 D. 1
20. 已知某程序中有以下片斷:
#define p 2.5
main( )
{ float x=p;
}
則main函數中標識符p代表一個 (20) 。
A. float型變數 B. double 型變數 C. float型常量D.double 型常量
20.


填空題
1.21.設有如下程序段:
int a=2, b, c=5 ;
scanf( 「%d」 , &b) ;
b = c-- || scanf (「%d」 , &c ) && a++;
執行該程序段時,若從鍵盤上輸入的數據是 4ƀ3 (ƀ代表空格鍵) , 則變數c 的值為 (21) 。
2. signed和unsigned只能用於聲明int型變數和 (22) 型變數。
3.代數式「||」的C語言表達式是 (23) 。
4.已有聲明「int a=-13,n=7;」,表達式「a%=n%=4」求值後變數a的值為 (24) 。
5.已有聲明「unsigned int a=30; 」 ,那麼 –a 的值為___(25)____。

6.
如下程序執行後的輸出是____(26)____。
#include<stdio.h>
main ( )
{
int i=1,m=0;
switch ( i )
{
case 1 :
case 2 : m++;
case 3 : m++;
}
printf ( 「%d」 ,m);
}
7.C語言的三個邏輯運算符(!、&&、||)中,優先順序高於算術運算符的是
(27) 。
8.已知sizeof(int)的值為2,執行如下程序後輸出結果為 (28) 。
main()
{ int a,b;
a=65536;
b=32767+1;
printf("%d %d\n",a,b);
}
9.若有聲明「int a=3,b=0,c=5;」, 則表達式 !a+b+c-1&&b+c/2 的值是 (29) 。
10.若有聲明「int x=1,y=2;」 ,則表達式 ++x, x+y++ 的值是 (30) 。

三、閱讀程序題
1.在PC機的TC中執行以下程序後的輸出是: (31) 。

main()
{
unsigned x=0x7f39;

int y;
char c;

c=x;
x+=0307;
y=x;
printf(「%d,%x,%c」,x,y,c);
}
2.以下程序運行後的輸出結果是 (32) 。
#include<stdio.h>
main ( )
{ int x=30, y=45;
while(x!=y)
if(x>y)x-=y;
else y-=x;
printf("%d", x);
}
3.
以下程序運行後輸出結果的第一行是 (33) ,第二行是 (34) 。
#include<stdio.h>
#include<math.h>
void main()
{ int a=0x65,b,c,count=0;
b=a;
while(b>0)
{ b=b/8;
count++;
}
printf("%d\n",count);
while(count>0)
{ c=pow(8,count-1);
printf("%d",a/c);
a=a%c;
count--;
}
}
4.以下程序運行時輸出結果是 (35) 。
#include <stdio.h>
main()
{
int i,x=3,y=5;
for(i=0;i<3;i++)
switch(y%x)
{
case 0: printf("%d",y);
case 1: printf("%d",y--);break;
case 2: printf("%d",--y);break;
}
}

5.以下程序執行後,輸出結果的第一行是 (36) ,第二行是 _(37)______。
#define N 100
main()
{ int i=0,sum=0;
do
{ if(i==(i/2)*2)
continue;
sum++;
if(sum>3)
break;
}while(++i<N);
printf("%d \n %d", sum,i);
}

四、完善程序題

1.下列程序的功能是按從鍵盤上輸入的整數m,判斷2m -1是否為素數,若為素數再求2m -1的反序數。例如:m為17,217 –1(131071)是素數,其反序數是170131。
#include <stdio.h>
(38)
main()
{
int m,j;
long q,k1,k2=0,k3;
scanf("%d",&m);
k3=k1=pow(2,m)-1;
q=sqrt(k1);
for(j=2;j<=q;j++)
if( (39) ) break;
if(j>q)
{ while(k3>0)
{ k2=k2*10+ (40) ;
k3/=10;
}
printf("m=%d\npow(2,m)-1=%ld is a prime.\nreverse order %ld\n",m,k1,k2);
}
else
printf("m=%d isn't a prime.\n",m);
}
2. 以下程序找到並輸出所有滿足給定條件的四位十進製表示的正整數:該數是某個數的平方、該數的後二位是25、組成該整數的各位數字中有兩位是2。例如:1225是滿足所給條件的四位正整數(352=1225)。
#include<stdio.h>
#include<math.h>
main()
{ long i,j,s,d=0;
for(i=1000;i<10000;i++)
{ (41) ;
j= (42) ;
if(i==j*j && i%100==25)
{ s=i;
while(s>0)
{ if( (43) )d++;
s=s/10;
}
if(d==2) printf("\n %d",i);
}
}
}
3..下列程序計算下列數學函數展開式的近似值,累加運算在最後一項的絕對值小於10-6時停止。
程序運行時從鍵盤上分別三個實數-1.0、0.5、1.0,作為x的值。
#include <stdio.h>
#include <math.h>
#define EPS 1.0e-6
main()
{ double x,n,tn,ft,sn,xn;
int i;
for(i=0;i<3;i++)
{ (44) ;
ft=1.0;
scanf("%lf",&x);
sn=xn=x;
do{
xn=xn*x*x;
ft=ft*(2*n-3)/(2*n-2);
tn=ft*xn/ (45) ;
sn=sn+tn;
n=n+1;
}while( (46) );
printf("f(%lf)=%0.6lf\n",x,sn);
}
}

《C語言程序設計》試卷答題紙
(本試卷滿分100分)

系科_____________學號_____________姓名_____________成績____________

單項選擇題得分 填空題得分 閱讀程序題得分 完善程序題得分 總分

一 、單項選擇題

(1) (2) (3) (4) (5)
(6) (7) (8) (9) (10)
(11) (12) (13) (14) (15)
(16) (17) (18) (19) (20)

二、填空題

(21) (22)
(23) (24)
(25) (26)
(27) (28)
(29) (30)

三、閱讀程序題

(31) (32)
(33) (34)
(35) (36)
(37

四、完善程序題

(38) (39)
(40) (41)
(42) (43)
(44) (45)
(46)
《C語言程序設計》試卷參考答案
(本試卷滿分100分)

一 、單項選擇題

(1)C (2)D (3)D (4)A (5) B
(6)B (7)C (8)C (9)D (10)A
(11)C (12)A (13)A (14)C (15)A
(16)D (17)A (18)A (19)B (20)D

二、填空題

(21) 4 (22) char
(23) fabs(exp(sqrt(1+sin(x)))) (24) -1
(25) 65506 (26) 2
(27) ! (28) 0 -32768
(29) 1 (30) 4

三、閱讀程序題

(31) -32768, 8000, 9 (32) 15
(33) 3 (34) 145
(35) 4433 (36) 4
(37) 7

四、完善程序題

(38) #include <math.h> (39) k1%j==0
(40) k3%10 (41) d=0
(42) sqrt(i) (43) s%10==2
(44) n=2.0 (45) (2*n-1)
(46) fabs(tn)>EPS