版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、【第一套】一、單項選擇1下列數(shù)據(jù)中,為字符串常量的是()。A、AB、How do you do.C、$abcD、house 2以下所列的C語言常量中,錯誤的是( )。A、0 xFFB、1.2e0.5C、2LD、72 3以下程序的輸出結(jié)果是()。main()float x=3.6; int i; i=(int)x; printf(x=%f,i=%dn,x,i);A、x=3.600000,i=4B、x=3 i=3.600000C、x=3,i=3D、x=3.600000,i=3 4若k是整型,則以下程序段的執(zhí)行結(jié)果是:( ) k=-3; if(k=0) printf(#) else printf(&
2、);A、#B、有語法錯誤,無結(jié)果C、&D、#& 5若x=2,y=3則x|y的結(jié)果是( )。A、3B、0C、1D、2 6針對下列程序段回答問題( ).for(t=1;t=100;t+) scanf(%d,&x); if(x=0時什么也不輸出B、最多允許輸出100個非負(fù)整數(shù)C、printf函數(shù)永遠也不執(zhí)行D、當(dāng)x0時整個循環(huán)結(jié)束 7以下程序的執(zhí)行結(jié)果是( )。 main() int num = 0; while( num |-!5do-while循環(huán)由do開始,while結(jié)束,循環(huán)體可能一次也不做。6continue語句用于終止循環(huán)體的本次執(zhí)行.7若有定義和語句:int a33=3,5,8,9,1
3、2,35,i,sum=0;for(i=0;i1,x的值 為_.5連接字符串的函數(shù)是_,只寫函數(shù)名即可.6函數(shù)不可以進行嵌套定義,但可以進行嵌套_.7設(shè)有以下結(jié)構(gòu)類型說明和變量定義,則變量b在內(nèi)存所占字節(jié)數(shù)是 _。struct stud short int age; char num3; float s2; double ave; b,*p;8若有fp=fopen(a1.dat,r+)打開文件語句,這個文件的數(shù)據(jù)是以_的形式存放在內(nèi)存中,該文件的使用方式為讀/_。 5.6 3 -60 1 strcat 調(diào)用 21 ASCII碼或ASCII 文本 四、程序設(shè)計1/*-【程序設(shè)計】- 功能:輸入n個
4、數(shù),并求出小于平均值的數(shù)的個數(shù)。 -*/ #include stdio.h int 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,*OUT; int n; int i10; int o; IN=fopen(in
5、.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=sum*1.0/n; for(i=0;
6、iai) k+;return(k); = 2/*-【程序設(shè)計】- 功能:從字符串中刪除指定的字符。同一字母的大、小寫 按不同字符處理。例如:若程序執(zhí)行時輸入字符串為:turbocandborlandc+ 從鍵盤上輸入字符:n,則輸出后變?yōu)椋簍urbocadbo rladc+,如果輸入的字符在字符串中不存在,則字 符串照原樣輸出。 -*/#include stdio.h void fun(char s,char c) /*Begin*/ /* End */ void TestFunc() FILE *IN,*OUT; char i200; /*char o200;*/ IN=fopen(in.d
7、at,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(輸入一個字符:); scanf(%c,&ch); fun(str,ch); pri
8、ntf(str=%sn,str); TestFunc(); 【參考代碼】 char *q=s; for(; *q; q+) if(*q != c) *(s+)=*q; *s=0; = 五、程序改錯1/*-【程序改錯】-功能:依次取出字符串中所有數(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; /*E
9、RROR*/ sj=0; main() char item80; printf(nEnter a string: ); gets(item); printf(nnThe string is: %sn,item); fun(item); printf(nnThe string of changing is: %sn,item); 【改錯1】【學(xué)生答案】void fun(char s) 【參考答案】void fun(char *s)void fun(char s)void fun(char s80) = 【改錯2】【學(xué)生答案】sj=si; 【參考答案】sj+=si; sj=si; j+; = 【改
10、錯3】【學(xué)生答案】sj=0; 【參考答案】sj=0; = /*- 【程序改錯】- 功能:讀入一個整數(shù)m( 5m20 ),函數(shù)rnd獲得m個隨機整數(shù),函數(shù)sortpb將這m個隨機整數(shù)從小到大排序。例如:若輸入整數(shù)7,則應(yīng)輸出:3 10 17 28 32 36 47。 -*/ #include conio.h#include stdio.h void 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 (
11、 p = j ) t = aj; aj = ap; ap = t; void double 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 (
12、 ap ai ) p = i;if ( ai ap ) p = i; = 【改錯3】【學(xué)生答案】if ( p = j ) 【參考答案】if ( p != j ) = 六、程序填空1/*-【程序填空】-功能:計算矩陣a的下三角(包含主對角線)元素之積,矩陣的行、列數(shù)和元素值均由鍵盤輸入。-*/ #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=
13、0;_;j+)/*FILL*/ s=_; printf(%ldn,s);return 0; 【空1】 【學(xué)生答案】for(_) 【參考答案】i=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個數(shù)中找出其中的最大值,完善程序。 -*/#include stdio.hmain() int a10,i,*pmax; for(i=0;i10;i+) scanf(%d,&ai)
14、; /*FILL*/ pmax= _ ; for(i=1;i*pmax) pmax=&ai; /*FILL*/ printf(%d, _ ); 【空1】【學(xué)生答案】pmax= _ ; 【參考答案】pmax=&a0pmax=a = 【空2】【學(xué)生答案】printf(%d, _ ); 【參考答案】*pmax = 【第二套】一、單項選擇1字符串efg的長度是:( ).A、3B、11C、7D、5 2設(shè)變量a是整型,f是實型,i是雙精度型,則表達式10+a+i*f值的數(shù)據(jù)類型為()。A、doubleB、不確定C、intD、float 3下列語句的結(jié)果是()。main() int j; j=3;print
15、f(%d,+j);printf(%d,j+);A、3,3B、4,4C、3,4D、4,3 4邏輯表達式!(2-1)&x|0的值是( )A、1B、0C、3D、2 5int a=1,b=2,c=3; if(ab)a=b; if(ac)a=c; 則a的值為()。A、3B、2C、1D、不一定 6執(zhí)行語句 for(i=1;i+4;); 后變量 i 的值是()。A、3B、5C、4D、不定 7以下正確的描述是( ).A、只能用continue語句來終止本次循環(huán)B、switch語句中不能出現(xiàn)continue語句C、在循環(huán)中break語句不能獨立出現(xiàn)D、goto語句只能用于退出多層循環(huán) 8下面合法的語句定義是(
16、).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存儲在數(shù)組中的是()。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語言中,一維數(shù)組的定義方式為:類型說明符數(shù)組名()。A、整型常量或整型表達式B、正整型常量表達式C、整型表達式D、常量表達式 11在定義全局變量和局部靜態(tài)變量的同時賦值,變量的初始化在()時確定的.A、運行B、編輯
17、C、編譯D、調(diào)試 12關(guān)于建立函數(shù)的目的,以下正確的說法是()。A、提高程序的可讀性B、減少程序文件所占內(nèi)存C、減少程序的篇幅D、提高程序的執(zhí)行效率 13以下函數(shù)調(diào)用語句中實參的個數(shù)是()。 func(e1,e2),(e3,e4,e5);A、3B、5C、語法錯誤D、2 14設(shè)有宏定義#define SUB(x,y) (x)*y,且a=3,b=4,則 SUB(a+,b+) 的值為( ).A、13B、16C、20D、12 15變量p為指針變量,若p=&a,下列寫法不正確的是()。A、*(p+)=a+B、&*p=&aC、(*p)+=a+D、*&a=a 16下列程序正確的運行結(jié)果為( ).#inclu
18、demain()union uchar *name;int age;int income; s;=WANGLING;s.age=28;s.income=1000;printf(%dn, s.age);A、8B、28C、1000D、不確定 17定義my_file 為文件型指針變量,使用fopen只讀方式打開一個已存在的二進制文件,以下正確的調(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+); CA
19、BBC BAABB CADDA CC二、判斷1若i =3,則printf(%d,-i+);輸出的值為 -4。2格式字符%x用來以八進制形式輸出整數(shù).3設(shè)u=1,v=2,w=3,則邏輯表達式u|v-w&v+w的值為0.4已知a=4,b=2,c=3,d=5,表達式ab?a:cd?c:d的值為3.5break語句能夠終止當(dāng)前進行的多層循環(huán).6break語句不能終止正在進行的多層循環(huán).7若有定義和語句:int a33=3,5,8,9,12,35,i,sum=0;for(i=0;iz&y=z的值為_.4int x=2,y=3,z=4; 則表達式x+y&(x=y)的值為_.5C語言中,二維數(shù)組在內(nèi)存中的存
20、放方式為按_優(yōu)先存放.6函數(shù)調(diào)用時的實參和形參之間的數(shù)據(jù)是單向的_傳遞.7結(jié)構(gòu)體是不同數(shù)據(jù)類型的數(shù)據(jù)集合,作為數(shù)據(jù)類型, 必須先說明結(jié)構(gòu)體_,再說明結(jié)構(gòu)體變量.8調(diào)用 fopen 函數(shù)打開一文本文件,在使用方式這一項中, 為輸入而打開需填入_. 1或1.0或1. 4 0 1 行 值 類型 r+或r 四、程序設(shè)計1/*-【程序設(shè)計】- 功能:求出二維數(shù)組外圍元素之和,作為函數(shù)值返回。二 維數(shù)組的值在主函數(shù)中賦予。 -*/#define M 4#define N 5#include stdio.h int fun(int aMN) /*Begin*/ /* End */ main() int aM
21、N=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,*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
22、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,iOUT);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è)計】- 功能:找出一個大于給定整數(shù)且緊隨這個整數(shù)的素數(shù),并
23、 作為函數(shù)值返回。 -*/ #include stdio.h#includeconio.h int fun(int n) /*Begin*/ /* End */ void TestFunc() FILE *IN,*OUT; int s ; int t; 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(s=1;s=5;s+) fscanf(IN,%d,&t); o=fun(t); fpri
24、ntf(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+)if(i%k=0)break;if(k=i)return(i); = 五、程序改錯1/*- 【程序改錯】- 功能:一個5位數(shù),判斷它是不是回文數(shù)。即12321是回文數(shù),個 位與萬位相同,十位與千位相同。 -*/ #include stdio.h
25、main( ) /*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); else printf(this number is not a huiwenn);【改錯1】【學(xué)生答案】long ge,shi,qian;wan,x; 【參考答案】long ge,shi,qian,wan,x; = 【改錯2
26、】【學(xué)生答案】wan=x%10000; 【參考答案】wan=x/10000; = 【改錯3】【學(xué)生答案】if (ge=wan|shi=qian) 【參考答案】if (ge=wan&shi=qian)if (shi=qian&ge=wan) = 2/*- 【程序改錯】- 功能:用下面的和式求圓周率的近似值。直到最后一項的絕對值 小于等于0.0001。/4= 1- 1/3 + 1/5 - 1/7 . -*/#include stdio.h/*ERROR*/#include math void fun() float s=0,t=1,i=1; /*ERROR*/ int p=1; /*ERROR*/
27、 while(fabs(t)=1e-4) s=s+t; p=-p; i=i+2; t=p/i; /*ERROR*/ printf(pi=%dn,s*4); main() fun(); 【改錯1】【學(xué)生答案】#include math 【參考答案】#include math.h#include = 【改錯2】【學(xué)生答案】int p=1; 【參考答案】float p=1;float p=1.0;double p=1;double 1.0; = 【改錯3】【學(xué)生答案】while(fabs(t)1e-4)while(0.0001fabs(t)while(1e-40.0001) = 【改錯4】【學(xué)生答案
28、】printf(pi=%dn,s*4); 【參考答案】printf(pi=%fn,s*4);printf(pi=%lfn,s*4); = 六、程序填空1/*-【程序填空】- 功能:計算并輸出500以內(nèi)最大的10個能被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+k; mc+; k-; /*FILL*/ _;main ( ) printf(%dn, fun (500); 【空1
29、】 【學(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的功能是計算x2-2x+6,主函數(shù)中將調(diào)用fun函數(shù)計算:y1=(x+8)2-2(x+8)+6y2=(sin(x)2-2sin(x)+6請?zhí)羁铡?*/#include #in
30、clude 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】 【學(xué)生答案】y2=fun( _); 【參考答案】s
31、in(x) = 【第三套】一、單項選擇1以下程序段 char *alp=ABC,DEF,GHI; int j; puts(alp1); 的輸出結(jié)果是()。A、DB、AC、BD、DEF 2下列表達式中,可作為C合法表達式的是()。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=-10.23C、5.78,-10.2
32、3D、x=UUUU5.78,y=UU-10.23 4當(dāng)x為偶數(shù)或奇數(shù)時(0除外),其值都為0的表達式是:( )A、(x/2*2-x)=0B、x%2=0C、!x!=0D、!(x%2) 5下列運算符優(yōu)先級最低的是( ).A、=B、+C、!D、& 6設(shè)有如下程序段: int k=10; while(k=0) k-;則下述說明中正確的是( ).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)外的語句是( )。A、continue語句B、空語句C、break語句D、return語句 8以下對一維整型數(shù)組a的正確說明是()。A、int a(10)
33、;B、int n; scanf(%d,&n); int an;C、int n=10,an;D、#define SIZE 10 (換行) int aSIZE; 9以下定義語句中,錯誤的是()。A、int n=5,an;B、int a=1,2;C、char s10=test;D、char *a3; 10下面敘述中不正確的是( ).A、可以對字符型數(shù)組進行整體輸入和輸出.B、不可以對浮點型數(shù)組進行整體輸入和輸出.C、可以對整型數(shù)組進行整體輸入和輸出.D、字符型數(shù)組可以存放字符串. 11函數(shù)定義時的參數(shù)為形參,調(diào)用函數(shù)時所用的參數(shù)為實參,則下列描述正確的是( ).A、實參與形參是雙向傳遞B、形參可以是
34、表達式C、形參和實參可以同名D、實參類型一定要在調(diào)用時指定 12以下錯誤的描述是:函數(shù)調(diào)用可以()。A、出現(xiàn)在執(zhí)行語句中B、做為一個函數(shù)的實參C、出現(xiàn)在一個表達式中D、做為一個函數(shù)的形參 13以下不正確的說法是:C語言規(guī)定()。A、實參可以是常量,變量或表達式B、實參可以為任何類型C、形參可以是常量,變量或表達式D、形參應(yīng)與其對應(yīng)的實參類型一致 14下列形式,不屬于編譯預(yù)處理命令的是( ).A、#ifdef MB、#undef MC、#if (M1)D、while (M1) 15下面判斷正確的是()。A、char c4=abc,d4=abc;等價于 char c4=d4=abc;B、char
35、str10=china;等價于char str10;str=china;C、char *a=china;等價于 char *a;*a=china;D、char *s=china;等價于 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已正確定義并指向某個文件,當(dāng)未遇到該文件結(jié)束標(biāo)志時函數(shù)feof(fp)的值為()。A、-1
36、B、1C、一個非0值D、0 DDACA ACDAC CDCDD DD 二、判斷1如果有一個字符串,其中第十個字符為n,則此字符串的有效字符為9個2格式字符%o用來以十六進制形式輸出整數(shù)3已知a=3,b=4,c=5,則邏輯表達式!(ab) & !c|1的值為1.4已知x=2,y=2, 執(zhí)行分支語句 if(x=y) y=1; else y=-1;后,=-1.5continue語句對于while和do-while循環(huán)來說,意味著轉(zhuǎn)去計算While表達式.6在do-while循環(huán)中,根據(jù)情況可以省略while.7對于字符數(shù)為n個的字符串,其占用的內(nèi)存為n+1個字節(jié)空間.8puts 函數(shù)用來輸出一個字符
37、.9引用數(shù)組元素時,下標(biāo)可以是整型表達式或整型常量.10函數(shù)調(diào)用結(jié)束后,靜態(tài)局部變量所占用的空間被釋放.11在一個函數(shù)中定義的靜態(tài)局部變量可以被另一個函數(shù)調(diào)用.12當(dāng)全局變量與局部變量同名時,在局部變量的作用域范圍之內(nèi),全局變量起作用.13計算機編譯系統(tǒng)對宏定義在編譯時進行語法檢查.14若定義 int array5 , *p; 則賦值語句 p=array;是正確的.15共同體變量所占的內(nèi)存長度等于最長的成員的長度。16C語言中,打開一個文件就意味著產(chǎn)生了一個文件. 錯錯對錯對 錯對錯對錯 錯錯錯對對 錯 三、填空1設(shè)x的值為15,n的值為2,則表達式x%=(n+=3)運算后x的值是_.2已知a
38、=-13,b=6, a%b的十進制數(shù)值為_.3已知a=12,寫出表達式 0a&a5)?0:1; 執(zhí)行后整型變量 a 的值是_.5C語言中,數(shù)組名是一個不可變的_常量,不能對它進行加減和賦值運算.6C語言中一個函數(shù)由函數(shù)首部和_兩部分組成.7設(shè)有以下共用體類型說明和變量定義,則變量c在內(nèi)存所占字節(jié)數(shù)是 _。union stud short int num; char name10; float score5; double ave; c;8在C語言中,關(guān)閉文件即是文件指針不再指向該_. 0 -1 0 1 指針或地址 函數(shù)體 20 文件 四、程序設(shè)計1/*-【程序設(shè)計】- 功能:計算并輸出給定整數(shù)
39、n的所有因子之和(不包括1與 自身)。注意:n的值不大于1000。例如:n的值為855時,應(yīng)輸出704。 -*/ #include stdio.h int 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 Verif
40、y The Current Dir. It May 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è)計】-功能:刪去一維數(shù)組中所有重復(fù)的數(shù),只保留不同的數(shù)。數(shù)組中的數(shù)已按由小到大的順序排列,函數(shù)返回刪除后數(shù)
41、組中數(shù)據(jù)的個數(shù)。例如:一維數(shù)組中的數(shù)據(jù)是: 2 2 2 3 4 4 5 6 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。注意:請勿改動主函數(shù)main和其它函數(shù)中的任何內(nèi)容。-*/#include stdio.h#define N 80 int 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 d
42、ata:n); for(i=0;in;i+) printf(%3d,ai); n=fun(a,n); 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
43、File Error); fscanf(IN,%d,&n); for(i=0;in;i+) fscanf(IN,%d,&ai); n=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; = 五、程序改錯1/*-【程序改錯】-函數(shù)fun的功能是:求1到20的階乘的和。-*/#include stdio.hmain () int n,j; float s=
44、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+t=s; printf(jiecheng=%fn,s); 【改錯1】【學(xué)生答案】s=1; 【參考答案】 t=1;t=1.0; = 【改錯2】【學(xué)生答案】t=t*n; 【參考答案】t= t * j ;t*=j;t=j*t; = 【改錯3】【學(xué)生答案】s+t=s; 【參考答案】s= s + t ;s+=t;s=t+s; = 2/*- 【程序改錯】- 功能:實現(xiàn)兩個字符串的連接。例如:輸入dfdfqe和12345時,則輸出dfdf
45、qe12345. -*/ #includestdio.hmain() char s180,s280; void scat(char s1,char s2); gets(s1); gets(s2); scat(s1,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;【改錯1】【學(xué)生答案】while(s1i= =0) i+; 【參考答案】whil
46、e(s1i!=0)i+;while(s1i)i+;while(s1i!=NULL)i+;while(s1i!=0)i+; = 【改錯2】【學(xué)生答案】while(s2j= =0) 【參考答案】while(s2j!=0)while(s2j)while(s2j!=NULL)while(s2j!=0) = 【改錯3】【學(xué)生答案】s2j=s1i; 【參考答案】s1i=s2j; = 【改錯4】【學(xué)生答案】s2j=0; 【參考答案】s1i=0;s1i=NULL;*(s1+i)=0;s1i=0; = 六、程序填空1/*-【程序填空】- 功能:打印以下圖形。 * * * * * -*/#include stdi
47、o.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*/ _; 【空1】 【學(xué)生答案】for(j=i; _;j+) 【參考答案】jjjjj5+i = 【空2】 【學(xué)生答案】for(_;i5;i+) 【參考答案】i=0 = 【空3】 【學(xué)生答案】printf(%c, _ ); 【參考答案】aij = 【空4】 【學(xué)生答案】_; 【參考答案】printf(n
48、) = /*-【程序填空】 -功能:計算n門課程的平均分。例如:若有5門課程的成績是: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;ave=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);
49、return 0; 【空1】 【學(xué)生答案】for(i=0;_;i+) 【參考答案】ii = 【空2】 【學(xué)生答案】_; 【參考答案】return ave; = 【空3】 【學(xué)生答案】aver=fun(_,5); 【參考答案】score = 【第四套】一 單選1 sizeof(float)是()。A、一個浮點表達式B、一個不合法的表達式C、運算結(jié)果是一個整型表達式。D、一種函數(shù)調(diào)用2 下列數(shù)據(jù)中屬于字符串常量的是( )。A、AB、ABCC、ABCD、ABC3 用下面的scanf函數(shù)輸入數(shù)據(jù),使得i=10,k=15選擇正確的鍵盤輸入方法( ).(用CR表示回車,U表示空格)main()int i,
50、k; scanf(i=%d,k=%d,&i,&k); A、i=10CRk=15CRB、i=10,k=15CRC、10U15CRD、10,15CR4 邏輯表達式33-!0的值為:( )A、1B、3C、0D、25 下列運算符中是C語言關(guān)系運算符的是()。A、&B、C、!=D、!6 語句while(!E);中的表達式!E等價于()。A、E=1B、E!=0C、E!=1D、E=07 以下正確的描述是( ).A、只能在循環(huán)體內(nèi)和switch語句內(nèi)使用break語句B、continue語句的作用是終止整個循環(huán)的執(zhí)行C、從多層嵌套的外層循環(huán)中退出時,只能使用goto語句D、在循環(huán)體內(nèi)使用break和conti
51、nue語句的作用相同8 下面各語句中,能正確進行賦字符串操作的語句是( ).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 若有說明: int a34=0;則下面正確的敘述是()。A、數(shù)組a中每個元素均可得到初值0B、只有元素a00可得到初值0C、數(shù)組a中各元素都可得到初值,但其值不一定為0D、此說明語句不正確10 若有說明 int a34;則a數(shù)組元素的非法引用是()。A、a13B、a04C、a02*1D、a4-2011 執(zhí)行下面程序后,輸出結(jié)果是()。main() int a,b,c
52、; 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語言程序中()。A、函數(shù)的定義可以嵌套,但函數(shù)的調(diào)用不可以嵌套B、函數(shù)的定義不可以嵌套,但函數(shù)的調(diào)用可以嵌套C、函數(shù)的定義和函數(shù)的調(diào)用均可以嵌套D、函數(shù)的定義和函數(shù)的調(diào)用均不可以嵌套13 在C語言的函數(shù)中,下列正確的說法是()。A、形參可以是常量和變量B、可以有也可以沒有形參C、數(shù)組名不能作形參D、必須有形參14 設(shè)有宏定義#de
53、fine 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 若有以下程序段,則使用錯誤的選項是( ).struct studentint num;int age;struct student stu3 =1001,20,1002,19,1004,20;main();struct student *p;p=stu;A、(*p).numB、(p+)-numC、p=&stu.ageD、p+
54、 CBBAC DABAB DBBBD C 二 判斷1 #define 和printf 都不是C語句。2 格式字符%x用來以十六進制形式輸出整數(shù).3 語句if(ab) printf(%d,a); else printf(%d,b);可以用條件表達式ab?a:b取代.4 邏輯表達式-5&!8的值為1.5 循環(huán)結(jié)構(gòu)中的continue語句是使整個循環(huán)終止執(zhí)行6 for循環(huán)語句不能用于循環(huán)次數(shù)未知的情況下.7 引用數(shù)組元素時,數(shù)組元素下標(biāo)必須是整型常量.8 數(shù)組的首地址一定是第一個數(shù)組元素的地址. 9 數(shù)組整體不參加數(shù)據(jù)處理(即不參加各種運算),參加數(shù)據(jù)處理的只能是數(shù)組的元素.10 數(shù)組名作為函數(shù)調(diào)用
55、時的實參,實際上傳遞給形參的是數(shù)組全部元素的值.11 在主函數(shù)中,必須要對被調(diào)用函數(shù)進行類型說明,否則在編譯時會出現(xiàn)錯誤.12 在一個函數(shù)中定義的靜態(tài)局部變量不能被另外一個函數(shù)所調(diào)用.13 計算機編譯系統(tǒng)對宏定義在編譯時進行語法檢查.14 指向某一變量的指針,就是該變量的內(nèi)存地址.15 對于不同類型的數(shù)據(jù),若想合成一個有機的整體,可以引用結(jié)構(gòu)體進行定義。16 在打開文件時,必須說明文件的使用方式,r表示以只讀方式打開一個文件. 對對錯錯錯 錯錯對對錯 錯對錯對對 對 三 填空1 int x=2;z=x+-1; 則x的值為_.2 設(shè)x=2.5,a=7,y=4.7,算術(shù)表達式x+a%3*(int)
56、(x+y)%2/4的值為_.3 設(shè)x=62,表達式x=60&x278的值是_.5 字符串比較的庫函數(shù)是_,只寫函數(shù)名即可.6 從函數(shù)的形式上看,函數(shù)分為無參函數(shù)和_兩種類型.7 設(shè)有以下共用體類型說明和變量定義,在TC編譯環(huán)境下,變量a在內(nèi)存所占字節(jié)數(shù)是 _。union stud char num6; float s4; double ave; a,*p; 8 在C語言中,根據(jù)要處理的文件存儲的編碼形式,可以把文件分為ASCII文件和_文件. 3 2.5 1 0 strcmp 有參函數(shù) 16 二進制 四 程序設(shè)計1 /*-【程序設(shè)計】- 功能:用函數(shù)求N個10,60上的整數(shù)中能被5整除的最大
57、的數(shù),如存在則返回這個最大值,如果不存在則 返回0。 -*/#include stdio.h#include stdlib.h#define N 30 int 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(i=0;iN;i+) printf(%5d,ai); if(i+1)%5=0) printf(n); k=find(a,N); if(k=0) printf(NO FOUNDn
58、); else printf(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+) fscanf(IN,%d,&in); o=find(i,5); fprintf(OUT,%dn,o); fclose(IN); fclo
59、se(OUT); 【參考代碼】 int i; for(i=0;im) m=arri; =2 /*-【程序設(shè)計】- 功能:根據(jù)整型參數(shù)n,計算如圖公式的值。 -*/ #include stdio.h#include conio.h double fun(int n) /*Begin*/ /* End */ main() int m; void TestFunc(); printf(Enter m: ); scanf(%d, &m); printf(nThe result is %fn, fun(m); TestFunc(); void TestFunc() FILE *IN,*OUT; int
60、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/(1+a);return a; = 五 程序改錯1 /*
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年數(shù)碼相框項目資金籌措計劃書代可行性研究報告
- 小寒節(jié)氣研究報告模板
- 山西財經(jīng)大學(xué)華商學(xué)院《知識表示與處理》2023-2024學(xué)年第一學(xué)期期末試卷
- 2023年壓敏熱熔膠項目融資計劃書
- 項目 勞務(wù)派遣合同范例
- 急性髓系白血病護理查房
- 車牌購買合同范例
- 山東藥品食品職業(yè)學(xué)院《國際商法(含海商法)》2023-2024學(xué)年第一學(xué)期期末試卷
- 山東信息職業(yè)技術(shù)學(xué)院《信息工程專業(yè)導(dǎo)論》2023-2024學(xué)年第一學(xué)期期末試卷
- 教師如何提高教學(xué)的效果
- 國有資產(chǎn)委托管理協(xié)議書范本
- 醫(yī)療衛(wèi)生部門傳染病轉(zhuǎn)診流程
- 危重患者氣道管理
- 探索·鄱陽湖智慧樹知到期末考試答案章節(jié)答案2024年江西師范大學(xué)
- 2024年天津城市運營發(fā)展有限公司招聘筆試沖刺題(帶答案解析)
- 班級預(yù)防校園欺凌排查表
- B737NG 機型執(zhí)照試題集
- 手術(shù)室組長競聘演講
- 高中體育-籃球-單手肩上投籃教學(xué)設(shè)計學(xué)情分析教材分析課后反思
- 中國腫瘤整合診治指南(CACA)-胃癌智慧樹知到期末考試答案章節(jié)答案2024年溫州醫(yī)科大學(xué)
- 市場營銷學(xué)實踐總結(jié)
評論
0/150
提交評論