大學(xué)C語言期末考試練習(xí)題(帶詳解答案)_第1頁
大學(xué)C語言期末考試練習(xí)題(帶詳解答案)_第2頁
大學(xué)C語言期末考試練習(xí)題(帶詳解答案)_第3頁
大學(xué)C語言期末考試練習(xí)題(帶詳解答案)_第4頁
大學(xué)C語言期末考試練習(xí)題(帶詳解答案)_第5頁
已閱讀5頁,還剩50頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

一、1(A2.CCA)程序中第一條可執(zhí)行語 B)程序中第一個函C)程序中的main函 D)包含文件中的第一個函3、以下說法中正確的是( BCmain函數(shù)中定義C、Cmain()函數(shù)開始執(zhí)行()下列關(guān)于C語言的說法錯誤的是(B CCmain D.intt5~8題為相同類型題“-”(1C語言用戶標識符中合法的是(B (2(3D中的“-”不滿足(1下列四組選項中,正確的C語言標識符是( A) C) D)“%”(18、下列四組字符串中都可以用作C語言程序中的標識符的是(AA、 B、 D、 (1C語言中的簡單數(shù)據(jù)類型包括 在C語言程序中,表達式5%2的結(jié)果是 %為求余運算符,該運算符只能對整型數(shù)據(jù)進行運算。且符號與被模數(shù)相同。5%2=1;2)=1(-1(-inta=3,b=4;則條件表達式"a<ba:b"的值是A B) C) D)1成立,則選擇計算表達式22的值作為整個大表達式的值;此題中的a<b1,a2,ba3,b4。a<b122a中的值,并3若intx=2,y=3,z=4則表達式x<z?y:z的結(jié)果是( 13.C語言中,關(guān)系表達式和邏輯表達式的值是( A)B0C)D)T’或下面 14~16題為同一類型A,113為兩個整數(shù),11/33.666666的小數(shù)部11/3=3.B,11.0為實數(shù),333.0,轉(zhuǎn)B11.0/3=3.666666B同選項D,首先計算11.0/3,其計算過程、結(jié)果與選項B同,得到3.666666;再計算設(shè)整型變量a=2,則執(zhí)行下列語句后,浮點型變量b的值不為0.5的是( 若“intn;floatf=13.8;”,則執(zhí)行“n=(int)f%3”后,n的值是 13%31,再將結(jié)果賦給變量n,因此n1以下對一維數(shù)組a的正確說明是 chara(10; B)intC)int P143~144,一維數(shù)組的定義、初始化類型符數(shù)組名[常量表達式]長度(數(shù)組中包含元素的個數(shù)1開始計數(shù)。A,常量表達式只能放在中括號[]中以下能對一維數(shù)組a進行初始化的語句是: A.int B.intC.int D.intP145,一維數(shù)組的定義、初始化B,D中A,數(shù)組可以看做是若干個相同數(shù)據(jù)類型元素的有序集合,因此以集合的形式對其初始化,使用{}對其初始化,選項A用了(). int B)int D)#defineN10inta[N];20、已知 a[10];則對a數(shù)組元素的正確引用是( B、 D、inta[10]表示定義了一個包含10個整型數(shù)據(jù)的數(shù)組a,數(shù)組元素的邏輯地址下標范圍為0~9a[0]表示組中第1個元素;a[1]2個元素;a[2]表示組中第3素a[9]10個元素Aa的邏輯地址下標范圍;B,邏輯地址下標只能為整數(shù)[] int a[a[i]]a[i]i=10,因此a[i]a[10].a[10]9.因此a[a[i]]a[9]a[9]6.因此a[9]6若有說明:inta[][3]={{1,2,3},{4,5},{6,7}};則數(shù)組a的第一維的大小為:( D.5 D)36對二維數(shù)組的正確定義是( P149~152,二維數(shù)組的定義、初始化類型符數(shù)組名[常量表達式][常量表達式]1開始計數(shù)。A,B,都省略了列數(shù)inta[][ B.inta[2][C.inta[] D.int已知inta[3][4];則對數(shù)組元素引用正確的是 P150,數(shù)組元素的引用數(shù)組名[下標][下標]P149a0~2;a0~3;A,列邏輯地址下標超過范圍 B)return語句中的表達式類C)D)C語言中,函數(shù)的數(shù)據(jù)類型是指AA函數(shù)返回值的數(shù)據(jù)類 B.函數(shù)形參的數(shù)據(jù)類C調(diào)用該函數(shù)時的實參的數(shù)據(jù)類 在函數(shù)調(diào)用時,以下說法正確的是( 在C語言中,表示靜態(tài)存儲類別的關(guān)鍵字是: B)register C)static D)extern29.未指定存儲類別的變量,其隱含的存儲類別為(A {intcharname[];floatscore;則下面的敘述不正確的是Dstructstudentnumscore {intyear;intmonth;intday;則下面的敘述不正確的是 structdateyear,day 以下對結(jié)構(gòu)變量stul中成員age的非法引用是 structstudent{intint B) C)p- D)strucksk inta;floatb;intPdata中的a域,正確的賦值語句是 B)p=data.a; Cp=&data.aD)*p=data.a; }則下面敘述中錯誤的是( B、structstuC、ab語句int*p;說明 Cp是指向函數(shù)的指針,intp是指向int型數(shù)據(jù)的指 //指針的定義教材下列不正確的定義是(AA.int B.intC.int D.int址,C正確)若有說明:intn=2,*p=&n,*q=p,則以下非法的賦值語句是:( B)*p=*qC)n=*q p,q同為整型指針變量,二者里面僅能存放整型變量的地址。A,qpn的內(nèi)容.因此*p=*q相當(dāng)于n=n;C,n=*q等價于D,p中只能存放地址,不能將n有語句:inta[10],;則 是對指針變量p的正確定義和初始化int B)int C)int D)intA,a是數(shù)組名,不是指針變量名,因此不可用*標注數(shù)組名C,ap時,應(yīng)在變量名前加*p是指針變量若有說明語句“inta[5],*p=a;”,則對數(shù)組元素的正確引用是(C)。 對于數(shù)組元素下標的引用(詳見p144),一般形式數(shù)組名[下標]其中下標為邏輯地址下0開始計數(shù),方括號中的下標可以是變量,可以是表達式,但結(jié)果一定要是整數(shù)。C,(p231~234)p+2表示指向同一數(shù)組中的下兩個元素的地址,當(dāng)p指向a[0]p+2表示a[2]的地址,因此*(p+2)a[2]的內(nèi)容 9的表達式是 B) C) D)(數(shù)組中9對應(yīng)的是a[8],選項BP+8表示數(shù)組中后8a[8]則表示該地址內(nèi)所存放的內(nèi)容,即a[8]A,*PPP指向a[0*Pa[0]1.C,*PPP指向a[0*Pa[0]的值。因此*P+=9*P*P+9,等價于D,P+88個元素的地址,即a[8]a[8]CD C) 下列數(shù)據(jù)中屬于“字符串常量”的是(A C語言中,用單引號標識字符;用雙引號標識字符串B,C,分別用{}和’’標識字符串charx[]="hello",y[]={'h','e','a','b','e'};,則關(guān)于兩個數(shù)組長度的正確描述是B相同B)xyC)xyD)以上答案都不對C語言中,字符串后面需要一個結(jié)束標志位'\0',通常系統(tǒng)會自動添加。xyx不盡要存儲字符串中的字符,還要存儲存儲集合中的元素,因此數(shù)組y5二、#include<stdio.h>{inta=1,b=3,c=5;if(c==a+b)}

p89選擇結(jié)構(gòu)p91Dp3783種基本形式的第二種選擇結(jié)構(gòu)三種一般形式中的“語句”皆為復(fù)合語句,復(fù)合語句要用{}括起來,只有當(dāng)復(fù)合語句中只包括一條語句時可以省略{}printf操作沒有加{}c==a+b否則(即c==a+b不成立+的優(yōu)先級高于==a+b,45==4printf("no\n");即no#include<stdio.h>{inta=12,b=-34,c=56,printf("min=%d",min);}min=-p893種基本形式的第一種一共包含了兩個選擇結(jié)構(gòu)(if語句)a=12,b34,c=56,aminmin0min12。min>bmin=b;min>cmin12大于-34,ifmin=b;min中的值被更新為--3456,ifmin中的值,為-#include<stdio.h>{intx=2,y=-1,z=5;

}if語句,其后的復(fù)合語句沒有大括號{},說明復(fù)合語句中只包含一條語句,進而省略了{}。內(nèi)層的if語句的復(fù)合語句。x<y2>-1x<yif…else….z中的值沒有被改變。z5#include<stdio.h>{floata,b,c,t;}運行結(jié)果為 p72若表達式a>b成立,則執(zhí)行{t=a;a=b;b=t;}若表達式a>c成立,則執(zhí)行{t=a;a=c;c=t;}b>c成立,則執(zhí)行37,因此表達式a>b不成立,因此不執(zhí)行31a>c成立,則執(zhí)行{t=a;a=b;b=t;}a3拷貝,粘貼到t中;第二句,將c1拷貝,粘貼到a3t3拷貝到c中,覆蓋掉c1.執(zhí)行完復(fù)合語句后實現(xiàn)了a,c元素的值的互換,a1,c3,t37,t此時輸出a,b,c中的值為 <stdio.h>main() c=3.0,if(c>d)c=5.0;if(c==d)c=6.0; printf(“%.1f\n”,c)}若表達式c>d否則(c>d不成立若表達式c==d成立,則執(zhí)行否則,執(zhí)行c3.04.0,因此表達式c==dc=7.07.0賦給c,覆蓋掉c3.0,此c7.0輸出此時的c#include<stdio.h> intm;scanf("%d",&m);if(m>=0) if(m%2==0)printf("%disapositiveeven\n",m); printf("%disapositiveodd\n",m);}}

if(m%2==0) printf("%disanegativeeven\n",m); printf("%disanegativeodd\n",m); 若鍵入-9,則運行結(jié)果為 -9isanegative#include<stdio.h>{int}123{numnum<=21num++;即將num1numprintf("%d\n",num);在屏幕上輸出num1num1,循環(huán)條件num<=22num++;即將num1numprintf("%d\n",num);在屏幕上輸出num2num2,循環(huán)條件num<=23num++;即將num1numprintf("%d\n",num);在屏幕上輸出num3,之后換行num3,循環(huán)條件num<=2不成立,結(jié)束循環(huán)。#include<stdio.h>main(){int n++;}}當(dāng)循環(huán)條件n<3成立的時候,執(zhí)行循環(huán)體{sum=sum-n; n++;}中的語句。循環(huán)初值sum為10,n為1;n<3n++,n1nn2,sum9n<3成立,繼續(xù)執(zhí)行循環(huán)2sum=sum-n=9-2=7;n++,n1nn,sum3,7printf(“%d,%d”,n,sum);中要求輸出的數(shù)據(jù)#include<stdio.h>{intnum,c; }p117循環(huán)結(jié)構(gòu);p60do{while(表達式num }直到循環(huán)條件(num/=10)>0不成立;num1num/=10num=num/10;num=23/10=2,20,因此循環(huán)條件(num/=10)>01次循環(huán)時,num2,c32次執(zhí)行循環(huán)體c=2%10=2;#include<stdio.h>{ints=0,a=5,n; { a=a-2;}1,運行結(jié)果為:詳見教材p117循環(huán)結(jié)構(gòu);p60復(fù)合的賦值運算符執(zhí)行{ a=a-2;}直到循環(huán)條件a!=n不成立n1,s0,a1a=a-2;a=5-判斷循環(huán)條件,31a!=n成立,繼續(xù)執(zhí)行循環(huán)體。1次循環(huán)時,s1,a32a=a-2;a=3-判斷循環(huán)條件,11,因此循環(huán)條件a!=n不成立,結(jié)束循環(huán)。2次循環(huán)時,s2,a1#include"stdio.h"{charc; c=getchar();}#include<stdio.h>{charc;{ else }#include<stdio.h>{intx,y=0;{} }運行結(jié)果為 詳見教材 for語詳見教材 for1;2;{}).(2)forbreak,跳出循環(huán)體;continue,結(jié)束本次循環(huán)(i次循環(huán),繼續(xù)執(zhí)行下一次循環(huán)(次循環(huán)1x=12(循環(huán)條件)x<=103x1,y0,循環(huán)條件(2)x<=101if語句。010,ify=y+x; x=x+1=1+1=2。循環(huán)條件x<=10成立,進入第2次循2if語句。110,ify=y+x; x=x+1=2+1=3。循環(huán)條件x<=10成立,進入第3次循3if語句。310,ify=y+x; x=x+1=3+1=4。循環(huán)條件x<=10成立,進入第4次循4if語句。610,ify=y+x; x=x+1=4+1=5。循環(huán)條件x<=10成立,進入第5次循5執(zhí)行if語句。10等于10,if語句的條件表達式成立,執(zhí)行break,跳出循環(huán)。從break跳出至for語句的下一條語句。執(zhí)行printf(“%d 輸出當(dāng)前的y與x.結(jié)果為 main() charch;ch=getchar(); ‘B’:printf(“%c”,’B’);break;default:printf(“%s\n”,”other”);}A時,運行結(jié)果為:AB詳見教材p103,switch語句 1 2 常量n:語句n 語句n+1}1,…ncase相當(dāng)于給出執(zhí)行程序的入口和起始位置,若找到匹配的常量,則從此處開始往下執(zhí)行breakswitch結(jié)束switch語句。Switchch,因此表達式的值即為字符’A’.用字符’A’依次與下面的case中的常量匹配。1case后的常量匹配,則從其后的語句開始往下執(zhí)行程序(在執(zhí)行過程中不再Bbreakswitch語句。#include<stdio.h>main(){int case1:case2:b=2;break;default:b=10;}printf("%d",}scanf函數(shù)為變量a5switch語句。switcha,5.5依次與下casecasedefaultb=1010b。#include<stdio.h>{chargrade=’C’;{case‘B’:printf(“80-case‘C’:printf(“70-case‘D’:printf(“60-70\n”);case‘E’:printf(“<60\n”);default:printf(“error!\n”);}}70-60-首先從鍵盤接收一個字符’C’并將其放在變量gradeswitch語句。switchgrade,因此表達式的值即為字符’C用字符’C’依次與下面的case中的常量匹配。3case后的常量匹配,則從其后的語句開始往下執(zhí)行程序(在執(zhí)行過程中不再)因此先執(zhí)行printf(“70-80\n”);,屏幕上輸出70-80,并換行;再往下繼續(xù)執(zhí)行#include<stdio.h>{inty=9;for(;y>0;y--){printf(%d”,--}}12(循環(huán)條件)y>03y1 2if語句。7%30,ifprintf(%d 3 4if語句。4%30,ifprintf(%d y=4-1=3。循環(huán)條件y>0成立,進入第5次循5轉(zhuǎn)向表達式3,執(zhí)行y--, y=y-1=2-1=1。循環(huán)條件y>0成立,進入第5次循環(huán)第6次循環(huán)if語句。1%30,ifprintf(%d #include<stdio.h>{int do{sum=sum+i;i++;}while(i<=10);}運行結(jié)果為:#include<stdio.h>#defineN4{intintx1=1,x2=2;{printf("%4d%4d",x1,x2);}} 1i=12(循環(huán)條件)i<=Ni<=431 if語句。1%20,if轉(zhuǎn)向表達式3,執(zhí)行i++, i為2。循環(huán)條件i<=4成立,進入第2次循環(huán)第2次循環(huán) if語句。2%2==0,ifprintf("\n");換行x1=x1+x2=3+5=8;x18轉(zhuǎn)向表達式3,執(zhí)行i++, i為3。循環(huán)條件i<=4成立,進入第3次循環(huán)第3次循環(huán) if語句。3%20,if轉(zhuǎn)向表達式3,執(zhí)行i++, i為4。循環(huán)條件i<=4成立,進入第4次循環(huán)第2次循環(huán) if語句。4%2==0,ifprintf("\n");換行x1=x1+x2=21+34=55;x155 i為5。循環(huán)條件i<=4不成立,結(jié)束循#include<stdio.h>main() x,for(x=30,y=0;x>=10,y<10;x--,y++)x/=2,y+=2;}#include<stdio.h>#defineN4main({int {printf("****P41for1i=12(循環(huán)條件)i<=N3 表達式3為1,i1,使得循環(huán)條件i<=4for外層for循環(huán)第1 此時i為j=1,j<i不成立,因此不執(zhí)行內(nèi)層循環(huán)體(不輸出空格)printf("*");成立,再次進入外層for外層for循環(huán)第2 此時i為1printffor外層for循環(huán)第3 此時i為1printf3,j++2,j<i成立,再次執(zhí)行內(nèi)層循環(huán)2printf("");3,j++3,j<i不成立,跳出內(nèi)層循環(huán)printf("*");for外層for循環(huán)第4 此時i為1printf3,j++2,j<i成立,再次執(zhí)行內(nèi)層循環(huán)2printf("");3,j++3,j<i成立,再次執(zhí)行內(nèi)層循環(huán)3printf("");3,j++4,j<i不成立,跳出內(nèi)層循環(huán)printf("*");不成立,跳出外層for#include<stdio.h> i,} 例題6.1一定看懂i,整型數(shù)組aa10a10個整型元素(整型變量)for循環(huán)語句i=9,i>=0成立,執(zhí)行循環(huán)體1次循環(huán)a[i]=10-ia[9]=10-3i--,i8i>=0成立,繼續(xù)執(zhí)行循環(huán)體2次循環(huán)a[i]=10-ia[8]=10-3i--,i7i>=0成立,繼續(xù)執(zhí)行循環(huán)體3次循環(huán)a[i]=10-ia[7]=10-3i--,i6i>=0成立,繼續(xù)執(zhí)行循環(huán)體4次循環(huán)a[i]=10-ia[6]=10-3i--,i5i>=0成立,繼續(xù)執(zhí)行循環(huán)體5次循環(huán)a[i]=10-ia[5]=10-3i--,i4i>=0成立,繼續(xù)執(zhí)行循環(huán)體6次循環(huán)a[i]=10-ia[4]=10-3i--,i3i>=0成立,繼續(xù)執(zhí)行循環(huán)體7次循環(huán)a[i]=10-ia[3]=10-3i--,i2i>=0成立,繼續(xù)執(zhí)行循環(huán)體8次循環(huán)a[i]=10-ia[2]=10-3i--,i1i>=0成立,繼續(xù)執(zhí)行循環(huán)體9次循環(huán)a[i]=10-ia[1]=10-3i--,i0i>=0成立,繼續(xù)執(zhí)行循環(huán)體10次循環(huán)a[i]=10-ia[0]=10-#include<stdio.h>{intfor(i=0;i<6;for(i=5;i>=0;i--)} i,整型數(shù)組aa6,即a6個整型元素(整型變量)執(zhí)行第一個for循環(huán)語句i=0,i<6成立,執(zhí)行循環(huán)體1次循環(huán)a[ii等價于3i++,i1i<6成立,繼續(xù)執(zhí)行循環(huán)體2次循環(huán)a[ii等價于3i++,i2i<6成立,繼續(xù)執(zhí)行循環(huán)體3次循環(huán)a[ii等價于3i++,i3i<6成立,繼續(xù)執(zhí)行循環(huán)體4次循環(huán)a[ii等價于3i++,i4i<6成立,繼續(xù)執(zhí)行循環(huán)體5次循環(huán)a[ii等價于3i++,i5i<6成立,繼續(xù)執(zhí)行循環(huán)體6次循環(huán)a[ii等價于執(zhí)行第二個fori=5,i>=0成立,執(zhí)行循環(huán)體1次循環(huán)執(zhí)行 3i--,i4i>=0成立,繼續(xù)執(zhí)行循環(huán)體2次循環(huán)執(zhí)行 3i--,i3i>=0成立,繼續(xù)執(zhí)行循環(huán)體3次循環(huán)執(zhí)行 3i--,i2i>=0成立,繼續(xù)執(zhí)行循環(huán)體4次循環(huán)執(zhí)行 3i--,i1i>=0成立,繼續(xù)執(zhí)行循環(huán)體5次循環(huán)執(zhí)行 3i--,i0i>=0成立,繼續(xù)執(zhí)行循環(huán)體6次循環(huán)執(zhí)行 #include<stdio.h>main(){int}i,kaa10p,p3k5forafor forpi=0,i<3成立,執(zhí)行循環(huán)體1次循環(huán)執(zhí)行 即3i++,i1i<3成立,繼續(xù)執(zhí)行循環(huán)體2次循環(huán)執(zhí)行 即3i++,i2i<3成立,繼續(xù)執(zhí)行循環(huán)體3次循環(huán)執(zhí)行 即fori=0,i<3成立,執(zhí)行循環(huán)體1次循環(huán)執(zhí)行 即3i++,i1i<3成立,繼續(xù)執(zhí)行循環(huán)體2次循環(huán)執(zhí)行 即3i++,i2i<3成立,繼續(xù)執(zhí)行循環(huán)體1次循環(huán)執(zhí)行 即#include n[3][3]={1,2,3};main( printf(“%d,”,}m,m3行,3n,m3行,3因 #include<stdio.h>{intintfor(i=1;i<3;i++) } i=1,i<3成立,執(zhí)行循環(huán)體1次循環(huán)執(zhí)行 3i++,i2i<3成立,繼續(xù)執(zhí)行循環(huán)體2次循環(huán)執(zhí)行 #include<stdio.h>main(){intn[3][3],i,for(i=0;i<3;i++{for(j=0;j<3;j++ ”,}}} i0,i<3外層for第1次循 相當(dāng)于輸出第1forj0j<3成立,執(zhí)行循環(huán)體for1次循環(huán)執(zhí)行n[i][j]=i+j;即n[0][0]=0+0=0;執(zhí)行printf(“%d ”,n[i][j]);3,j++,j1,j<3成立,繼續(xù)執(zhí)行內(nèi)層循環(huán)體for2次循環(huán)執(zhí)行n[i][j]=i+j;即n[0][1]=0+1=1;執(zhí)行printf(“%d ”,n[i][j]);3,j++,j2,j<3成立,繼續(xù)執(zhí)行內(nèi)層循環(huán)體for3次循環(huán)執(zhí)行n[i][j]=i+j;即n[0][2]=0+2=2;執(zhí)行printf(“%d ”,n[i][j]);3,j++,j3,j<3不成立,結(jié)束內(nèi)層循環(huán)printf(“\n”);執(zhí)行外層for語句的表達式3,i++,i為,1,i<3成立,繼續(xù)執(zhí)行外層循環(huán)體外層for第2次循環(huán) 相當(dāng)于輸出第2行forj0j<3成立,執(zhí)行循環(huán)體for1次循環(huán)執(zhí)行n[i][j]=i+j;即n[1][0]=1+0=1;執(zhí)行printf(“%d ”,n[i][j]);3,j++,j1,j<3成立,繼續(xù)執(zhí)行內(nèi)層循環(huán)體for2次循環(huán)執(zhí)行n[i][j]=i+j;即n[1][1]=1+1=2;執(zhí)行printf(“%d ”,n[i][j]);3,j++,j2,j<3成立,繼續(xù)執(zhí)行內(nèi)層循環(huán)體for3次循環(huán)執(zhí)行n[i][j]=i+j;即n[1][2]=1+2=3;執(zhí)行printf(“%d ”,n[i][j]);3,j++,j3,j<3不成立,結(jié)束內(nèi)層循環(huán)printf(“\n”);執(zhí)行外層for語句的表達式3,i++,i為,1,i<3成立,繼續(xù)執(zhí)行外層循環(huán)體外層for第2次循環(huán) 相當(dāng)于輸出第3行forj0j<3成立,執(zhí)行循環(huán)體for1次循環(huán)執(zhí)行n[i][j]=i+j;即n[2][0]=2+0=1;執(zhí)行printf(“%d ”,n[i][j]);3,j++,j1,j<3成立,繼續(xù)執(zhí)行內(nèi)層循環(huán)體for2次循環(huán)執(zhí)行n[i][j]=i+j;即n[2][1]=2+1=2;執(zhí)行printf(“%d ”,n[i][j]);3,j++,j2,j<3成立,繼續(xù)執(zhí)行內(nèi)層循環(huán)體for3次循環(huán)3,j++,j3,j<3不成立,結(jié)束內(nèi)層循環(huán)printf(“\n”);執(zhí)行外層for3,i++,i為,3i<3#include<stdio.h>{charinti,j;{}* *#include<stdio.h>main(){inti,{ }}1 5 #include“stdio.h” b[]) }main( a[4],i;for(i=0;i<4;i++)}012定義函數(shù)循環(huán)變量初值(1)j=0,使得循環(huán)條件(2)j<4成立,執(zhí)行循環(huán)體1次循環(huán)b[j]=j;執(zhí)行循環(huán)變量自增(3)j++,j1,使得j<4成立,繼續(xù)執(zhí)行循環(huán)體2次循環(huán)j++,j2j<4成立,繼續(xù)執(zhí)行循環(huán)體3次循環(huán)j++,j3j<4成立,繼續(xù)執(zhí)行循環(huán)體4次循環(huán)j++,j4j<4maini和數(shù)組afunc(a);funca作為調(diào)用的實參(C語言中表示數(shù)b的操作,即對數(shù)組a)#include<stdio.h>{floatfun(floatfloatave,a[3]={4.5,2,4};}floatfun(float{intfloatforreturn(aver} #include<stdio.h>{intintb[3][2],i,j;}}} #include<stdio.h> for(i=0;i<=n;i++)return}{int}{intstaticintx[4][4],y[4][4];}#include<stdio.h>intSub(inta,intb){return(a-b);} x,y,result=0;scanf("%d,%d",&x,&y);result=Sub(x,y);printf("result=%d\n",result);}當(dāng)從鍵盤輸入:6,3result#include min(intx,inty{ if(x>y)m=x; m=y;} a=3,b=5,abminabmin= %d”,} func(intx){printf(“%d,}main( intx=20;printf(“%d”,x);}10,mainfunc,main20func,并轉(zhuǎn)向開始執(zhí)行 xxxfunc()printf(“%d,x);funcx至此,funcmain”,#include<stdio.h>intm=4;intfunc(intx,int intm=1;}{inta=2,b=3;}41mm為全局變量,其作用于范圍為其定義位置開始,一直到整個程序結(jié)束。因此funcmainmmainprintf("%d\n",m);m4printf("%d\n",func(a,b)/m);即輸出表達式func(a,b)/m的值,為了計算該表達式,funcmaina,b23funcxy程序開始轉(zhuǎn)向執(zhí)行funcfuncx2,yintm=1;m1。m的作用域為其所在的復(fù)合語句,即funcfuncm。執(zhí)行return(x*y-m); 即return(2*3-1);返回的是整數(shù)5.func函數(shù)返回至main函數(shù)中的被調(diào)用處main函數(shù)中func(a,b)5,func(a,b)/m=5/4=1,mainm為全mmainfuncmfunc中m的作用域。#include<stdio.h>intfun(inta,int{if(a>b) }{intx=15,y=8,r;r=fun(x,y);printf("r=%d\n",}mainrfun(x,y);func(x,y)rfunc。此mainx,y158值作為實參傳遞給func的ab程序開始轉(zhuǎn)向執(zhí)行funcfunca15,bif語句;if后面的表達式,a>breturn(a);即返回a的值。funcmainmain函數(shù)中func(x,y)1515r。printf("r=%d\n",r);即輸出r=15#include<stdio.h>intfac(intn){intf=1,i;f=f*i;}{intj,s;}3,mainrfun(x,y);func(x,y)rfunc。此mainx,y158值作為實參傳遞給func的ab程序開始轉(zhuǎn)向執(zhí)行funcfunca15,bif語句;if后面的表達式,a>breturn(a);即返回a的值。funcmainmain函數(shù)中func(x,y)1515r。printf("r=%d\n",r);即輸出r=15#includeunsignedfun6(unsigned{unsignedk=1;{k*=num%10;returnk;}{unsignedn=26;}mainprintf(“%d\n”,fun6(n));func(6)的值,為了計算該表達式,需要調(diào)用funcmainn26funcnum程序開始轉(zhuǎn)向執(zhí)行funcfuncnumdo-while語句1次循環(huán)num/=10;即whilenum,num20值,即表示循環(huán)條件成立,k62num/=10;即whilenum,num0,表示循環(huán)條件不成立,returnk;main函數(shù)中的被調(diào)用處main函數(shù)printf(“%d\n”,fun6(n));#include<stdio.h>intmax(intx,inty);{inta,b,c;printf("Maxis%d",c);}max(intx,int{intz;z=x>y?x:y;return(z);}Maxis#include<stdio.h>main( { x[]={10,20,30,40,50 *p;printf(“%d”,*(p+2)}#include<stdio.h>main() chars[]=”abcdefg”;char*p;}p;pspps的首地s[0]的地址。5個元素的地址,即a[5]的地址。*(p+5)則表示該地址內(nèi)所存放的內(nèi)容,即a[5]f,因ch=fmain(){inta[]={1,2,3,4,5}intx,y,*p;printf("%d:%d\n",*p,}運行結(jié)果為app中存放的數(shù)組a的首地址,即數(shù)組中第一個元素a[0]的x=*(p+2);p+2p2個元素的地址,即a[2]的地址。*(p+2)a[2]33x arr[ }arrarr進行初始化;p;arrpparra[0]的地址。p++p=p+1。p+1p1個元素的地址,arr[1]arr[1]p,執(zhí)行完此語句后,parr[0],而是arr[1]。printf語句,輸出表達式*(p+3)的值。p+3p當(dāng)前指向的位置起始(arr[4]10,10#include<stdio.h>main() a[]={1,2,3,4,5, x,y,*p;p=&a[0];x=y=printf(“*p=%d,x=%d,y=%d\n”,*p,x,}*p=1,x=3,;將數(shù)組元素a[0]p。x=*(p+2);p+2p2個元素的地址,即a[2]的地址。*(p+2)則表示該地址內(nèi)所存放的內(nèi)容,即a[2]33xy=*(p+4);p+4p4printf語句,先輸出表達式*p的值。此時*pp1x3y5main(){staticchara[]=”Program”,*ptr;for(ptr=a,ptr<a+7;ptr+=2)}a,并對a進行初始化;語句3ptr+=2ptr=ptr+2;1putchar(*ptr);即輸出*ptrptr1a[0],因此*ptr表示a[0]中的值,即3ptr=ptr+2。ptr+2ptr當(dāng)前所指向的位2個元素的地址,即a[2]a[2]ptr。a[2]的地址等價于a+2ptr<a+7成立,繼續(xù)執(zhí)行循環(huán)體2putchar(*ptr);即輸出*ptrptr3a[2],因此*ptr表示a[2]中的值,即3ptr=ptr+2。ptr+2ptr當(dāng)前所指向的位2個元素的地址,即a[4]a[4]ptr。a[4]的地址等價于a+4ptr<a+7即a+4<a+7成立,繼續(xù)執(zhí)行循環(huán)體3putchar(*ptr);即輸出*ptrptr5a[4],因此*ptr表示a[4]中的值,即3ptr=ptr+2。ptr+2ptr當(dāng)前所指向的位a+6ptr<a+7a+6<a+7成立,繼續(xù)執(zhí)行循環(huán)體4putchar(*ptr);即輸出*ptrptr7a[6],因此*ptr表示a[6]中的值,即3ptr=ptr+2。ptr+2ptr當(dāng)前所指向的位a+8ptr<a+7a+8<a+7不成立,結(jié)束循環(huán)。#include<stdio.h>chars[]=”ABCD”;{char*p;printf(“%c}Dss進行初始化;s是全局變量,其有效范圍從其定main定義一個字符型指針p語句3p++p=p+1;1printf(“%cs\n”,*p,p);即以字符%c形式輸出*pp指1s[0],因此*pa[0]中的值,即’A’.然后再以字符串%sp中地址為首地址的整個字符串,即輸出ABCDs[1]s+1p<s+4成立,繼續(xù)執(zhí)行循環(huán)體2printf(“%cs\n”,*p,p);即以字符%c形式輸出*pp指2s[1],因此*ps[1]中的值,即’B’.然后再以字符串%spps[1],即s[1]BCDs[2]s+2p<s+4成立,繼續(xù)執(zhí)行循環(huán)體3printf(“%cs\n”,*p,p);即以字符%c形式輸出*pp指3s[2],因此*ps[2]中的值,即’C’.然后再以字符串%spps[2],即s[2]CDs[2]s+3p<s+4成立,繼續(xù)執(zhí)行循環(huán)體4printf(“%cs\n”,*p,p);即以字符%c形式輸出*pp指4s[3],因此*ps[3]中的值,即’D’.然后再以字符串%sp中地址為首地址的整個字符串,即輸出Ds[3]s+4p<s+4不成立,結(jié)束循環(huán)structst{intx;int}a[2]={5,7,2,9}{}st,st中共有兩個整型成員x,ya[1].a5a[0]x(即a[0].x=5)7a[0]y(a[0].y=7)2a[1]x(a[1].x=2);9a[1]y(即a[1].y=9);main函數(shù),輸出表達式a[0].y*a1].x7*25729 5729 main(){struct{intnum;chara[5];float} }cnum[2]={1,3,2,main({printf(“%d\n”,cnum[0].y*cnum[1].x}#include<stdio.h>structabc{inta,b,c;};{structabc intt;printf("%d}三、main(){charch; ch>=’a’&&ch<=’z’||ch>=’A’&&ch<=’Z’ printf("ItisanEnglishcharacter\n");elseif( printf("Itisadigitcharacter\n");else ch== ’printf("Itisaspacecharacter\n");printf("Itisother 1空:字符在計算機中以ASCII碼的形式存儲。所以當(dāng)輸入的字符,即ch中字符所ch中是小寫字母或者大寫字母,都能使得表達式成立。ch>=97&&ch<=122||ch>=65&&ch<=90需要注意的是,對于本題區(qū)間所對應(yīng)的表達式,不可寫作97<=ch<=122,也不可寫作’A’<=chZ’.97<=ch<=122112297<=ch<=122恒成立。0i,j來放統(tǒng)計數(shù),請?zhí)羁胀瓿沙绦?。void{ n,i=0,j=0;printf(“inputainteger,0forend\n”); (n或 if(n>0) }}1;否則(n<0),j11。1+3+5+……+101#include<stdio.h>voidmain() inti,sum=for(i=1; ;i=i+2; sum=sum+i;printf("sum=%d\n",sum); for語句的一般形式詳見p120.2i<=1013為循環(huán)變1+3+5…+99 i,sum=0;while sum=sum+ ; printf("sum=%d\n",}#include<stdio.h>void printf("inputacharacter:");if(c>=‘A’&&c<=‘Z’||c>=‘a(chǎn)’&&c<= }#include<stdio.h> {intprintf(“input10integers:”);printf(“inputthenumberyouwanttofindx:”);scanf(“%d”,&x if(x==a[i] printf(“theposofxis:%d\n”,i);elseprintf(“cannotfindx!\n”);}#include<stdio.h>main() i,a[20],s,count;for(i=0;i<20;i++)scanf(“%d”,&a[i]);for(i=0;i<20; if(a[i]<0) s+=a[i];} count=%d\n”,s,}(#include<stdio.h>intmain(void){inti,index,k,n,temp;printf(“Entern:");

/*1a10個整型元素printf(“Enter%dintegers:",n);for(i=0;i<n;i++)scanf("%d",for(k=0;k<n-1;k++){ /*n*/index=k;for( if( index=i;}printf("Aftersorted:for(i0;in; /*nreturn四、1.求1234 longint (1)int);(1)78(2)while(i<n)//i<n為循環(huán)條件,則意味著in-1,i1n-11次,因此應(yīng)i<=ni<n+1 sum=sum*i//sumsum*i} 要與后面欲輸出的變量的類型一致,此題%dsumlongint不一致,應(yīng)改為}sum第六行改為:while(i<=n)main(){intintfor(j=1;j<=5;j++)j=1j1j作為數(shù)字元素的邏輯地址下標。因此輸出的時候只能從a[1]開始輸出,無法輸出a[0].j0,j<5j<=45次);(1)78(2) {max=a[j];}printf(“下標:%d\n最大值:%djmax)//jforfor語句執(zhí)行完之后,j6,并非最大值下標,在執(zhí)行某一次循環(huán)的比較過程中,將當(dāng)時最m里}”, {floatz; } float(1)(2)0或者循環(huán)初值。printf("\nSumis}第一行改為:floatsum(floatx,floaty第四行改為:return(z);或者return第八行:float第十一行:printf("\nSumis20個整數(shù),統(tǒng)計非負數(shù)個數(shù),并計算非負數(shù)之和.#include“stdio.h”{ i,s,countinta[n//p143, fori=1,i<20,iforscanf(“%d”,a[i]);//scanf(1)格式聲明符號要與78(2){break; //break與continuep128.break語句,breakcontinuecontinuebreaks+=a[i];}printf(“s=%f }答案:int x的值,y的值{float } intx; floaty;6編程計算下面分段函數(shù),x,y

x1

x0x3x{int

xprintf(“\nInputx:\n”);scanf(“%dx);//scanfy=x-elseif(x>=0||x<=10)//||表示邏輯或,當(dāng)左邊表達式成立或者右邊表達式成立時,整個表達式成立。&&表示邏輯與,當(dāng)左邊表達式和右邊表達式同時成立時,整x的區(qū)間[0,10],因此應(yīng)改用邏輯與符號y=2x-1;C語言中乘號不能省略,且用*y=3x-1C語言中乘號不能省略,且用* }第一處改為:scanf(“%d”,&x);100~3003{int(1)(2)定義用于存放運算結(jié)果的變量時,一定要賦初值,0或者循環(huán)初值。 {if(n%3=0) =是賦值符號,用于將右邊的值賦給左邊的變量;==if后面表達式中的賦值符號是常見的}printf(“%ld}第一處改為:long求表達式c

ab#include<stdio.h>#include<math.h>intfun(intx,inty);{inta,b;floatscanf(“%d,%d”,a,b);//1scanfif(ab>0){C語言中乘號不能省略,且用*fun(a,b//printf("Theresultis:%d\n //6printf}elsefun(x

溫馨提示

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

評論

0/150

提交評論