2023年自考類計(jì)算機(jī)類(工學(xué)類)高級(jí)語言程序設(shè)計(jì)(一)歷年高頻考題帶答案難題附詳解_第1頁
2023年自考類計(jì)算機(jī)類(工學(xué)類)高級(jí)語言程序設(shè)計(jì)(一)歷年高頻考題帶答案難題附詳解_第2頁
2023年自考類計(jì)算機(jī)類(工學(xué)類)高級(jí)語言程序設(shè)計(jì)(一)歷年高頻考題帶答案難題附詳解_第3頁
2023年自考類計(jì)算機(jī)類(工學(xué)類)高級(jí)語言程序設(shè)計(jì)(一)歷年高頻考題帶答案難題附詳解_第4頁
2023年自考類計(jì)算機(jī)類(工學(xué)類)高級(jí)語言程序設(shè)計(jì)(一)歷年高頻考題帶答案難題附詳解_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2023年自考類計(jì)算機(jī)類(工學(xué)類)高級(jí)語言程序設(shè)計(jì)(一)歷年高頻考題帶答案難題附詳解(圖片大小可自由調(diào)整)第1卷一.歷年考點(diǎn)試題黑鉆版(共50題)1.訪問結(jié)構(gòu)體數(shù)組元素a[k]的成員b,寫作______。2.寫出"n是小于整數(shù)m的偶數(shù)"的C語言表達(dá)式:______。3.main()

{intn,k=1;

for(n=1;n<15;n++)

{k=1;

while(k<=n)

{if(n==k*k)

printf("%d,",n);

k++;}

}

}4.若文件型指針fp已經(jīng)指向某文件的末尾,則函數(shù)feof(fp)的返回值是

A.0B.-1C.NULLD.非零值5.以下程序運(yùn)行時(shí)輸入:12<回車>,執(zhí)行后輸出結(jié)果

#include<stdio.h>

main()

{charch1,ch2;intn1,n2;

ch1=getchar();ch2=getchar();

n1=ch1-'0';n2=n1*10+(ch2-'0');

printf("%d\n",n2);

}6.以下合法的數(shù)組說明是______A.chara[6]="string"B.inta[]={0,1,2,3,4,5};C.chara="string";D.inta[5]={0,1,2,3,4,5};7.有以下程序

main()

{inti,s=0;

for(i=1;i<10;i+=2)s+=i+1;

printf("%d\n",s);

}

程序執(zhí)行后的輸出結(jié)果是A.自然數(shù)1~9的累加和B.自然數(shù)1~10的累加和C.自然數(shù)1~9中的奇數(shù)之和D.自然數(shù)1~10中的偶數(shù)之和8.關(guān)于宏定義命令,敘述正確的是______A.在程序編譯前進(jìn)行宏替換B.在程序編譯時(shí)進(jìn)行宏替換C.在程序編譯后進(jìn)行宏替換D.在程序運(yùn)行時(shí)進(jìn)行宏替換9.下列敘述中,正確的是______A.C程序書寫格式嚴(yán)謹(jǐn),要求一行內(nèi)只能寫一個(gè)語句B.C程序的注釋只能出現(xiàn)在右側(cè)C.主函數(shù)可調(diào)用任何其他函數(shù)D.主函數(shù)必須放在所有函數(shù)的前面10.若有以下定義:

intapple[10];

則apple數(shù)組元素下標(biāo)的上限為______,下限為______。11.#include<stdio.h>

intt(intx,inty,intp,intq)

{p=x*x+y*y;

q=x*x-y*y;

}

main()

{inta=4,b=3,c=5,d=6;

t(a,b,c,d);

printf("%d%d\n",c,d);

}12.一個(gè)三位整數(shù)(100~999),若各位數(shù)的立方和等于該數(shù)自身,則稱其為"水仙花數(shù)"(如:153=13+53+33),找出所有的這種數(shù)。

#include<stdio.h>

main()

{intn,a,b,c;

for(c=1;c<=9;c++)

for(b=0;b<=9;b++)

for(a=0;______;a++)/*第一空*/

{

n=______;/*第二空*/

if(a*a*a+b*b*b+c*c*c==______)/*第三空*/

printf("%d\n",n);

}

}13.指針變量的使用主要有兩種,一是______;二是引用所指向的變量。14.值傳遞是把實(shí)參的______傳給被調(diào)用函數(shù)的形參。15.voidmain()

{

inti,a[5],*p;

for(i=4;i>=0;i--):*(a+i)=i;

for(p=a;p<a+5;p++)printf("%d\t",*p);

printf("\n");

}16.正確的變量定義是

A.unsignedlongd=1000;B.floatm1=m2=10.0;C.charc1='A',c2=A;D.doublex=0.618,x=3.14;17.編寫一個(gè)程序,其功能是輸出10~1000之間的所有素?cái)?shù)之和。18.設(shè)定義以下函數(shù):fun(int*p){return*p;},該函數(shù)返回的是______。19.有關(guān)變量的敘述,正確的是

A.形式參數(shù)是全局變量B.a和A在C語言中是同一個(gè)變量C.函數(shù)體內(nèi)定義的變量為全局變量D.在所有函數(shù)之外定義的變量為全局變量20.為了判定兩個(gè)字符串是否相等應(yīng)當(dāng)使用

A.if(s1==s2)B.if(s1=s2)C.if(strcmp(s1,s2)==0)D.if(strcmp(s1,s2)=0)21.#include<stdio.h>

#include<string.h>

voidmain()

{

char*pa,a[20]="Beijing2008";

for(pa=a+7;*pa!='\0';pa++)putchar(*pa);

putchar('\n'):

}22.變量定義并初始化正確的是

A.inta=1,*p=a;B.inta=2,p=*a;C.inta=3,p=&a;D.inta=4,*p=&a;23.#include<stdio.h>

voidmain()

{

inti,j,s,a[][3]={{1,2,3},{4,5},{6}};

for(s=0,i=0;i<3;i++)

switch(i)

{

case0:

case1:

case2:for(j=0;j<3;j++)s+=a[i][j];break;

}

printf("s=%d\n",s);

}24.設(shè)計(jì)結(jié)構(gòu)型,包含職工編號(hào)、姓名、基本工資和業(yè)績(jī)提成。編程序,輸入30名職工信息存入結(jié)構(gòu)型數(shù)組,然后統(tǒng)計(jì)基本工資和業(yè)績(jī)提成的總額并輸出。25.C語言中,&作為雙目運(yùn)算符表示的運(yùn)算是______。26.請(qǐng)?jiān)谠摮绦蚨斡覀?cè)寫出其輸出結(jié)果。

intaa[3][3]={{2},{4},{6}};

main()

{intj,*p=&aa[0][0];

for(j=0;j<2;j++)

{if(j==0)

aa[j][j+1]=*p+1;

else++P;

print(("%d",*p);}

}27.C語言規(guī)定常量有整型常量、______、______、字符串常量。28.設(shè)intn;,“n為偶數(shù)”的C語言邏輯表達(dá)式是______。29.在執(zhí)行循環(huán)結(jié)構(gòu)或switch結(jié)構(gòu)時(shí),能夠立即退出該結(jié)構(gòu)的語句是______。30.有以下程序(

)

main()

{char*p[10]={"abc","aabdfg","dcdbe","abbd","cd"};

printf("%d\n",strlen(p[4]));

}

執(zhí)行后輸出結(jié)果是A.2B.3C.4D.531.a盤根目錄下的一級(jí)子目錄tc中的text.exe文件的磁盤文件名是______。32.計(jì)算a、b、C中最小值的條件表達(dá)式為______。33.設(shè)charstr[20];,從鍵盤輸入中間含有空格的字符串的正確語句是______A.gets(str);B.gets(str[20]);C.scanf("%s",str);D.scanf("%c",str);34.設(shè)inta[10],*P=a;則對(duì)a[3]的引用可以是p[2]和*P______。35.設(shè)有定義語句intx[]={1,2,3,4,5},*P=x;,則不正確引用數(shù)組x元素的表達(dá)式______A.*(--p)B.*(p--)C.*(p++)D.*(++)p36.設(shè)有下列數(shù)據(jù)定義語句,則"printf("%d\n",d[0].y/d[0].x*d[1].x);"的輸出是

struct{intx;inty;}d[2]={{1,3},{2,7)};A.0B.1C.3D.637.設(shè)

inta[2][3]={1,2,3,4,5,6};

則數(shù)組元素a[1][0]的值是______。38.設(shè)計(jì)一個(gè)程序,使用多層嵌套的if-else語句,其功能為:輸入一個(gè)字符,如果是數(shù)字,輸出A;如果是大寫字母,輸出B;如果是小寫字母,輸出C;是其他符號(hào),輸出D。39.設(shè)有數(shù)組定義:chararray[]="china";,則數(shù)組array所占用的空間為

A.4個(gè)字節(jié)B.5個(gè)字節(jié)C.6個(gè)字節(jié)D.7個(gè)字節(jié)40.執(zhí)行語句"a=5+(c=6);"后,變量a、c的值依次為______。41.成員變量可以像一般的______一樣進(jìn)行各種運(yùn)算,只是在運(yùn)算時(shí)要加上“.”運(yùn)算符。42.#include<stdio.h>

#definePRprinff("x=%d,y=%d\n",x,y)

intx=2,y=8;

/*全局變量*/

voidfun()

{

x++;PR;

}

voidmain()

{

intx=8;

fun();

PR;

}43.編寫一個(gè)程序,其功能是:輸出兩個(gè)字符串對(duì)應(yīng)位置相等的字符,并輸出其位置號(hào)(自然編號(hào))。44."->"稱為______運(yùn)算符。45.下列函數(shù)返回值的數(shù)據(jù)類型是______

fun(intx)

{inty;y=4*x-5;returny;}A.intB.voidC.floatD.不確定46.C語言的庫(kù)函數(shù)中,可以輸出double型變量值的是______A.getcharB.scanfC.putcharD.printf47.如果函數(shù)甲調(diào)用函數(shù)乙,函數(shù)乙又調(diào)用函數(shù)丙,這叫______;函數(shù)甲自己調(diào)用自己,這叫______。48.使用語句scanf("a=%f,b=%f",&a,&b);輸入變量a、b的值(口代表空格),正確的是

A.125,2.4B.1.25口2.4C.a=1.25,b=2.4D.a=1.25口b=2.449.編程要求輸出兩個(gè)字符串對(duì)應(yīng)位置相等的字符,并輸出其位置號(hào)(自然編號(hào))。50.有以下程序:

#include<stdio.h>

#definePT4.5;

#defines(x)PT*x*x;

main()

{inta=1,b=2;printf("%4.1f\n",s(a+b));}

輸出結(jié)果為______A.8.5B.40.5C.程序有錯(cuò)D.18.0第1卷參考答案一.歷年考點(diǎn)試題黑鉆版1.參考答案:a[k].b2.參考答案:!(n%2)&&n<m3.參考答案:1,4,9,4.參考答案:D[解析]本題主要考查的知識(shí)點(diǎn)為feof函數(shù)。[要點(diǎn)透析]文件尾測(cè)試函數(shù)intfeof(FILE*fp),測(cè)試fp所指向的文件是否到達(dá)文件尾。是文件尾返回非0;否則返回0。5.參考答案:12[解析]

#include<stdio.h>

main()

{charch1,ch2;intn1,n2;

ch1=getchar();ch2=getchar();/*變量ch1和ch2分別獲得初值1和2*/

nI=ch1-'0';n2=n1*10+(ch2-'0');/*變量ch1和ch2都以其ASCⅡ值參與運(yùn)算*/

printf("%d\n",n2);

}6.參考答案:B[考點(diǎn)]數(shù)組初始化

[解析]字符串“string”長(zhǎng)度為6,但是因?yàn)橄到y(tǒng)在字符串后面加上'\0'作為結(jié)束符,所以占7個(gè)字節(jié),A項(xiàng)中字符串超出其容量,應(yīng)為a[7];同理,D項(xiàng)中超出了數(shù)組容量;而C項(xiàng)中,字符串不能賦值給字符變量,應(yīng)賦單個(gè)字符。7.參考答案:D[解析]

main()

{inti,s=0;

for(i=1;i<10;i+=2)/*i的初始值為1,步進(jìn)值為2,循環(huán)條件是i<10*/

s+=i+1;/*從上述循環(huán)條件來看,應(yīng)為求自然數(shù)1~9中的奇數(shù)之和;但是有意思的是"s+=i+1"改變了現(xiàn)狀,"+"的運(yùn)算優(yōu)先級(jí)別高于"+=",故"1"在每次s的求和運(yùn)算中都有一份功勞?,F(xiàn)實(shí)是,每次s的求和運(yùn)算都多加了一個(gè)1,結(jié)果就成了自然數(shù)1~10中的偶數(shù)之和*/

printf("%d\n",s);

}8.參考答案:A[考點(diǎn)]本題主要考查的知識(shí)點(diǎn)為宏。

宏定義命令的一般格式是:

#define

宏名

一串符號(hào)

在程序清單中可以出現(xiàn)已經(jīng)定義過的“宏名”,稱為“宏調(diào)用”;在對(duì)源程序清單進(jìn)行編譯之前,將把所有的“宏名”替換成對(duì)應(yīng)的“一串符號(hào)”,稱為“宏替換”。9.參考答案:C[考點(diǎn)]C程序的特點(diǎn)

[解析]C程序書寫靈活,在一行上可書寫多個(gè)語句;注釋可放在任何位置;主函數(shù)可放在任何位置。10.參考答案:9,0[考點(diǎn)]一維數(shù)組的下標(biāo)

[解析]一維數(shù)組的下標(biāo)范圍為0~長(zhǎng)度-1。11.參考答案:56(注意:傳遞實(shí)參的值,但不改變實(shí)參的值)12.參考答案:a<=9/*第一空。明確個(gè)位數(shù)的范圍(從0~9)*/

100*c+10*b+a/*第二空。計(jì)算并求出這個(gè)三位數(shù)*/

n/*第三空。將各位數(shù)的立方和與這個(gè)三位數(shù)進(jìn)行比較以確定其是否為"水仙花數(shù)"*/13.參考答案:賦值14.參考答案:值15.參考答案:0

1

2

3

416.參考答案:A17.參考答案:

main()

{longs=OL;

intk,m,flag;

for(k=10;k<1001;k++)

{flag=1;

for(m=2;m<=k/2;m++)

if(k%m==0){flag=0;break;}

if(flag)s+=k;

}

printf("s=%1d\n",s);

}18.參考答案:形參p所指存儲(chǔ)單元中的值[考點(diǎn)]取值運(yùn)算符

[解析]*p代表的是形參所指單元中的值。19.參考答案:D20.參考答案:C21.參考答案:200822.參考答案:D[解析]A項(xiàng)中,不能將一個(gè)變量賦值給一個(gè)指針變量;B項(xiàng)中,*a的表達(dá)方式錯(cuò)誤;C項(xiàng)中,不能將變量的地址賦給變量。23.參考答案:624.參考答案:main()

{

struct

{longnum;

charname[10];

floatwage[2];

}s[30],*p=s;

intk;

floatx,total[2];

for(p=s;p<s+30;p++)

{scanf("%1d,%s",&p->num,p->name);

for(k=0;k<2;k++)

{scanf("%f",&x);

p->wage[k]=x;}

}

total[0]=total[1]=0.0;

for(k=0;k<2;k++)

for(p=s;p<s+30;p++)

total[k]+=p->wage[k];

for(k=0;k<2;k++)

printf("%f\n",total[k]);

}25.參考答案:(按)位與26.參考答案:23[解析]

intaa[3][3]={{2},{4),{6}};main(){intj,*p=&aa[0][0];for(j=0;j<2;j++)/*限定循環(huán)只有兩次,J=0一次、j=1一次*/{if(j==0)/*第一次執(zhí)行循環(huán)時(shí),j==0成立*/aa[j][j+1]=*p+1;/*將"3"賦給"a[0][1]"*/else++P;/*第二次執(zhí)行循環(huán)時(shí),j==0不成立,執(zhí)行這個(gè)語句*/printf("%d",*p);}/*兩次循環(huán)都執(zhí)行,第一次打印a[0][0]第二次打印a[0][1]。*/}27.參考答案:實(shí)型常量、字符常量[考點(diǎn)]常量類型

[解析]常量類型有整型常量、實(shí)型常量、字符常量和字符串常量。28.參考答案:a%2==0[考點(diǎn)]邏輯表達(dá)式的應(yīng)用

[解析]n為偶數(shù)等價(jià)于n%2的運(yùn)算結(jié)果,等于0。29.參考答案:break30.參考答案:A[解析]輸出的數(shù)據(jù)是第五個(gè)字符串的字符個(gè)數(shù)。p[4]傳遞給函數(shù)strlen()的址第五個(gè)字符串的首地址。31.參考答案:a:\tc\text.exe[考點(diǎn)]磁盤文件名

[解析]磁盤文件名的一般組成是盤符:路徑\文件主名.擴(kuò)展名。路徑是由目錄序列組成的,目錄間的分隔符號(hào)為“\”。32.參考答案:a<d?a:(b<c?(d=b):(d=c))33.參考答案:A[考點(diǎn)]字符串的輸入函數(shù)

[解析]gets()函數(shù)和使用“%s”格式的scanf()函數(shù)都可以從鍵盤接受字符串,但輸入時(shí)有區(qū)別:對(duì)于scanf()函數(shù),回車換行符或空格符都看成輸入字符串的結(jié)束;對(duì)于gets()函數(shù),只有回車換行符才看威輸入字符串的結(jié)束,空格符看成字符串的一部分。34.參考答案:+235.參考答案:A[考點(diǎn)]數(shù)組名指向的地址

[解析]數(shù)組名代表數(shù)組的首地址,*p=x表示把數(shù)組x的首地址賦給了p,因此--p指針移出了數(shù)組外,所以選擇A項(xiàng)。36.參考答案:D37.參考答案:438.參考答案:main()

{charc;

scanf("%c",&c);

if('0'<=c&&c<='9')

printf("c=%c\n",'A');

elseif('A'<=(c&&c<='Z')

printf("c=%c\n",'B');

elseif('a'<=c&&c<='z')

printf("c=%c\n",'C');

else

printf("c=%c\n",'D');

}39.參考答案:C40.參考答案:11

641.參考答案:變量[考點(diǎn)]結(jié)構(gòu)型變量成員

[解析]結(jié)構(gòu)型變量成員的使用和一般的普通變量或數(shù)組的使用方法完全相同。42.參考答案:

x=3,y=8

x=8,y=843.參考答案:

#include<stdio.h>

main()

{

char*c,*s;

int

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論