c語言練習(xí)題答案_第1頁
c語言練習(xí)題答案_第2頁
c語言練習(xí)題答案_第3頁
c語言練習(xí)題答案_第4頁
c語言練習(xí)題答案_第5頁
已閱讀5頁,還剩110頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、單項(xiàng)選擇=題號:8902當(dāng)x為偶數(shù)或奇數(shù)時(0除外),其值都為0的表達(dá)式是:()A、!x !=0B、x%2=0C、!(x%2)D、(x/2*2-x)=0答案:A題號:8074若a,b是int型變量,執(zhí)行以下語句后a的值是().for(b=1,a=1;b<=50;b+)if(a>=10)break;if(a%2=1)a+=5;continue;a -=3;A、10B、6C、7D、1答案:A題號:7764有以下程序:#include<stdio.h>void fun(int a,int b)int t;t=a;a=b;b=t;main()int c10=1,2,3,4,5,

2、6,7,8,9,0,i;for(i=0;i<10;i+=2)func(i,ci+1);for(i=0;i<10;i+)printf("%d,",ci);printf"n"程序的運(yùn)行結(jié)果是().A、0,1,2,3,4,5,6,7,8,9,B、1,2,3,4,5,6,7,8,9,0,C、2,1,4,3,6,5,8,7,0,9,D、0,9,8,7,6,5,4,3,2,1,答案:B題號:9539以下程序的輸出結(jié)果是void fun(flaot *a,float *b)float w;*a=*a+*a;w=*a;*a=*b;*b=w;main()flo

3、at x=2.0;y=3.0;float *px=&x,*py=&y;fun(px,py);printf("%2.0f,%2.0fn",x,y);A、4,3B、2,3 C、3,4D、3,2答案:C題號:9181閱讀下面程序段,則執(zhí)行后的結(jié)果為.#include"stdio.h"main()int m=4,n=2,k;k=fun(m,n);printf("%dn",k);fun(int m,int n)return m*m*m-n*n*n;A、56B、64C、0D、8答案:A判斷=題號:8630在C程序中,APH和aph

4、是兩個不同的變量答案:正確題號:8511putchar()函數(shù)參數(shù)可以是字符常量、字符變量、整形常量、整形變量和字符串.答案:錯誤填空=題號:5293一個C源程序中至少應(yīng)包括一個_。答案:空 1:main函數(shù) 【或】 主函數(shù)題號:9491將函數(shù)func的入口地址賦給指針變量p的語句是_.答案:空 1:p=func 【或】 p=func;程序設(shè)計(jì)=題號:10118/*-【程序設(shè)計(jì)】-功能:求出二維數(shù)組外圍元素之和,作為函數(shù)值返回。二 維數(shù)組的值在主函數(shù)中賦予。-*/#define M 4#define N 5#include "stdio.h"int fun(int aMN)

5、/*Begin*/* End */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 The Current Dir. It May

6、Be Changed");for(k=0;k<10;k+) for(i=0;i<M;i+) for(j=0;j<N;j+) fscanf(IN,"%d",&iINij);iOUT=fun(iIN);fprintf(OUT,"%dn",iOUT);fclose(IN);fclose(OUT);main()int aMN=1,3,5,7,9,2,4,6,8,10,2,3,4,5,6,4,5,6,7,8;int y;y=fun(a);printf("s=%dn",y);TestFunc();示例代碼:in

7、t s=0; int i,j; for(i=0;i<M;i+) s=s+ai0+aiN-1; for(j=1;j<N-1;j+) s=s+a0j+aM-1j; return s;題號:5500/*-【程序設(shè)計(jì)】-功能:實(shí)現(xiàn)兩個整數(shù)的交換。例如:給a和b分別輸入:60和65,輸入為:a=65 b=60-*/#include<stdio.h>#include<conio.h>void TestFunc();void fun(int *a,int *b) /*Begin*/ /* End */ void main() int a,b; printf("E

8、nter a,b:"); scanf("%d,%d",&a,&b); fun(&a,&b); printf("a=%d b=%dn",a,b); TestFunc();void TestFunc() FILE *IN,*OUT; int a,b,n; IN=fopen("in.dat","r"); if(IN=NULL) printf("Read File Error"); OUT=fopen("out.dat","w&qu

9、ot;); if(OUT=NULL) printf("Write File Error"); for(n=0;n<5;n+) fscanf(IN,"%d%d",&a,&b); fun(&a,&b); fprintf(OUT,"a=%d b=%dn",a,b); fclose(IN); fclose(OUT);示例代碼: int t; t=*a;*a=*b;*b=t;程序填空=題號:5080/*-【程序填空】-題目:以下函數(shù)用于求一個字符串的長度。-*/#include "stdio.h&

10、quot;int stringlen(char *p) int len=0; /*FILL*/ while(*p+) _; /*FILL*/ _; main() char s="abcdefg" printf("%d",stringlen(s);答案:位置 1:len+ 【或】 len=len+1位置 2:return len 【或】 return (len)題號:10774/*-【程序填空】-題目:計(jì)算某日是當(dāng)年的第幾天。-*/#include <stdio.h>struct int year; int month; int day;/*F

11、ILL*/_void main() int days; printf("請輸入日期(年、月、日):"); scanf("%d, %d, %d", &data.year, &data.month, &data.day); switch(data.month) case 1:days = data.day; break;/*FILL*/ case 2:days = data.day+_; break; case 3:days = data.day+59; break; case 4:days = data.day+90; break;

12、 case 5:days = data.day+120; break; case 6:days = data.day+151; break; case 7:days = data.day+181; break; case 8:days = data.day+212; break; case 9: days = data.day+243; break; case 10:days = data.day+273; break; case 11:days = data.day+304; break; case 12:days = data.day+334; break; /*FILL*/ if(dat

13、a.year%4=0&&data.year%100!=0_data.year%400=0) if(data.month>=3)/*FILL*/ _ printf("%d月%d日是%d年的第%d天.n", data.month, data.day, data.year, days);答案:位置 1:data;位置 2:31位置 3:|位置 4:days+; 【或】 +days; 【或】 days+=1; 【或】 days=days+1; 【或】 days=1+days;程序改錯=題號:9192/*- 【程序改錯】-題目:給定程序MODI1.C中函數(shù)fun

14、的功能是:先將在字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序連接到t串的后面。例如:當(dāng)s中的字符串為:"ABCDE"時,則t中的字符串應(yīng)為:"EDCBAABCDE"。-注意:不可以增加或刪除程序行,也不可以更改程序的結(jié)構(gòu)。-*/#include <conio.h>#include <stdio.h>#include <string.h> void fun (char *s, char *t)/*Error*/int i;sl = strlen(s);for (i=0; i<sl; i+)/*Erro

15、r*/ti = ssl-i;for (i=0; i<sl; i+)tsl+i = si;/*Error*/ t2*sl = "0"main() char s100, t100;clrscr();printf("nPlease enter string s:"); scanf("%s", s);fun(s, t);printf("The result is: %sn", t);getch();答案:位置 1:int i,sl;位置 2:ti = ssl-i-1;位置 3:t2*sl = '0'

16、【或】 t2*sl = 0;題號:5044/*- 【程序改錯】-題目:改正以下程序的函數(shù)體中不正確的語句。-注意:不可以增加或刪除程序行,也不可以更改程序的結(jié)構(gòu)。-*/#include "stdio.h"main() int i=8,a,b; unsigned long w=5; double x=1.42,y=5.3; x=x/(-3); /*ERROR*/ y=float(i); /*ERROR*/ y=y+x a+=a-=(b=4)*(a=3);答案:位置 1:y=(float)i; 【或】 y=i;位置 2:y=y+x;單項(xiàng)選擇=題號:4656經(jīng)過以下語句定義后,表

17、達(dá)式z+=x>y?+x:+y的值為()。 int x=1,y=2,z=3;A、3B、2C、5D、6答案:D題號:8552以下程序的運(yùn)行結(jié)果是(). #include<stdio.h>main()int a=3,b=4,c=8,d=4,m=1,n=3; printf("%dn",(m=a>b)&&(n=c>d); A、1B、3C、0D、2答案:C題號:10214有以下程序段:int j;floaty;char name50;scanf("%2d%f%s",&j,&y,name);當(dāng)執(zhí)行上述程序段

18、,從鍵盤上輸入555667777abc后,y的值為.A、55566.0B、566777.0C、566.0D、7777.0答案:C題號:10198下列敘述中正確的是().A、在switch語句中不一定使用break語句 B、break語句必須與switch語句中的case 配對使用C、在switch語句中必須使用defaultD、break語句只能用于switch語句答案:A題號:7542已定義char string20;使得string的內(nèi)容為"You are student"的正確輸入語句是().A、scanf("%c",&string);B、

19、gets(string);C、scanf("%s",&string);D、scanf("%s",string);答案:B判斷=題號:6999若有定義 int a10;則 for (i=0;i<=10;i+) ai=i;編譯時無語法錯誤.答案:正確題號:9695下列的語句是正確的:int *p;答案:正確填空=題號:4679C語言表達(dá)式!(3<6)|(4<9)的值是_.答案:空 1:1題號:7917已知有聲明"char ch, int a;",執(zhí)行語句"seanf("%c%d",&

20、amp;ch,&a);''時如果從鍵盤輸入的數(shù)據(jù)是"123",則變量a得到的值是(_)。答案:空 1:23程序設(shè)計(jì)=題號:5362/*-【程序設(shè)計(jì)】-功能:編寫函數(shù)對數(shù)組中的數(shù)據(jù)進(jìn)行從小到大的排序。-*/#include <stdlib.h>#include<stdio.h>void TestFunc();void sort(int a,int n) /*Begin*/ /* End */void main() int a16,i; for(i=0;i<16;i+) ai=rand()%10+15; for(i=0;i&

21、lt;16;i+) printf("%3d",ai); printf("n-n"); sort(a,16); for(i=0;i<16;i+) printf("%3d",ai); TestFunc();void TestFunc() FILE *IN,*OUT; int n; int i10; int o; IN=fopen("in.dat","r"); if(IN=NULL) printf("Read File Error"); OUT=fopen("out

22、.dat","w"); if(OUT=NULL) printf("Write File Error"); for(n=0;n<10;n+) fscanf(IN,"%d",&in); sort(i,10); for(n=0;n<10;n+) fprintf(OUT,"%dn",in); fclose(IN); fclose(OUT);示例代碼:int i,j,t; for(i=0;i<n-1;i+) for(j=0;j<n-1-i;j+) if(aj>aj+1) t=a

23、j; aj=aj+1; aj+1=t; 題號:10696/*編程題題目求一維數(shù)組中各元素的最大值、最小值。具體要求如下: 在主函數(shù)中定義一個數(shù)組 int data12:存儲數(shù)組值,其初值為2,1,4,45,23,33,-7,8,5,9,0,-4 ; 求出數(shù)組a中元素的最大值、最小值并輸出結(jié)果。本程序正確的輸出結(jié)果為:2 1 4 45 23 33 -7 8 5 9 0 -4max=45 min=-7 */#include<stdio.h>int main()int data12=2,1,4,45,23,33,-7,8,5,9,0,-4 ,max,min,i;FILE *outf; /

24、*系統(tǒng)判分使用*/for(i=0;i<12;i+)printf("%d ",datai);printf("n"); /* Begin */ /* End */printf("max=%d min=%dn",max,min);/*此處將結(jié)果輸出到文件"bc01.in",請勿改動,否則影響判分*/outf=fopen("bc01.in","w");for(i=0;i<12;i+)fprintf(outf,"%d ",datai);fprintf(o

25、utf,"n");fprintf(outf,"max=%d min=%dn",max,min);fclose(outf);return 0;示例代碼:max=data0;min=data0;for(i=1;i<12;i+) if(datai>max) max=datai; if(datai<min) min=datai;程序填空=題號:7305/*-【程序填空】-題目:以下程序的功能是刪除字符串中的指定字符,字符串和 要刪除的字符均由鍵盤輸入。-*/#include <stdio.h>void main() char str

26、80,ch; int i,k=0;/*FILL*/ gets(_); ch=getchar();/*FILL*/ for(i=0;_;i+) if(stri!=ch) /*FILL*/ _; k+; /*FILL*/ _; puts(str);答案:位置 1:str位置 2:stri!='0' 【或】 stri!=0 【或】 stri!=NULL 【或】 stri 【或】 *(str+i)!='0' 【或】 *(str+i)!=0 【或】 *(str+i)!=NULL 【或】 *(str+i)位置 3:strk=stri 【或】 *(str+k)=*(str+i

27、)位置 4:strk='0' 【或】 strk=0 【或】 strk=NULL 【或】 *(str+k)='0' 【或】 *(str+k)=0 【或】 *(str+k)=NULL題號:7927/*-【程序填空】-功能:輸出1到100之間每位數(shù)的乘積大于每位數(shù)的和的數(shù)。例如:數(shù)字26,數(shù)位上數(shù)字的乘積12大于數(shù)字之和8。-*/#include <stdio.h>void main() int n,k=1,s=0,m; for(n=1;n<=100;n+) k=1; /*FILL*/ s=_; m=n; /*FILL*/ _(m>0) k*=

28、m%10; s+=m%10; /*FILL*/ _; if(k>s) printf("%d ",n); 答案:位置 1:0位置 2:while位置 3:m=m/10 【或】 m/=10程序改錯=題號:8965/*- 【程序改錯】:只允許修改錯誤代碼,其他代碼不允許修改!-功能:根據(jù)整型形參m,計(jì)算如下公式的值: y=1/21/81/18.1/2m*m-*/#include "stdio.h"double fun(int m) /*ERROR*/ double y=0 double x; int i=1; /*ERROR*/ while( i<

29、m) x=1.0/(2*i*i); /*ERROR*/ y=+x; i+; return(y);void main() int n; printf("Enter n: "); scanf("%d", &n); printf("nThe result is %1fn", fun(n); 答案:位置 1:double y=0; 【或】 double y=0.0; 【或】 double y=.0; 【或】 double y=0.;位置 2:while(i<=m) 【或】 while(i<m+1)位置 3:y+=x; 【或

30、】 y=y+x; 【或】 y=x+y;題號:8944/*- 【程序改錯】-功能:給定n個實(shí)數(shù),輸出平均值,并統(tǒng)計(jì)在平均值以下(含平 均值)的實(shí)數(shù)個數(shù)。例如:n=6時,輸入23.5, 45.67, 12.1, 6.4,58.9, 98.4所得 平均值為40.828335,在平均值以下的實(shí)數(shù)個數(shù)應(yīng)為3。-*/int fun(float x,int n) int j,c=0; /*ERROR*/ float j=0; /*ERROR*/ for(j=0;j<=n;j+) xa+=xj; xa=xa/n; printf("ave=%fn",xa); /*ERROR*/ for

31、(j=0;j<=n;j+) if(xj<=xa) c+; /*ERROR*/ return xa;main() float x=23.5,45.67,12.1,6.4,58.9,98.4; printf("%dn",fun(x,6);答案:位置 1:float xa=0; 【或】 float xa=0.0;位置 2:for(j=0;j<n;j+) 【或】 for(j=0;n>j;j+) 【或】 for(j=0;n-1>=j;j+) 【或】 for(j=0;j<=n-1;j+)位置 3:for(j=0;j<n;j+) 【或】 for(

32、j=0;n>j;j+) 【或】 for(j=0;j<=n-1;j+) 【或】 for(j=0;n-1>=j;j+)位置 4:return c; 【或】 return (c);單項(xiàng)選擇=題號:6961下面程序的運(yùn)行結(jié)果是#include<stdio.h>main()int y=10;doy-;while(-y);printf("%dn",y-);A、1B、8C、0D、-1答案:C題號:6782有以下程序:#include<stdio.h>main()int i=0,a=0;while(i<20)for(;)if(i%5)=0)b

33、reak;else i-;i+=13;a+=i;printf("%dn",a);程序的輸出結(jié)果是().A、63B、62C、23D、36答案:D題號:7232有以下程序段:int n,t=1,s=0;scanf("%d",&n);dos=s+t;t=t-2;while(t!=n);為使程序段不陷入死循環(huán),從鍵盤鍵入的數(shù)據(jù)應(yīng)該是().A、任意正奇數(shù)B、任意負(fù)奇數(shù)C、任意負(fù)偶數(shù) D、任意正偶數(shù)答案:B題號:6790若i,j已定義成int型,則以下程序段中,內(nèi)循環(huán)體的總執(zhí)行次數(shù)是(). for(i=6;i>0;i-) for(j=0;j<4;

34、j+) A、30B、20C、24D、25答案:C題號:6898若有int i=0;,則以下程序段中,while 循環(huán)的循環(huán)次數(shù)是()while(i<10)if(i<1)continue;if(i=5)break;i+;A、6B、死循環(huán),不能確定次數(shù)C、1D、4答案:B判斷=題號:7186已知int k=0;則語句while(k=1)k+;將一次也不執(zhí)行.答案:錯誤題號:6987for循環(huán)的三個表達(dá)式都可以省略.答案:正確題號:7007對于for(表達(dá)式1;表達(dá)式2;表達(dá)式3)語句來說,continue語句意味著轉(zhuǎn)去執(zhí)行表達(dá)式2.答案:錯誤題號:6899循環(huán)體如果包含一個以上的語句,

35、應(yīng)該用圓括號括起來,以復(fù)合語句形式出現(xiàn).答案:錯誤填空=題號:6792下面程序的功能是從三個紅球、五個白球、六個黑球中任意取出八個球,且其中必須有白球,輸出所有可能的方案。請?zhí)羁铡?include<stdio.h>void main() int i,j,k; printf(n hong bai hei n); for(i=0;i<=3;i+) for(_; j<=5;j+) k=8-i-j; if(k<6) printf(%3d %3d %3d n,i,j,k)答案:空 1:j=1題號:6912以下程序段的輸出結(jié)果是_。int i=0, sum=1; do sum

36、 +=i+; while(i < 5); printf("%dn", sum);答案:空 1:11題號:7051已知int i,s=0;執(zhí)行以下程序段后的i的值是_.for(i=3;i<4;i+)s+=i;答案:空 1:4程序設(shè)計(jì)=題號:7213/*-【程序設(shè)計(jì)】-功能:能計(jì)算從1開始到n的自然數(shù)的和,n由鍵盤輸入, 并在main()函數(shù)中輸出。-*/#include <stdio.h>void bky(); int fun(int n) /*Begin*/ /* End */ main() int m; printf("Enter m:

37、"); scanf("%d", &m); printf("nThe result is %dn", fun(m); bky(); void bky() FILE *IN,*OUT; int t; int o; int c; 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(c=1;c<=5;c+) fscanf(IN,"%d",&t); o=fun(t); fprintf(OUT,"%dn",o); fclose(IN); fclose(OUT);示例代碼:int sum,i;sum =0;for(i=1;i<=n;i+)sum=sum+i;return(sum);程序填空=題號:7145/*-【程序填空】-功能:求下式的和1+1/2!

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論