江西中醫(yī)藥大學2022年C語言程序設計及答案_第1頁
江西中醫(yī)藥大學2022年C語言程序設計及答案_第2頁
江西中醫(yī)藥大學2022年C語言程序設計及答案_第3頁
江西中醫(yī)藥大學2022年C語言程序設計及答案_第4頁
江西中醫(yī)藥大學2022年C語言程序設計及答案_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2/2C語言程序設計一、單項選擇題(每小題2分,共40分)1、在c語言中,要求運算數(shù)必須是整數(shù)的運算符是________。 A、< B、% C、/ D、>【答案】B2、在c語言中,能表示無符號長整型常數(shù)的是________。 A、OL B、4962710U C、912374u D、2UL【答案】D3、有定義intn=789;下列表達式結果為8的是________。 A、n/10%2 B、(n-n%10)/100 C、n%10 D、n%100/10【答案】D【解析】/比%的優(yōu)先級要高。注意:n/10%2的結果應是0,n/10結果為78,用78在除以2求余則得0;(n-n%10)/100的結果應是7,n%10得9,780/100得7;n%10的結果顯而易見是9。4、有如下程序:

main()

{

intx=1,a=0,b=0;

switch(x)

{

case0:

b++;

case1:

a++;

case2:

a++;

b++;

}

printf("a=%d,b=%d\n",a,b);

}

該程序的輸出結果是________。 A、a=2,b=1 B、a=1,b=1 C、a=1,b=0 D、a=2b=2【答案】A5、設i和x都是int類型,則for循環(huán)語句。for(i=0,x=0;i<=9&&x!=876;i++)scanf("%d",&x); A、最多執(zhí)行10次 B、最多執(zhí)行9次 C、是無限循環(huán) D、循環(huán)體一次也不執(zhí)行【答案】A6、已有函數(shù)max(a,b),為了讓函數(shù)指針變量p指向函數(shù)max,正確的賦值方法是______。 A、p=max; B、*p=max; C、p=max(a,b); D、*p=max(a,b);【答案】A7、設x、y和z是int型變量,且x=4,y=6,z=8,則下列表達式中值為0的是________。 A、x&&y B、x<=y C、x||y+z&&y—Z D、!((x<Y)&&!Z||1)【答案】D8、若希望下列的程序運行后輸出25,程序空白處的正確選項是________。

main()

{

inti,j=50,a[]={7,4,10,5,8};

for(_____)

j+=a[i];

print(”%d”,j-40);

} A、i=1;i<4;++i B、i=1;i<3;++i C、i=4;i>2;i-- D、i=2;i<4;++i【答案】D【解析】要想使程序輸出25,則j-40=25,j=65,而j初值是50,所以填入for循環(huán)的語句,使引用的數(shù)組元素累加65-50=15即可,D選項中,i下標從0開始,i=2指向第3個數(shù)50+a[2]=50+10=60,繼續(xù)循環(huán)60+a[3]=65+5=65,此時i=4跳出,循環(huán)結束。9、若有以下定義語句charc1=’b’,c2=’e’;

printf("%d,%c\n",c2-c1,c2-‘a(chǎn)’+’a’);

則輸出結果是________。 A、2,M B、3,E C、2,E D、輸出項與相應的格式控制不一致,輸出結果不確定【答案】B10、以下正確的字符串常量是________。 A、"\\\" B、'abc' C、OlympicGames D、""【答案】D11、以下函數(shù)func()的功能是:使具有n個元素的一維數(shù)組b的每個元素的值都增加2,劃線處應填入_____.

func(intb[],intn)

{

int;

for(i=0;i<n;i++)__________;

} A、b[i++] B、b[i]++ C、b[i+=2] D、b[i]+=2【答案】D12、以下敘述中正確的是______。 A、全局變量的作用域一定比局部變量的作用域范圍大 B、靜態(tài)(static)類別變量的生存期貫穿于整個程序的運行期間 C、函數(shù)的形參都屬于全局變量 D、未在定義語句中賦初值的auto變量和static變量的初值都是隨機值【答案】B13、在64位計算機中,一個字長所占字節(jié)數(shù)為________。 A、64 B、8 C、4 D、1【答案】B14、以下敘述正確的是________。 A、在C程序中,主函數(shù)必須位于程序的最前面 B、在C程序中,一行只能寫一條語句 C、C程序的基本結構是程序行 D、C語句是完成某種程序功能的最小單位【答案】D15、有以下程序

voidsum(inta[])

{

a[0]=a[1]+a[2];

}

main()

{

inta[10]={1,2,3,4,5,6,7,8,9,10};

sum(&a[2]);

printf("%d\n",a[2]);

}

程序運行后的輸出結果是______。 A、6 B、7 C、5 D、9【答案】D16、下面程序輸出的結果為________。

#include<stdio.h>

intmain()

{

int

s=3;

switch(s)

{

case

5:printf("我");

break;

case

4:printf("是");

case

3:printf("好");

case

2:printf("學");

break;

default:printf("生");

}

} A、好 B、好學 C、好學生 D、我是好學生【答案】B17、設有如下定義:

structsk

{

intn;

floatx;

}data,*p;

若要使p指向data中的n域,正確的賦值語句是________。 A、p=&datn; B、*p=datn; C、p=(structsk*)&datn; D、p=(structsk*)datn;【答案】C【解析】本題主要考查了結構體變量引用成員數(shù)據(jù)的方法,主要有以下幾種:結構體變量名,成員名或結構體指針->,成員名的方法來引用結構體成員。18、下面程序段的運行結果是________.chara[7]="abcdef";charb[4]="abc";strcpy(a,b);printf("%c",a[5]); A、空格 B、\0 C、e D、f【答案】D19、以下敘述中正確的是________。 A、一條語句只能定義一個數(shù)組 B、每個數(shù)組包含一組具有同一類型的變量,這些變量在內(nèi)存中占有連續(xù)的存儲單元 C、數(shù)組說明符的一對方括號中只能使用整型常量,而不能使用表達式 D、在引用數(shù)組元素時,下標表達式可以使用浮點數(shù)【答案】B【解析】A選項中,一條語句只能定義一個數(shù)組是不準確的,可以通過一條語句定義多個數(shù)組;C選項中,數(shù)組說明符的一對方括號中可以是整型常量,可以是整型常量表達式;D選項中,在引用數(shù)組元素時,下標表達式必須是整型的。因此B選項正確。20、有以下結構體說明和變量的定義,且指針p指向變量a,指針q指向變量b。則不能把結點b連接到結點a之后的語句是

structnodechardata;

structnode*next;

a,b,*p=&a,*q=&b; A、next=q; B、next=&b; C、p->next=&b; D、(*p).next=q;【答案】B【解析】要把結點b連接到結點a之后,必須把b的地址給a的next指針,選項A中,指針變量q保存的就是變量b的地址,選項B中的p是指針變量,應該是p->next=&b;在選項D中,用*運算符取出結構體變量,并且保存的就是b的地址,所以正確。二、判斷題(每小題2分,共20分)()1、若變量定義為intfahr;,則表達式5*(fahr-32)/9和表達式5/9*(fahr-32)是等價的?!敬鸢浮垮e誤()2、c語言中,所有的變量在使用前都必須先聲明?【答案】正確()3、內(nèi)層break語句可以終止嵌套的switch,使最外層的switch結束。【答案】錯誤()4、continue語句的作用是結束本次循環(huán)。【答案】正確()5、比較兩個字符串是否相等不能通過條件運算符"=="。【答案】正確()6、c語言中不允許嵌套定義函數(shù)?!敬鸢浮空_()7、在c語言中,引用數(shù)組元素時,數(shù)組下標的數(shù)據(jù)類型只能是整型常量?()【答案】錯誤()8、當函數(shù)的實參與形參同名時,它們將共占內(nèi)存單元。()【答案】錯誤()9、一個數(shù)組是由連續(xù)的一塊內(nèi)存單元組成的,指針變量就是這塊連續(xù)內(nèi)存單元的首地址【答案】錯誤()10、全局靜態(tài)變量的作用域限制在定義它的源文件內(nèi),只能為該源文件內(nèi)的函數(shù)公用?!敬鸢浮空_三、編程題(每小題分,共40分)1、從鍵盤輸入10個數(shù),統(tǒng)計非負數(shù)的個數(shù),并計算非負數(shù)的和。(本題10分)【答案】#include

voidmain()

{

inti,n=0,sum=0;

inta[10];

printf(“請輸入10個數(shù):”);

for(i=0;i<10;i++)

scanf(“%d”,&a[i]);

for(i=0;i<10;i++)

if(a[i]>=0)

{

sum=sum+a[i];

n++;

}

printf("非負個數(shù)是%d,sum=%d\n",n,sum);

}2、編寫程序,從輸入的一行字符串中抽取一部分(從第n個字符開始,抽取m個字符)構成一個新的字符串,并輸出。其中n>0且n<=字符串的長度,否則打印“起始位置n越界”

要求:n和m都由用戶輸入。

如果抽取的字符串長度不夠,則按照實際長度抽取,例如,字符串為“abcde”,若n=2,m=3,則抽取結果為“bcd”;若n=3,m=5,則抽取結果為“cde”;若n=0,m=4則輸出:起始位置0越界;若n=6,m=2則輸出:起始位置6越界(本題14分)【答案】#include<stdio.h>

#include<string.h>

intmain()

{

intn,m,i;

unsignedlongl;

chars[80];

gets(s);

scanf("%d%d",&n,&m);

l=strlen(s);

if(n+m-1>l){

m=l+1-n;

}

if(n>0&&n<=l){

for(i=n-1;i<n+m-1;i++){

printf("%c",s[i]);

}

}else{

printf("起始位置%d越界",n);

}

return0;

}3、有以下職工信息,使用結構體數(shù)組存儲這些信息,從鍵盤輸入5條記錄,

之后在屏幕上依次輸出職工信息。

structstuff{

intstuffID;//職工編號

floatbonus;//工資

};

【輸入形式】5條職工信息,分行輸入,數(shù)據(jù)間空格隔開

【輸出形式】分行輸出5條職工信息和最低工資,每行數(shù)據(jù)均使用1個空格分隔

【輸入樣例】

10018540.59

10026345.45

10033500.65

10044898.86

10055345.80

【輸出樣例】每行數(shù)據(jù)均使用一個空格分割,分五行輸出

10018540.59

10026345.45

10033500.65

10044898.86

10055345.80

minBonus=3500.65(本題16分)【答案】#include<stdio.h>

structstuff

{

intstuffID;

floatbonus;

}a[5];

intmain()

{

inti;

floatmin;

for(i=0;i<5;i++)

scanf("%

溫馨提示

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

評論

0/150

提交評論