c語(yǔ)言期末機(jī)考(大連理工大學(xué)題庫(kù))_第1頁(yè)
c語(yǔ)言期末機(jī)考(大連理工大學(xué)題庫(kù))_第2頁(yè)
c語(yǔ)言期末機(jī)考(大連理工大學(xué)題庫(kù))_第3頁(yè)
c語(yǔ)言期末機(jī)考(大連理工大學(xué)題庫(kù))_第4頁(yè)
c語(yǔ)言期末機(jī)考(大連理工大學(xué)題庫(kù))_第5頁(yè)
已閱讀5頁(yè),還剩110頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上精選優(yōu)質(zhì)文檔-傾情為你奉上專(zhuān)心-專(zhuān)注-專(zhuān)業(yè)專(zhuān)心-專(zhuān)注-專(zhuān)業(yè)精選優(yōu)質(zhì)文檔-傾情為你奉上專(zhuān)心-專(zhuān)注-專(zhuān)業(yè)轉(zhuǎn)過(guò)不少資料神馬的。我也發(fā)一個(gè)回報(bào)一下祝大家都有個(gè)好成績(jī)【第一套】一、單項(xiàng)選擇1下列數(shù)據(jù)中,為字符串常量的是(d)。A、AB、How do you do.C、$abcD、house2以下所列的C語(yǔ)言常量中,錯(cuò)誤的是(b )。A、0 xFFB、1.2e0.5C、2LD、723以下程序的輸出結(jié)果是(d。main()float x=3.6;int i;i=(int)x;printf(x=%f,i=%dn,x,i);A、x=3.,i=4B、x=3 i=3.C、x=3,i=3D、

2、x=3.,i=34若k是整型,則以下程序段的執(zhí)行結(jié)果是:(bk=-3;if(k=0) printf(#)else printf(&);A、#B、有語(yǔ)法錯(cuò)誤,無(wú)結(jié)果C、&D、#&5若x=2,y=3則x|y的結(jié)果是( c)。A、3B、0C、1D、26針對(duì)下列程序段回答問(wèn)題( ).for(t=1;t=100;t+)scanf(%d,&x);if(x=0時(shí)什么也不輸出B、最多允許輸出100個(gè)非負(fù)整數(shù)C、printf函數(shù)永遠(yuǎn)也不執(zhí)行D、當(dāng)x0時(shí)整個(gè)循環(huán)結(jié)束7以下程序的執(zhí)行結(jié)果是( )。main() int num = 0;while( num |-!5do-while循環(huán)由do開(kāi)始,while結(jié)束,循環(huán)

3、體可能一次也不做。6continue語(yǔ)句用于終止循環(huán)體的本次執(zhí)行.7若有定義和語(yǔ)句:int a33=3,5,8,9,12,35,i,sum=0;for(i=0;i1,x的值 為_(kāi).5連接字符串的函數(shù)是_,只寫(xiě)函數(shù)名即可.6函數(shù)不可以進(jìn)行嵌套定義,但可以進(jìn)行嵌套_.7設(shè)有以下結(jié)構(gòu)類(lèi)型說(shuō)明和變量定義,則變量b在內(nèi)存所占字節(jié)數(shù)是 _。struct stud short int age; char num3; float s2; double ave; b,*p;8若有fp=fopen(a1.dat,r+)打開(kāi)文件語(yǔ)句,這個(gè)文件的數(shù)據(jù)是以_的形式存放在內(nèi)存中,該文件的使用方式為讀/_。5.6 3 -6

4、0 1 strcat 調(diào)用 21 ASCII碼或ASCII 文本四、程序設(shè)計(jì)1/*-【程序設(shè)計(jì)】-功能:輸入n個(gè)數(shù),并求出小于平均值的數(shù)的個(gè)數(shù)。-*/#include stdio.hint average_num(int a,int n)/*Begin*/* End */main()int n,a100,i,num;void TestFunc();scanf(%d,&n);for(i=0;in;i+)scanf(%d,&ai);num=average_num(a,n);printf(the num is:%dn,num);TestFunc();void TestFunc()FILE *IN,*

5、OUT;int n;int i10;int o;IN=fopen(in.dat,r);if(IN=NULL)printf(Read File Error);OUT=fopen(out.dat,w);if(OUT=NULL)printf(Write File Error);for(n=0;n5;n+) fscanf(IN,%d,&in);o=average_num(i,5);fprintf(OUT,%dn,o);fclose(IN);fclose(OUT);【參考代碼】int i,sum=0,k=0;double average;for(i=0;in;i+)sum=sum+ai;average=

6、sum*1.0/n;for(i=0;iai) k+;return(k);=2/*-【程序設(shè)計(jì)】-功能:從字符串中刪除指定的字符。同一字母的大、小寫(xiě)按不同字符處理。例如:若程序執(zhí)行時(shí)輸入字符串為:turbocandborlandc+從鍵盤(pán)上輸入字符:n,則輸出后變?yōu)椋簍urbocadborladc+,如果輸入的字符在字符串中不存在,則字符串照原樣輸出。-*/#include stdio.hvoid fun(char s,char c)/*Begin*/ /* End */ void TestFunc()FILE *IN,*OUT;char i200;/*char o200;*/IN=fopen(

7、in.dat,r);if(IN=NULL)printf(Read File Error);OUT=fopen(out.dat,w);if(OUT=NULL)printf(Write File Error);fscanf(IN,%s,i);fun(i,n);fprintf(OUT,%s,i);fclose(IN);fclose(OUT);main() static char str=turbocandborlandc+;char ch; printf(原始字符串:%sn, str); printf(輸入一個(gè)字符:); scanf(%c,&ch); fun(str,ch); printf(str=

8、%sn,str);TestFunc(); 【參考代碼】char *q=s; for(; *q; q+) if(*q != c) *(s+)=*q; *s=0;=五、程序改錯(cuò)1/*-【程序改錯(cuò)】-功能:依次取出字符串中所有數(shù)字字符, 形成新的字符串, 并取代原字符串。例如:輸入ab12c3d,則輸出123。注意:不得增行或刪行,也不得更改程序的結(jié)構(gòu)!-*/#include stdio.h/*ERROR*/void fun(char s) int i,j;for(i=0,j=0; si!=0; i+)if(si=0&si=9)/*ERROR*/sj=si; /*ERROR*/sj=0; main(

9、)char item80;printf(nEnter a string: );gets(item);printf(nnThe string is: %sn,item);fun(item);printf(nnThe string of changing is: %sn,item);【改錯(cuò)1】【學(xué)生答案】void fun(char s) 【參考答案】void fun(char *s)void fun(char s)void fun(char s80)=【改錯(cuò)2】【學(xué)生答案】sj=si; 【參考答案】sj+=si; sj=si; j+; =【改錯(cuò)3】【學(xué)生答案】sj=0; 【參考答案】sj=0;=/

10、*- 【程序改錯(cuò)】-功能:讀入一個(gè)整數(shù)m( 5m20 ),函數(shù)rnd獲得m個(gè)隨機(jī)整數(shù),函數(shù)sortpb將這m個(gè)隨機(jī)整數(shù)從小到大排序。例如:若輸入整數(shù)7,則應(yīng)輸出:3 10 17 28 32 36 47。-*/#include conio.h#include stdio.hvoid sortpb ( int n, int a )/*ERROR*/int i, j, p;for ( j = 0; j n-1 ; j+ )p = j;for ( i = j + 1; i aj ) p = i;/*ERROR*/if ( p = j )t = aj;aj = ap;ap = t;void double

11、 rnd ( )static t = 29, c = 217, m = 1024, r = 0;r =( r*t + c )%m; return( ( double )r/m );void getarr( int n, int *x )int i;for( i = 1; i = n; i+, x+ ) *x = ( int )( 50*rnd() );void putarr( int n, int *z )int i;for( i = 1; i aj ) p = i;【參考答案】if ( ap ai ) p = i;if ( ai ap ) p = i;=【改錯(cuò)3】【學(xué)生答案】if ( p =

12、 j )【參考答案】if ( p != j )=六、程序填空1/*-【程序填空】-功能:計(jì)算矩陣a的下三角(包含主對(duì)角線)元素之積,矩陣的行、列數(shù)和元素值均由鍵盤(pán)輸入。-*/#define M 10#include stdio.hint main()int i,j,n,aMM;long s=1;scanf(%d,&n);/*FILL*/for(_)for(j=0;jn;j+)scanf(%d,&aij);for(i=0;in;i+)/*FILL*/for(j=0;_;j+)/*FILL*/s=_;printf(%ldn,s);return 0;【空1】 【學(xué)生答案】for(_)【參考答案】i=

13、0;in;i+i=0;in;i=i+1=【空2】 【學(xué)生答案】for(j=0;_;j+)【參考答案】j=j(i+j)(n-1)&j(n-1)&jn=【空3】 【學(xué)生答案】s=_;【參考答案】s*aijaij*s=/*-【程序填空】-題目:本程序的功能是從10個(gè)數(shù)中找出其中的最大值,完善程序。-*/#include stdio.hmain()int a10,i,*pmax;for(i=0;i10;i+)scanf(%d,&ai);/*FILL*/pmax= _ ;for(i=1;i*pmax) pmax=&ai;/*FILL*/printf(%d, _ );【空1】【學(xué)生答案】pmax= _ ;

14、【參考答案】pmax=&a0pmax=a=【空2】【學(xué)生答案】printf(%d, _ );【參考答案】*pmax=【第二套】一、單項(xiàng)選擇1字符串efg的長(zhǎng)度是:( ).A、3B、11C、7D、52設(shè)變量a是整型,f是實(shí)型,i是雙精度型,則表達(dá)式10+a+i*f值的數(shù)據(jù)類(lèi)型為()。A、doubleB、不確定C、intD、float3下列語(yǔ)句的結(jié)果是()。main() int j;j=3;printf(%d,+j);printf(%d,j+);A、3,3B、4,4C、3,4D、4,34邏輯表達(dá)式!(2-1)&x|0的值是( )A、1B、0C、3D、25int a=1,b=2,c=3; if(ab

15、)a=b; if(ac)a=c; 則a的值為()。A、3B、2C、1D、不一定6執(zhí)行語(yǔ)句 for(i=1;i+4;); 后變量 i 的值是()。A、3B、5C、4D、不定7以下正確的描述是( ).A、只能用continue語(yǔ)句來(lái)終止本次循環(huán)B、switch語(yǔ)句中不能出現(xiàn)continue語(yǔ)句C、在循環(huán)中break語(yǔ)句不能獨(dú)立出現(xiàn)D、goto語(yǔ)句只能用于退出多層循環(huán)8下面合法的語(yǔ)句定義是( ).A、char a =0,1,2,3,4,5;B、int a =string;C、int a5=0,1,2,3,4,5;D、char a=string;9char a10;不能將字符串a(chǎn)bc存儲(chǔ)在數(shù)組中的是(

16、)。A、int i;for(i=0;i3;i+)ai=i+97;ai=0;B、a=abc;C、strcpy(a,abc);D、a0=0;strcat(a,abc);10在C語(yǔ)言中,一維數(shù)組的定義方式為:類(lèi)型說(shuō)明符數(shù)組名()。A、整型常量或整型表達(dá)式B、正整型常量表達(dá)式C、整型表達(dá)式D、常量表達(dá)式11在定義全局變量和局部靜態(tài)變量的同時(shí)賦值,變量的初始化在()時(shí)確定的.A、運(yùn)行B、編輯C、編譯D、調(diào)試12關(guān)于建立函數(shù)的目的,以下正確的說(shuō)法是()。A、提高程序的可讀性B、減少程序文件所占內(nèi)存C、減少程序的篇幅D、提高程序的執(zhí)行效率13以下函數(shù)調(diào)用語(yǔ)句中實(shí)參的個(gè)數(shù)是()。 func(e1,e2),(e

17、3,e4,e5);A、3B、5C、語(yǔ)法錯(cuò)誤D、214設(shè)有宏定義#define SUB(x,y) (x)*y,且a=3,b=4,則 SUB(a+,b+) 的值為( ).A、13B、16C、20D、1215變量p為指針變量,若p=&a,下列寫(xiě)法不正確的是()。A、*(p+)=a+B、&*p=&aC、(*p)+=a+D、*&a=a16下列程序正確的運(yùn)行結(jié)果為( ).#includemain()union uchar *name;int age;int income; s;=WANGLING;s.age=28;s.income=1000;printf(%dn, s.age);A、8B、28

18、C、1000D、不確定17定義my_file 為文件型指針變量,使用fopen只讀方式打開(kāi)一個(gè)已存在的二進(jìn)制文件,以下正確的調(diào)用形式為( ).A、my_file=fopen(my.dat, r);B、my_file=fopen(my.dat, rb+);C、my_file=fopen(my.dat, rb);D、my_file=fopen(my.dat, r+);CABBC BAABB CADDA CC二、判斷1若i =3,則printf(%d,-i+);輸出的值為 -4。2格式字符%x用來(lái)以八進(jìn)制形式輸出整數(shù).3設(shè)u=1,v=2,w=3,則邏輯表達(dá)式u|v-w&v+w的值為0.4已知a=4,

19、b=2,c=3,d=5,表達(dá)式ab?a:cd?c:d的值為3.5break語(yǔ)句能夠終止當(dāng)前進(jìn)行的多層循環(huán).6break語(yǔ)句不能終止正在進(jìn)行的多層循環(huán).7若有定義和語(yǔ)句:int a33=3,5,8,9,12,35,i,sum=0;for(i=0;iz&y=z的值為_(kāi).4int x=2,y=3,z=4; 則表達(dá)式x+y&(x=y)的值為_(kāi).5C語(yǔ)言中,二維數(shù)組在內(nèi)存中的存放方式為按_優(yōu)先存放.6函數(shù)調(diào)用時(shí)的實(shí)參和形參之間的數(shù)據(jù)是單向的_傳遞.7結(jié)構(gòu)體是不同數(shù)據(jù)類(lèi)型的數(shù)據(jù)集合,作為數(shù)據(jù)類(lèi)型, 必須先說(shuō)明結(jié)構(gòu)體_,再說(shuō)明結(jié)構(gòu)體變量.8調(diào)用 fopen 函數(shù)打開(kāi)一文本文件,在使用方式這一項(xiàng)中, 為輸入而

20、打開(kāi)需填入_.1或1.0或1. 4 0 1 行 值 類(lèi)型 r+或r四、程序設(shè)計(jì)1/*-【程序設(shè)計(jì)】-功能:求出二維數(shù)組外圍元素之和,作為函數(shù)值返回。二維數(shù)組的值在主函數(shù)中賦予。-*/#define M 4#define N 5#include stdio.hint fun(int aMN)/*Begin*/* End */main()int aMN=1,3,5,7,9,2,4,6,8,10,2,3,4,5,6,4,5,6,7,8;void TestFunc();int y;y=fun(a);printf(s=%dn,y);TestFunc();void TestFunc()FILE *IN,*

21、OUT;int iINMN,iOUT;int i,j,k;IN=fopen(14.in,r);if(IN=NULL)printf(Please Verify The Currernt Dir.It May Be Changed);OUT=fopen(14.out,w);if(OUT=NULL)printf(Please Verify The Current Dir. It May Be Changed);for(k=0;k10;k+) for(i=0;iM;i+)for(j=0;jN;j+)fscanf(IN,%d,&iINij);iOUT=fun(iIN);fprintf(OUT,%dn,i

22、OUT);fclose(IN);fclose(OUT);【參考代碼】int s=0;int i,j;for(i=0;iM;i+)s=s+ai0+aiN-1;for(j=1;jN-1;j+)s=s+a0j+aM-1j;return s;=2/*-【程序設(shè)計(jì)】-功能:找出一個(gè)大于給定整數(shù)且緊隨這個(gè)整數(shù)的素?cái)?shù),并作為函數(shù)值返回。-*/#include stdio.h#includeconio.hint fun(int n)/*Begin*/* End */void TestFunc()FILE *IN,*OUT;int s ;int t;int o;IN=fopen(in.dat,r);if(IN=

23、NULL)printf(Read File Error);OUT=fopen(out.dat,w);if(OUT=NULL)printf(Write File Error);for(s=1;s=5;s+)fscanf(IN,%d,&t);o=fun(t);fprintf(OUT,%dn,o);fclose(IN);fclose(OUT);main() int m;printf(Enter m: );scanf(%d, &m);printf(nThe result is %dn, fun(m);TestFunc(); 【參考代碼】int i,k;for(i=n+1;i+)for(k=2;ki;k

24、+)if(i%k=0)break;if(k=i)return(i);=五、程序改錯(cuò)1/*- 【程序改錯(cuò)】-功能:一個(gè)5位數(shù),判斷它是不是回文數(shù)。即12321是回文數(shù),個(gè)位與萬(wàn)位相同,十位與千位相同。-*/#include stdio.hmain( )/*ERROR*/long ge,shi,qian;wan,x;scanf(%ld,&x);/*ERROR*/wan=x%10000;qian=x%10000/1000;shi=x%100/10;ge=x%10;/*ERROR*/if (ge=wan|shi=qian)printf(this number is a huiwenn);elsepri

25、ntf(this number is not a huiwenn);【改錯(cuò)1】【學(xué)生答案】long ge,shi,qian;wan,x;【參考答案】long ge,shi,qian,wan,x;=【改錯(cuò)2】【學(xué)生答案】wan=x%10000;【參考答案】wan=x/10000;=【改錯(cuò)3】【學(xué)生答案】if (ge=wan|shi=qian)【參考答案】if (ge=wan&shi=qian)if (shi=qian&ge=wan)=2/*- 【程序改錯(cuò)】-功能:用下面的和式求圓周率的近似值。直到最后一項(xiàng)的絕對(duì)值小于等于0.0001。/4= 1- 1/3 + 1/5 - 1/7 .-*/#inc

26、lude stdio.h/*ERROR*/#include mathvoid fun()float s=0,t=1,i=1;/*ERROR*/int p=1;/*ERROR*/while(fabs(t)=1e-4)s=s+t;p=-p;i=i+2;t=p/i;/*ERROR*/printf(pi=%dn,s*4);main()fun();【改錯(cuò)1】【學(xué)生答案】#include math【參考答案】#include math.h#include =【改錯(cuò)2】【學(xué)生答案】int p=1;【參考答案】float p=1;float p=1.0;double p=1;double 1.0;=【改錯(cuò)3】

27、【學(xué)生答案】while(fabs(t)1e-4)while(0.0001fabs(t)while(1e-40.0001)=【改錯(cuò)4】【學(xué)生答案】printf(pi=%dn,s*4);【參考答案】printf(pi=%fn,s*4);printf(pi=%lfn,s*4);=六、程序填空1/*-【程序填空】-功能:計(jì)算并輸出500以?xún)?nèi)最大的10個(gè)能被13或17整除的自然數(shù)之和。-*/#include stdio.h/*FILL*/int fun(_ )int m=0, mc=0, j, n;/*FILL*/while (k = 2 & _)/*FILL*/if (k%13 = 0 | _)m=m

28、+k;mc+;k-;/*FILL*/_;main ( )printf(%dn, fun (500);【空1】 【學(xué)生答案】int fun(_ )【參考答案】int k=【空2】 【學(xué)生答案】while (k = 2 & _)【參考答案】mc mcmc = mc=【空3】 【學(xué)生答案】if (k%13 = 0 | _)【參考答案】k%17 = 0!(k%17)k/17*17=k=【空4】 【學(xué)生答案】_;【參考答案】return mreturn (m)=2/*-【程序填空】-功能:以下程序中,函數(shù)fun的功能是計(jì)算x2-2x+6,主函數(shù)中將調(diào)用fun函數(shù)計(jì)算:y1=(x+8)2-2(x+8)+6

29、y2=(sin(x)2-2sin(x)+6請(qǐng)?zhí)羁铡?*/#include #include double fun(double x)return(x*x-2*x+6);main()/*FILL*/double x, _;printf(Enter x:); scanf(%lf,&x);/*FILL*/y1=fun( _);/*FILL*/y2=fun( _);printf(y1=%lf,y2=%lfn, y1, y2);【空1】 【學(xué)生答案】double x, _;【參考答案】y1,y2y2,y1=【空2】 【學(xué)生答案】y1=fun( _);【參考答案】(x+8)(8+x)x+88+x=【空3】

30、 【學(xué)生答案】y2=fun( _);【參考答案】sin(x)=【第三套】一、單項(xiàng)選擇1以下程序段 char *alp=ABC,DEF,GHI;int j; puts(alp1);的輸出結(jié)果是()。A、DB、AC、BD、DEF2下列表達(dá)式中,可作為C合法表達(dá)式的是()。A、3.0%2B、3=2=1=0C、3,2,1,0D、(3,2,1,0)3下面程序的 正確輸出結(jié)果是( ).(規(guī)定用U表示空格)main()float x=5.783,y= -10.2345; printf (x=%-8.2f ,y=%-8.2f n, x,y);A、x=5.78UUUU,y=-10.23UUB、x=5.78,y=

31、-10.23C、5.78,-10.23D、x=UUUU5.78,y=UU-10.234當(dāng)x為偶數(shù)或奇數(shù)時(shí)(0除外),其值都為0的表達(dá)式是:( )A、(x/2*2-x)=0B、x%2=0C、!x!=0D、!(x%2)5下列運(yùn)算符優(yōu)先級(jí)最低的是( ).A、=B、+C、!D、&6設(shè)有如下程序段:int k=10;while(k=0)k-;則下述說(shuō)明中正確的是( ).A、循環(huán)體一次也不執(zhí)行B、循環(huán)體執(zhí)行一次C、死循環(huán)D、循環(huán)體執(zhí)行10次7從循環(huán)體內(nèi)某一層跳出,繼續(xù)執(zhí)行循環(huán)外的語(yǔ)句是( )。A、continue語(yǔ)句B、空語(yǔ)句C、break語(yǔ)句D、return語(yǔ)句8以下對(duì)一維整型數(shù)組a的正確說(shuō)明是()。A

32、、int a(10);B、int n; scanf(%d,&n); int an;C、int n=10,an;D、#define SIZE 10 (換行) int aSIZE;9以下定義語(yǔ)句中,錯(cuò)誤的是()。A、int n=5,an;B、int a=1,2;C、char s10=test;D、char *a3;10下面敘述中不正確的是( ).A、可以對(duì)字符型數(shù)組進(jìn)行整體輸入和輸出.B、不可以對(duì)浮點(diǎn)型數(shù)組進(jìn)行整體輸入和輸出.C、可以對(duì)整型數(shù)組進(jìn)行整體輸入和輸出.D、字符型數(shù)組可以存放字符串.11函數(shù)定義時(shí)的參數(shù)為形參,調(diào)用函數(shù)時(shí)所用的參數(shù)為實(shí)參,則下列描述正確的是( ).A、實(shí)參與形參是雙向傳遞

33、B、形參可以是表達(dá)式C、形參和實(shí)參可以同名D、實(shí)參類(lèi)型一定要在調(diào)用時(shí)指定12以下錯(cuò)誤的描述是:函數(shù)調(diào)用可以()。A、出現(xiàn)在執(zhí)行語(yǔ)句中B、做為一個(gè)函數(shù)的實(shí)參C、出現(xiàn)在一個(gè)表達(dá)式中D、做為一個(gè)函數(shù)的形參13以下不正確的說(shuō)法是:C語(yǔ)言規(guī)定()。A、實(shí)參可以是常量,變量或表達(dá)式B、實(shí)參可以為任何類(lèi)型C、形參可以是常量,變量或表達(dá)式D、形參應(yīng)與其對(duì)應(yīng)的實(shí)參類(lèi)型一致14下列形式,不屬于編譯預(yù)處理命令的是( ).A、#ifdef MB、#undef MC、#if (M1)D、while (M1)15下面判斷正確的是()。A、char c4=abc,d4=abc;等價(jià)于 char c4=d4=abc;B、ch

34、ar str10=china;等價(jià)于char str10;str=china;C、char *a=china;等價(jià)于 char *a;*a=china;D、char *s=china;等價(jià)于 char *s;s=china;16若有以下結(jié)構(gòu)體定義:struct example int x;int y; v2;則( )是正確的引用或定義.A、example.x=10;B、struct v2;v2.x=10;C、example v2;v2.x=10;D、struct example v2=10,3;17若fp已正確定義并指向某個(gè)文件,當(dāng)未遇到該文件結(jié)束標(biāo)志時(shí)函數(shù)feof(fp)的值為()。A、-1

35、B、1C、一個(gè)非0值D、0DDACA ACDAC CDCDD DD二、判斷1如果有一個(gè)字符串,其中第十個(gè)字符為n,則此字符串的有效字符為9個(gè)2格式字符%o用來(lái)以十六進(jìn)制形式輸出整數(shù)3已知a=3,b=4,c=5,則邏輯表達(dá)式!(ab) & !c|1的值為1.4已知x=2,y=2, 執(zhí)行分支語(yǔ)句 if(x=y) y=1; else y=-1;后,=-1.5continue語(yǔ)句對(duì)于while和do-while循環(huán)來(lái)說(shuō),意味著轉(zhuǎn)去計(jì)算While表達(dá)式.6在do-while循環(huán)中,根據(jù)情況可以省略while.7對(duì)于字符數(shù)為n個(gè)的字符串,其占用的內(nèi)存為n+1個(gè)字節(jié)空間.8puts 函數(shù)用來(lái)輸出一個(gè)字符.9

36、引用數(shù)組元素時(shí),下標(biāo)可以是整型表達(dá)式或整型常量.10函數(shù)調(diào)用結(jié)束后,靜態(tài)局部變量所占用的空間被釋放.11在一個(gè)函數(shù)中定義的靜態(tài)局部變量可以被另一個(gè)函數(shù)調(diào)用.12當(dāng)全局變量與局部變量同名時(shí),在局部變量的作用域范圍之內(nèi),全局變量起作用.13計(jì)算機(jī)編譯系統(tǒng)對(duì)宏定義在編譯時(shí)進(jìn)行語(yǔ)法檢查.14若定義 int array5 , *p; 則賦值語(yǔ)句 p=array;是正確的.15共同體變量所占的內(nèi)存長(zhǎng)度等于最長(zhǎng)的成員的長(zhǎng)度。16C語(yǔ)言中,打開(kāi)一個(gè)文件就意味著產(chǎn)生了一個(gè)文件.錯(cuò)錯(cuò)對(duì)錯(cuò)對(duì) 錯(cuò)對(duì)錯(cuò)對(duì)錯(cuò) 錯(cuò)錯(cuò)錯(cuò)對(duì)對(duì) 錯(cuò)三、填空1設(shè)x的值為15,n的值為2,則表達(dá)式x%=(n+=3)運(yùn)算后x的值是_.2已知a=-13

37、,b=6, a%b的十進(jìn)制數(shù)值為_(kāi).3已知a=12,寫(xiě)出表達(dá)式 0a&a5)?0:1; 執(zhí)行后整型變量 a 的值是_.5C語(yǔ)言中,數(shù)組名是一個(gè)不可變的_常量,不能對(duì)它進(jìn)行加減和賦值運(yùn)算.6C語(yǔ)言中一個(gè)函數(shù)由函數(shù)首部和_兩部分組成.7設(shè)有以下共用體類(lèi)型說(shuō)明和變量定義,則變量c在內(nèi)存所占字節(jié)數(shù)是 _。union stud short int num; char name10; float score5; double ave; c;8在C語(yǔ)言中,關(guān)閉文件即是文件指針不再指向該_.0 -1 0 1 指針或地址 函數(shù)體 20 文件四、程序設(shè)計(jì)1/*-【程序設(shè)計(jì)】-功能:計(jì)算并輸出給定整數(shù)n的所有因子之

38、和(不包括1與自身)。注意:n的值不大于1000。例如:n的值為855時(shí),應(yīng)輸出704。-*/#include stdio.hint fun(int n)/*Begin*/* End */void TestFunc()FILE *IN,*OUT;int iIN,iOUT,i;IN=fopen(in.dat,r);if(IN=NULL)printf(Please Verify The Currernt Dir.It May Be Changed);OUT=fopen(out.dat,w);if(OUT=NULL)printf(Please Verify The Current Dir. It M

39、ay Be Changed);for(i=0;i5;i+)fscanf(IN,%d,&iIN);iOUT=fun(iIN);fprintf(OUT,%dn,iOUT);fclose(IN);fclose(OUT);main()printf(s=%dn,fun(855);TestFunc();【參考代碼】int s=0,i;for(i=2;in;i+)if(n%i=0)s=s+i;return s;=2/*-【程序設(shè)計(jì)】-功能:刪去一維數(shù)組中所有重復(fù)的數(shù),只保留不同的數(shù)。數(shù)組中的數(shù)已按由小到大的順序排列,函數(shù)返回刪除后數(shù)組中數(shù)據(jù)的個(gè)數(shù)。例如:一維數(shù)組中的數(shù)據(jù)是: 2 2 2 3 4 4 5 6

40、6 6 6 7 7 8 9 9 10 10 10。刪除后,數(shù)組中的內(nèi)容應(yīng)該是: 2 3 4 5 6 7 8 9 10。注意:請(qǐng)勿改動(dòng)主函數(shù)main和其它函數(shù)中的任何內(nèi)容。-*/#include stdio.h#define N 80int fun(int a,int n)/*Begin*/* End */main()void TestFunc();int aN=2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10,10,i,n=20;printf(The original data:n);for(i=0;in;i+) printf(%3d,ai);n=fun(a,n

41、);printf(nnThe data after deleted:n);for(i=0;in;i+) printf(%3d,ai);printf(nn);TestFunc();void TestFunc()FILE *IN,*OUT;int aN;int n;int i;IN=fopen(in.dat,r);if(IN=NULL)printf(Read File Error);OUT=fopen(out.dat,w);if(OUT=NULL)printf(Write File Error);fscanf(IN,%d,&n);for(i=0;in;i+) fscanf(IN,%d,&ai);n

42、=fun(a,n);for(i=0;in;i+) fprintf(OUT,%3d,ai);fclose(IN);fclose(OUT);【參考代碼】int i,j=1,k=a0;for(i=1;in;i+)if(k!=ai)aj+=ai;k=ai;aj=0;return j;=五、程序改錯(cuò)1/*-【程序改錯(cuò)】-函數(shù)fun的功能是:求1到20的階乘的和。-*/#include stdio.hmain ()int n,j;float s=0.0,t=1.0;for(n=1;n=20;n+) /*ERROR*/s=1;for(j=1;j=n;j+)/*ERROR*/t=t*n;/*ERROR*/s+

43、t=s;printf(jiecheng=%fn,s);【改錯(cuò)1】【學(xué)生答案】s=1;【參考答案】t=1;t=1.0;=【改錯(cuò)2】【學(xué)生答案】t=t*n;【參考答案】t= t * j ;t*=j;t=j*t;=【改錯(cuò)3】【學(xué)生答案】s+t=s;【參考答案】s= s + t ;s+=t;s=t+s;=2/*- 【程序改錯(cuò)】-功能:實(shí)現(xiàn)兩個(gè)字符串的連接。例如:輸入dfdfqe和12345時(shí),則輸出dfdfqe12345.-*/#includestdio.hmain()char s180,s280;void scat(char s1,char s2);gets(s1);gets(s2);scat(s1

44、,s2);puts(s1);void scat (char s1,char s2)int i=0,j=0;/*ERROR*/while(s1i= =0) i+;/*ERROR*/while(s2j= =0)/*ERROR*/s2j=s1i;i+;j+;/*ERROR*/s2j=0;【改錯(cuò)1】【學(xué)生答案】while(s1i= =0) i+;【參考答案】while(s1i!=0)i+;while(s1i)i+;while(s1i!=NULL)i+;while(s1i!=0)i+;=【改錯(cuò)2】【學(xué)生答案】while(s2j= =0)【參考答案】while(s2j!=0)while(s2j)while

45、(s2j!=NULL)while(s2j!=0)=【改錯(cuò)3】【學(xué)生答案】s2j=s1i;【參考答案】s1i=s2j;=【改錯(cuò)4】【學(xué)生答案】s2j=0;【參考答案】s1i=0;s1i=NULL;*(s1+i)=0;s1i=0;=六、程序填空1/*-【程序填空】-功能:打印以下圖形。*-*/#include stdio.hmain ( )char a59= ;int i,j;for (i=0;i5;i+)/*FILL*/for(j=i; _;j+)aij=*;/*FILL*/for(_;i5;i+)for(j=0;j9;j+)/*FILL*/printf(%c, _ );/*FILL*/_;【空

46、1】 【學(xué)生答案】for(j=i; _;j+)【參考答案】jjjjj5+i=【空2】 【學(xué)生答案】for(_;i5;i+)【參考答案】i=0=【空3】 【學(xué)生答案】printf(%c, _ );【參考答案】aij=【空4】 【學(xué)生答案】_;【參考答案】printf(n)=/*-【程序填空】 -功能:計(jì)算n門(mén)課程的平均分。例如:若有5門(mén)課程的成績(jī)是:90.5, 72, 80, 61.5, 55則函數(shù)的值為:71.80。-*/#include float fun(float *a,int n)int i;float ave=0.0;/*FILL*/for(i=0;_;i+)ave=ave+ai;a

47、ve=ave/n;/*FILL*/_;int main()float score30=90.5,72,80,61.5,55,aver;/*FILL*/aver=fun(_,5);printf( nAverage score is: %5.2fn,aver);return 0;【空1】 【學(xué)生答案】for(i=0;_;i+)【參考答案】ii=【空2】 【學(xué)生答案】_;【參考答案】return ave;=【空3】 【學(xué)生答案】aver=fun(_,5);【參考答案】score=【第四套】一 單選1 sizeof(float)是()。A、一個(gè)浮點(diǎn)表達(dá)式B、一個(gè)不合法的表達(dá)式C、運(yùn)算結(jié)果是一個(gè)整型表達(dá)

48、式。D、一種函數(shù)調(diào)用2 下列數(shù)據(jù)中屬于字符串常量的是( )。A、AB、ABCC、ABCD、ABC3 用下面的scanf函數(shù)輸入數(shù)據(jù),使得i=10,k=15選擇正確的鍵盤(pán)輸入方法( ).(用CR表示回車(chē),U表示空格)main()int i,k;scanf(i=%d,k=%d,&i,&k);A、i=10CRk=15CRB、i=10,k=15CRC、10U15CRD、10,15CR4 邏輯表達(dá)式33-!0的值為:( )A、1B、3C、0D、25 下列運(yùn)算符中是C語(yǔ)言關(guān)系運(yùn)算符的是()。A、&B、C、!=D、!6 語(yǔ)句while(!E);中的表達(dá)式!E等價(jià)于()。A、E=1B、E!=0C、E!=1D、

49、E=07 以下正確的描述是( ).A、只能在循環(huán)體內(nèi)和switch語(yǔ)句內(nèi)使用break語(yǔ)句B、continue語(yǔ)句的作用是終止整個(gè)循環(huán)的執(zhí)行C、從多層嵌套的外層循環(huán)中退出時(shí),只能使用goto語(yǔ)句D、在循環(huán)體內(nèi)使用break和continue語(yǔ)句的作用相同8 下面各語(yǔ)句中,能正確進(jìn)行賦字符串操作的語(yǔ)句是( ).A、char s15 =ABCDE;B、char s26=A,B,C,D,E;C、char st =ABCDE;D、char s5=A,B,C,D,E;9 若有說(shuō)明: int a34=0;則下面正確的敘述是()。A、數(shù)組a中每個(gè)元素均可得到初值0B、只有元素a00可得到初值0C、數(shù)組a中各

50、元素都可得到初值,但其值不一定為0D、此說(shuō)明語(yǔ)句不正確10 若有說(shuō)明 int a34;則a數(shù)組元素的非法引用是()。A、a13B、a04C、a02*1D、a4-2011 執(zhí)行下面程序后,輸出結(jié)果是()。main() int a,b,c;a=45,b=27,c=0;c=max(a,b);printf(%dn,c);int max(int x,int y) int z;if(xy) z=x;else z=y;return(z);A、72B、18C、27D、4512 以下正確的描述是:在C語(yǔ)言程序中()。A、函數(shù)的定義可以嵌套,但函數(shù)的調(diào)用不可以嵌套B、函數(shù)的定義不可以嵌套,但函數(shù)的調(diào)用可以嵌套C、

51、函數(shù)的定義和函數(shù)的調(diào)用均可以嵌套D、函數(shù)的定義和函數(shù)的調(diào)用均不可以嵌套13 在C語(yǔ)言的函數(shù)中,下列正確的說(shuō)法是()。A、形參可以是常量和變量B、可以有也可以沒(méi)有形參C、數(shù)組名不能作形參D、必須有形參14 設(shè)有宏定義#define PI 3.14 和#define S(r) PI*r*r,則S(2)的值為( ).A、6.28B、12.56C、3.14D、9.4215 int a10=1,2,3,4,5,6,7,8;int *p;p=&a5;p-3的值是()。A、4B、2C、不一定D、316 若有以下程序段,則使用錯(cuò)誤的選項(xiàng)是( ).struct studentint num;int age;st

52、ruct student stu3 =1001,20,1002,19,1004,20;main();struct student *p;p=stu;A、(*p).numB、(p+)-numC、p=&stu.ageD、p+CBBAC DABAB DBBBD C二 判斷1 #define 和printf 都不是C語(yǔ)句。2 格式字符%x用來(lái)以十六進(jìn)制形式輸出整數(shù).3 語(yǔ)句if(ab) printf(%d,a); else printf(%d,b);可以用條件表達(dá)式ab?a:b取代.4 邏輯表達(dá)式-5&!8的值為1.5 循環(huán)結(jié)構(gòu)中的continue語(yǔ)句是使整個(gè)循環(huán)終止執(zhí)行6 for循環(huán)語(yǔ)句不能用于循環(huán)

53、次數(shù)未知的情況下.7 引用數(shù)組元素時(shí),數(shù)組元素下標(biāo)必須是整型常量.8 數(shù)組的首地址一定是第一個(gè)數(shù)組元素的地址. 9 數(shù)組整體不參加數(shù)據(jù)處理(即不參加各種運(yùn)算),參加數(shù)據(jù)處理的只能是數(shù)組的元素.10 數(shù)組名作為函數(shù)調(diào)用時(shí)的實(shí)參,實(shí)際上傳遞給形參的是數(shù)組全部元素的值.11 在主函數(shù)中,必須要對(duì)被調(diào)用函數(shù)進(jìn)行類(lèi)型說(shuō)明,否則在編譯時(shí)會(huì)出現(xiàn)錯(cuò)誤.12 在一個(gè)函數(shù)中定義的靜態(tài)局部變量不能被另外一個(gè)函數(shù)所調(diào)用.13 計(jì)算機(jī)編譯系統(tǒng)對(duì)宏定義在編譯時(shí)進(jìn)行語(yǔ)法檢查.14 指向某一變量的指針,就是該變量的內(nèi)存地址.15 對(duì)于不同類(lèi)型的數(shù)據(jù),若想合成一個(gè)有機(jī)的整體,可以引用結(jié)構(gòu)體進(jìn)行定義。16 在打開(kāi)文件時(shí),必須說(shuō)明

54、文件的使用方式,r表示以只讀方式打開(kāi)一個(gè)文件.對(duì)對(duì)錯(cuò)錯(cuò)錯(cuò) 錯(cuò)錯(cuò)對(duì)對(duì)錯(cuò) 錯(cuò)對(duì)錯(cuò)對(duì)對(duì) 對(duì)三 填空1 int x=2;z=x+-1; 則x的值為_(kāi).2 設(shè)x=2.5,a=7,y=4.7,算術(shù)表達(dá)式x+a%3*(int)(x+y)%2/4的值為_(kāi).3 設(shè)x=62,表達(dá)式x=60&x278的值是_.5 字符串比較的庫(kù)函數(shù)是_,只寫(xiě)函數(shù)名即可.6 從函數(shù)的形式上看,函數(shù)分為無(wú)參函數(shù)和_兩種類(lèi)型.7 設(shè)有以下共用體類(lèi)型說(shuō)明和變量定義,在TC編譯環(huán)境下,變量a在內(nèi)存所占字節(jié)數(shù)是 _。union stud char num6; float s4; double ave; a,*p;8 在C語(yǔ)言中,根據(jù)要處理的文

55、件存儲(chǔ)的編碼形式,可以把文件分為ASCII文件和_文件.3 2.5 1 0 strcmp 有參函數(shù) 16 二進(jìn)制 四 程序設(shè)計(jì)1 /*-【程序設(shè)計(jì)】-功能:用函數(shù)求N個(gè)10,60上的整數(shù)中能被5整除的最大的數(shù),如存在則返回這個(gè)最大值,如果不存在則返回0。-*/#include stdio.h#include stdlib.h#define N 30int find(int arr,int n)int m=0;/*Begin*/* End */return(m);main()int aN,i,k;void TestFunc();for(i=0;iN;i+)ai=rand()%50+10;for(

56、i=0;iN;i+)printf(%5d,ai);if(i+1)%5=0) printf(n);k=find(a,N);if(k=0)printf(NO FOUNDn);elseprintf(the max is:%dn,k);TestFunc();void TestFunc()FILE *IN,*OUT;int n;int i5;int o;IN=fopen(in.dat,r);if(IN=NULL)printf(Read File Error);OUT=fopen(out.dat,w);if(OUT=NULL)printf(Write File Error);for(n=0;n5;n+)

57、fscanf(IN,%d,&in);o=find(i,5);fprintf(OUT,%dn,o);fclose(IN);fclose(OUT);【參考代碼】int i;for(i=0;im)m=arri;=2 /*-【程序設(shè)計(jì)】-功能:根據(jù)整型參數(shù)n,計(jì)算如圖公式的值。-*/#include stdio.h#include conio.hdouble fun(int n)/*Begin*/* End */main() int m;void TestFunc();printf(Enter m: );scanf(%d, &m);printf(nThe result is %fn, fun(m);T

58、estFunc(); void TestFunc()FILE *IN,*OUT;int s ;int t;double o;IN=fopen(in.dat,r);if(IN=NULL)printf(Read File Error);OUT=fopen(out.dat,w);if(OUT=NULL)printf(Write File Error);for(s=1;s=5;s+)fscanf(IN,%d,&t);o=fun(t);fprintf(OUT,%fn,o);fclose(IN);fclose(OUT);【參考代碼】double a=1;int i;for(i=1;in;i+)a=1.0/

59、(1+a);return a;=五 程序改錯(cuò)1 /*- 【程序改錯(cuò)】-功能:實(shí)現(xiàn)3行3列矩陣的轉(zhuǎn)置,即行列互換。-*/#include stdio.hvoid fun(int a33,int n)int i,j,t;for(i=0;in;i+)for(j=0;jn;j+)/*ERROR*/scanf(%d,aij);for(i=0;in;i+)for(j=0;jn;j+)printf(%4d,aij);printf(n);for(i=0;in;i+)/*ERROR*/for(j=0;jn;j+)/*ERROR*/aij=t;aij=aji;/*ERROR*/t=aji;for(i=0;in;i

60、+)for(j=0;jn;j+)printf(%4d,aij);printf(n);main()int b33;fun(b,3);【改錯(cuò)1】【參考答案】scanf(%d,&aij);scanf(%d,(*(a+i)+j);=【改錯(cuò)2】【參考答案】for(j=0;jj;j+)for(j=0;j=j;j+)for(j=i+1;jn;j+)for(j=i;jn;j+)for(j=0;j=j;j+)for(j=i+1;j=n-1;j+)for(j=i;j=n-i;j+)=【改錯(cuò)3】【參考答案】t=aij;=【改錯(cuò)4】【參考答案】aji=t;=2 /*- 【程序改錯(cuò)】-功能:從鍵盤(pán)輸入10個(gè)字符,統(tǒng)計(jì)其

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論