下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
高級語言程序設(shè)計(一)年月真題
0034220121
1、【單選題】C語言的保留字是【】
ILE
define
A:
auto
B:
lse
C:
答D:案:C
解析:①所有的保留字均由小寫字母組成,一旦有一個字母大寫,其不再是保留字。②
根據(jù)保留字的作用,C語言的保留字分為四類。數(shù)據(jù)類型關(guān)鍵字(12個):char,double,
enum,float,int,long,short,signed,struct,union,unsigned,void控制語句關(guān)
鍵字(12個):break,case,continue,default,do,else,for,goto,if,return,
switch,while存儲類型關(guān)鍵字(4個):auto,extern,register,static其它關(guān)鍵字(4
個):const,sizeof,typedef,volatile
2、【單選題】正確的實型常數(shù)是【】
lE0
1E0.0
A:
1E
C:
答D:案:A
解析:C語言中實型常量只使用十進制,它的書寫形式有兩種:(1)十進制數(shù)形式:(必
須有小數(shù)點)如0.123,.123,123.0,0.0,123.(2)指數(shù)形式:(e或E之前必須有數(shù)
字;e后面的指數(shù)必須為整數(shù))如12e3,123E2,1.23e-4,錯誤表示:e-5,1.2E-3.5
3、【單選題】設(shè)intn=0;,執(zhí)行表達式n||(n=-1)||(n=0)||(n=1)||(n=2)后n的值是【】
-1
1
A:
2
C:
答D:案:A
解析:多個表達式進行||計算時,若某個表達式的值為“真”,則運算結(jié)果與這個表達式
后面表達式的值無關(guān),結(jié)果肯定為“真”,所以C語言規(guī)定此時這個表達式后面的表達式
不再計算。執(zhí)行表達式n||(n=-1)||(n=0)||(n=1)||(n=2)時,表達式n的值為0,表達式
(n=-1)的值為1,后面的表達式(n=0)、(n=1)、(n=2)都不再計算,所以,n的值為-1。
4、【單選題】設(shè)inta=4;,表達式的值不為8的是【】
a*=a-2
a--,3*a-1
A:
a>1?++a*2:3*a
B:
a+=a
C:
答D:案:C
解析:選項A,a=a*(a-2)=4*(4-2)=8;選項B,a--,3*a-1的計算過程:先取a的值
4作為第一個表達式的值,然后a的值減1變?yōu)?,然后計算第二個表達式3*a-1為3*3-
1=8,整個都好表達式的值就是第二個表達式的值8;選項C,a>1?++a*2:3*a,由于a>1
成立,所以++a*2的值10(a先加1變?yōu)?再乘2)時整個條件表達式的值;選項D,
a=a+a=4+4=8。
5、【單選題】設(shè)inta,b,t;,不能實現(xiàn)a和b的值交換的語句是【】
a=t;t=b;b=a;
t=a;a=b;b=t;
A:
t=b;b=a;a=t;
B:
a=a+b,b=a-b,a=a-b;
C:
答D:案:A
解析:選項A,最后a和b的值相同,都t最早的值。選項B和選項C都完成了a和b的
值交換,也很容易理解。選項D,執(zhí)行b=a-b時這里的a已經(jīng)最初的a的值+b,所以執(zhí)行
b=a-b相當于最初的a+b-b,所以實際完成了最初的a賦給了b;執(zhí)行a=a-b時這里的a已
經(jīng)最初的a的值+b,這里的b已經(jīng)是最初的a的值,所以執(zhí)行a=a-b完成的是最初的b賦
給a,從而實現(xiàn)a和b的值交換。
6、【單選題】設(shè)intx,*p;,正確的賦值語句是【】
*p=&x;
*p=*x;
A:
p=x;
B:
p=&x;
C:
答D:案:D
解析:選項A,*p的含義是指針p所指整型變量,&x的含義是變量x的地址,不能把&x
賦給*p。選項B,x是整型變量,不能進行*指針運算。選項C,整型變量x的值不能賦給
指針變量p。選項D,將整型變量的地址賦給指針p是正確的語句。
7、【單選題】設(shè)inti=1,s=1;,下列能正確計算5!的是【】
while(i++<=5)s*=i;
for(;i<4;i++)s*=i++;
A:
do{s*=i;}while(i<=4);
B:
for(;i<=5;i++)s*=i;
C:
答D:案:D
解析:選項A,實際計算的是s=1*2*3*4*5*6。選項B,實際計算的是s=1*1*3。選項C,
實際計算的是s=1*1*1*…,是死循環(huán)。選項D,實際計算的是s=1*1*2*3*4*5。
8、【單選題】函數(shù)float*fun(){...…}返回的是【】
地址
實型值
A:
整型值
B:
字符常數(shù)
C:
答D:案:A
解析:float*fun(){...…}說明fun是一個函數(shù),該函數(shù)的返回值的類型是基類型為
float的指針類型。float(*fun)(){...…}說明fun是一個指向函數(shù)的指針變量,這個
函數(shù)必須是float類型。
9、【單選題】下列敘述正確的是【】
實參不能是表達式
函數(shù)可以沒有形式參數(shù)
A:
在一個函數(shù)中只能有一個return語句
B:
函數(shù)定義時,若函數(shù)類型缺省則默認的類型是void
C:
答D:案:B
解析:實參可以是表達式;函數(shù)可以沒有形式參數(shù);在一個函數(shù)中可以有多個return語
句,但是,每調(diào)用一次該函數(shù)只能有一個return語句被執(zhí)行;函數(shù)定義時,若函數(shù)類型
缺省則默認的類型是int。
10、【單選題】設(shè)intm[]={5,4,3,2,1},i=2;,數(shù)組元素引用錯誤的是【】
m[--i]
m[i*i]
A:
m[m[0]]
B:
m[i-2]
C:
D:
答案:C
解析:選項A,相當于引用m[1];選項B,相當于引用m[4];選項C,相當于引用m[5],
數(shù)組m最大下標就是4,是錯誤的引用;選項D,相當于引用m[0]。
11、【單選題】11?設(shè)intn=8;,執(zhí)行while(n>5)(n--;printf("%2d",n);)后的輸出結(jié)
果是【】
8765
876
A:
765
B:
76
C:
答D:案:C
解析:作為一條獨立的C語句n--;和語句--n;及n=n-1;效果都是一樣的,都是將n的
值減1,所以輸出結(jié)果是C。
12、【單選題】設(shè)intb,a[]=(1,2,3,4),*p=a;,與b=*p++;等價的語句是【】
b=*(++p);
b=*(p++);
A:
=p++;
B:
b=*++p;
C:
答D:案:B
解析:b=*(++p)與b=*++p等價,含義都是指針p加1后指向a[1],取出元素a[1]的值賦
給變量b。*p++中的運算符*和++的優(yōu)先級是相同的,他們的結(jié)合方向是自右至左,
b=*(p++);和b=*p++;等價,含義都是取出指針p所指元素a[0]的值賦給變量b,然后指針
p加1后指向a[1]。另外,inti=10,*p=&i;*p+=1;/*該語句等價于i+=1;*/++*p;/*
該語句等價于++i;*/(*p)++;/*該語句等價于i++;*/*p++;/*該語句的作用是先取*p的
值作為表達式的值,指針p加1;*/
13、【單選題】定義二維數(shù)組并初始化正確的是【】
inta[3][3]=[0,1];
inta[3][3]={0,1,2,3,4,5,6,7,8,9};
A:
inta[3][]={{1,2},{3,4)};
B:
inta[][3]=({0},{1,2},{3,4,5}};
C:
答D:案:D
解析:選項A錯誤,初始化數(shù)組用“{}”而不是“[]”或“()”。選項B錯誤,對
定義二維數(shù)組的同時進行初始化,但初始化的元素個數(shù)比數(shù)組長度多。選項C錯誤,不論
什么情況,定義二維數(shù)組時也不能省略第2維的長度。選項D正確,定義二維數(shù)組的同
時,按行進行了初始化,省略第一維是可以的。
14、【單選題】設(shè)typedefchar*POINT;,若有引用POINTp,q[5];,則【】
p是字符型變量,q是字符型數(shù)組
p是字符型變童,q是字符型指針數(shù)組
A:
p是字符型指針變量,q是字符型數(shù)組
B:
p是字符型指針變量,q是字符型指針數(shù)組
C:
答D:案:D
解析:POINT是指向char的指針類型,所以p是字符型指針變量,q是字符型指針數(shù)
組。
15、【單選題】文件使用方式“wb"的含義是【】
對文本文件只寫
對二進制文件只寫
A:
對文本文件讀和寫
B:
對二進制文件讀和寫
C:
答D:案:B
解析:文件使用方式:r:讀w:寫+:讀寫b:二進制文件使用方式|含義
“r/rb”(只讀)|為讀打開一個文本/二進制文件“w/wb”(只寫)|為寫打開或建立
一個文本/二進制文件,新寫的內(nèi)容覆蓋原來的內(nèi)容“r+/rb+”(讀寫)|為讀/寫打開
一個文本/二進制文件“w+/wb+”(讀寫)|為讀/寫建立一個文本/二進制文件
16、【問答題】#include<stdio.h>voidmain(){inty=10;for(;y>0;y--)if(y%3==
0){printf("%3d",--y);continue;}printf("\n");}
答案:852
解析:在循環(huán)過程中,y分別等于9、6、3時,y%3==0成立,分別執(zhí)行執(zhí)行
printf("%3d",--y);輸出852。continue只是一個迷惑,continue的作用跳過
continue之后的循環(huán)體語句,重新判斷循環(huán)控制條件,決定是否繼續(xù)循環(huán),而本題中
continue之后沒有循環(huán)體語句。
17、【問答題】執(zhí)行下列程序,輸入數(shù)據(jù):abed/#include<stdio.h>voidmain(){int
c;while((c=getchar())!='\n'){switch(c-'a'){case0:case1:putchar(c+3);
break;case2:putchar(c+2);default:putchar(c+1);break;}}printf"\n");}
答案:deede
解析:一共執(zhí)行四次循環(huán):第一次循環(huán),c的到的字符‘a(chǎn)’,switch(c-'a')括號中的
值為0,執(zhí)行case0:后面的語句,case0:后面沒有語句,繼續(xù)執(zhí)行執(zhí)行case1:后面的
語句putchar(c+3);輸出字符‘d’,然后執(zhí)行break跳出switch語句。第二次循環(huán),c
的到的字符‘b’,switch(c-'a')括號中的值為1,執(zhí)行case1:后面的語句
putchar(c+3);輸出字符‘e’,然后執(zhí)行break跳出switch語句。第三次循環(huán),c的到的
字符‘c’,switch(c-'a')括號中的值為2,執(zhí)行case2:后面的語句putchar(c+2);
輸出字符‘e’,后面沒有break語句,繼續(xù)執(zhí)行default:后面的語句putchar(c+1);輸
出字符‘d’,然后執(zhí)行break跳出switch語句。第四次循環(huán),c的到的字符‘d’,
switch(c-'a')括號中的值為3,執(zhí)行default:后面的語句putchar(c+1);輸出字符
‘e’,然后執(zhí)行break跳出switch語句。所以輸出結(jié)果為deede。
18、【問答題】intfun(intm){staticintn=1;++m;n++;return(m+n);}void
main(){inta,b;a=fun(0);b=fun(10);printf("a=%d,b=%d\n",a,b);}
答案:a=3,b=14
解析:本題考察靜態(tài)變量,靜態(tài)變量只在第一次調(diào)用所在函數(shù)時進行初始化,以后調(diào)用不
再進行初始化而是使用上次調(diào)用結(jié)束時該變量的值。調(diào)用fun(0),返回的是m+n=1+2=3,
調(diào)用fun(10)返回m+n=11+3=14
19、【問答題】#include<stdio.h>intx=1;voidfx(intp){x=p+x;p++;}void
main(){inta=3;fx(a);printf("%d%d\n",a,x);}
答案:34
解析:x是全局變量,在main()和fx()中都起作用。調(diào)用fx(a);a的3傳給形參p,
計算:x=1+3=4,執(zhí)行p++;后拍的值變?yōu)?,但不會回傳給變量a。所以最后輸出結(jié)果是3
4。
20、【問答題】計算s=1+2+3+...…十n,直到s的值大于1000為止,輸出s和n的值.
#include<stdio.h>voidmain(){intn,s;;/*第一空*/for(n=1;;n++){s=s+n;if
(s>1000);/*第二空*/}printf("s=%dn=%d\n",);/*第三空*/
答案:s=0breaks,n
解析:由于變量s存儲累加和,所以初值要置為1,所以第一空填s=0。當s的值大于
1000要結(jié)束循環(huán),所以第二空填break。最后輸出s和你的值,所以第三空填s,n。
21、【問答題】某班30名學(xué)生,由鍵盤輸入每個學(xué)生的姓名和兩門課的成績,輸出其中兩
門課都通過(成績大于等于60分)的學(xué)生姓名和成績。#include<stdio.h>#defineN30
structstudent{charname[20];intsl,s2;};/*第一空*/voidmain(){inti;
for(i=0;i<N;i++)scanf("%s%d%d",stu[i].name,);/*第二空*/for(i=0;i<N;i++)
{if()/*第三空*/printf("%s%d%d\n",stu[i].name,stu[i].sl,stu[i].s2);}
答案:stu[N]stu[i].s1,stu[i].s2stu[i].s1>=60&&stu[i].s2>=60
解析:主函數(shù)中stu[i].name,stu應(yīng)該是結(jié)構(gòu)體數(shù)組,主函數(shù)中并沒有定義該數(shù)組,所
以第一空的位置要定義該數(shù)組,所以第一空填stu[N]。用scanf完成學(xué)生的姓名和兩門課
的成績的輸入,第二空填stu[i].s1,stu[i].s2。第三空的位置要判斷兩門課都大于等于
60,所以應(yīng)該填stu[i].s1>=60&&stu[i].s2>=60。
22、【問答題】打印如下的乘法表。124369481216……9182736……81
voidmain(){inti,j:for(i=1;;i++)/*第一空*/{for(j=1j<=;j++)
printf("%5d",i*j);/*第二空*/;/*第三空*/}}
答案:i<=9iprintf("\n")
解析:外層循環(huán)負責(zé)控制打印的行數(shù),所以第一空填i<=9。內(nèi)層循環(huán)負責(zé)控制每行打印的
數(shù)的個數(shù),所以第二空填i。第三空的語句負責(zé)換行,所以應(yīng)該填printf("\n")。
23、【問答題】由鍵盤輸入10個實型數(shù)到數(shù)組,求它們的平均值,輸出平均值和其中大于
平均值的數(shù)。
答案:#include<stdio.h>voidmain(){inti;floata[10],ave=0;for(i=0;
i<10;i++){scanf(“%f”,&a[i]);/*輸入10個實型數(shù)到數(shù)組*/ave+=a[i];
/*求10個實型數(shù)的和*/}ave=ave/10;/*計算平均值*/printf("ave=%f\n",ave);
/*輸出平均值*/for(i=0;i<10;i++)if(a[i]>ave)printf("%f\n",a[i]);/*
輸出大于平均值的數(shù)*/
解析:利用循環(huán)輸入10個實型數(shù)到數(shù)組的同時求取10個數(shù)的和,然后計算平均值,最后
輸出輸出平均值和其中大于平均值的數(shù)。
24、【問答題】(1)寫出求三角形面積的函數(shù),函數(shù)頭為:floatarea(floata,floatb,
floatc)三角形面積公式:
,其中:
(2)寫出主函數(shù),根據(jù)下圖提
供的各邊的長度,調(diào)用上述函數(shù),計算并輸出多邊形的面積。
答案:#include<match.h>/*函數(shù)area()中用到函數(shù)sqrt()需要包含該函數(shù)庫
*/#include<stdio.h>floatarea(floata,floatb,floatc){floatt,s;
t=(a+b+c)/2;s=sqrt(t*(t-a)*(t-b)*(t-c));/*計算三角形面積*/return
s;}main(){floats1;s1=area(6.3,7.5,4.0)+area(3.7,7.5,8.0)+area(5.2,
6.1,8.0);/*調(diào)用三次area函數(shù)計算多邊形的面積*/printf(“s1=%f\n”,s1);}
解析:通過調(diào)用三次area函數(shù)分別求的組成計算多邊形的三個三角形的面積,它們的和
就是多邊形的面積。
25、【填空題】設(shè)intx=3;,執(zhí)行printf("%d\n",x+(x-=x*x));后的輸出結(jié)果是
______。
答案:-12
解析:先計算x=x-(x*x)=3-(3*3)=-6,x的值就變成了-6,然后計算x=x+(-6)=-6+(-
6)=-12,最后x的值和整個表達式的值都是-12,所以輸出結(jié)果為-12。
26、【填空題】b2-4ac≥0對應(yīng)的C語言關(guān)系表達式是______。
答案:b*b-4*a*c>=0
解析:b2-4ac≥0對應(yīng)的C語言關(guān)系表達式是b*b-4*a*c>=0。
27、【填空題】設(shè)charstr[10]="abc";,執(zhí)行printf(
溫馨提示
- 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年某房地產(chǎn)公司與某家居企業(yè)關(guān)于智能家居系統(tǒng)的合同
- 雨水收集利用項目施工合同
- 垃圾焚燒發(fā)電廠大包工程施工合同
- 親子教育機構(gòu)店長招聘合同樣本
- 研發(fā)服務(wù)租賃承包合同
- 劇院內(nèi)部裝修項目合同
- 林業(yè)作業(yè)拖拉機租賃合約
- 生態(tài)治理施工員聘用協(xié)議
- 河北省承德市2023-2024學(xué)年高一上學(xué)期期末考試數(shù)學(xué)試題(解析版)
- 設(shè)備維修進度協(xié)議
- 中醫(yī)病歷書寫基本規(guī)范
- 作物育種方法與實踐智慧樹知到期末考試答案2024年
- 個人建筑工程技術(shù)職業(yè)生涯發(fā)展規(guī)劃報告
- 排球《正面上手發(fā)球》教案
- 浣溪沙細雨斜風(fēng)作曉寒
- 2024-2030年中國pcba板行業(yè)市場現(xiàn)狀分析及競爭格局與投資發(fā)展研究報告
- 2023年檢測站站長工作總結(jié)報告
- 排球競賽規(guī)則
- 2024版藥品管理法
- 中印戰(zhàn)爭完整版本
- 公路工程資料整理-課件
評論
0/150
提交評論