高級語言程序設計自考模擬4_第1頁
高級語言程序設計自考模擬4_第2頁
高級語言程序設計自考模擬4_第3頁
高級語言程序設計自考模擬4_第4頁
高級語言程序設計自考模擬4_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

[模擬]高級語言程序設計自考模擬4單項選擇題在每小題列出的四個備選項中只有一個是符合題目要求的。第1題:下列關于C語言的描述正確的是()A.C語言是面向硬件的高級語言B.C語言是面一種面向對象的程序設計語言C.C語言是一種結構化程序設計語言D.C語言的前身是匯編語言參考答案:C答案解析:第2題:C語言的基本數據類型包括()A.字符型和數值型B.字符型和邏輯型C.整型和實型D.指針型和數據型參考答案:A答案解析:第3題:已知有以下定義(假定現有計算機字長為16)inta=0x48,b=0xf0;a^b的值為()A.184B.183C.290D.287參考答案:A答案解析:因計算機字長為16,故a的二進制表示是0000000001001000,b的二進制表示是0000000011110000,進行按位加(a^b)所得的結果是:0000000010111000(十進制值為184)。第4題:若有以下定義:chars[20]=="programming",*ps=s;?則不能代表字符o的表達式是()A.*(ps+2)B.s[2]C.ps[2]D.*ps+=2參考答案:D答案解析:"*"的運算優(yōu)先級高于"+-",故*ps+=2相當于*ps='p'+2。第5題:若有說明語句:intI,;則以下關于x、*x、x[0]、&x[0][0]的描述正確的是()A.x、*x、x[0]、&x[0][0]均表示元素x[0][0]的地址B.只有x、*x表示元素x[0][0]的地址C.只有x[0]、&x[O]L0]表示元素x[0][0]的地址D.只有&x[0][0]表示元素的地址參考答案:C答案解析:x[0]表示數組x[3][4]第二行的首地址,也是數組元素[0][0]的地址第6題:若有下列類型說明語句:charw;intx;floaty;doublez;?則表達式w*x+z-y的結果的數據類型是()A.charB.intC.floatD.double參考答案:D答案解析:第7題:下列程序正確的運行結果為()#include<stdio.h>main(){inta[]={2,6,8,10,14,18);int*ptr[-]={&a[0],&a[1],&a[2],&a[3],&a[4]);inti;for(i=0;i<5;i++)a[i]=a[i]/2+a[i]printf("%d\n",*(*(ptr+2)));printf("%d\n",*(*ptr));}A.1221B.2112C.123D.312參考答案:A答案解析:#include<stdio.h>main(){inta[]={2,6,8.10,14,18);int*ptr[]={&a[4],&a[3],&a[2],&a[1],&a[0]};/*定義一個指向整型數據的指針的數組,并以數組a的前5個元素的地址為初值*/for(i=0;i<5;i++)a[i]=a[i]/2+a[i];/*數組a的元素分別加上各自現有值的1/2并保存在該元素中*/printf("%d\n",*(*(ptr+2)));/*輸出的是指針數組ptr的第三個元素所指向的數組a的元素值*/printf("%d\n",*(*ptr));/*輸出的是指針數組ptr的第一個元素所指向的數組a的元素值*/}第8題:以下函數的功能是()ABC(ps)char*ps;{char*P;p=ps;while(*p++);return(p-ps);}A.比較兩個字符串的大小B.求字符串的長度C.將字符串ps復制到P中D.以上三種說法都不對參考答案:B答案解析:第9題:若x、y是int型變量,則執(zhí)行以下語句后的x值是()#include<stdio.h>main(){intx,y;for(y=1,x=1;y<50;y++){if(x>=10)break;if(x%2==1)x+=5;}x-=3;}A.3B.6C.7D.10參考答案:A答案解析:#include<stdio.h>main(){intx,y;for(y=1,x=1;y<50;y++)/*以y為線索進行循環(huán),步進值為1*/{if(x>=10)break;/*如果x大于10則中斷循環(huán)*/if(x%2==1)/*當x是奇數時,執(zhí)行"x+=5;"*/x+=5;)X-=3;/*循環(huán)執(zhí)行完畢,x的值減3*/}第10題:執(zhí)行下列語句后b的值為()inta,b,C,l=4,m=6,n=8;int*p1=&1,*p2=&m,*p3;a=p1==&1;b=3*(-*p1)/(*p2)+7;c=*(p3=&n)=*p1*(*p2);A.4B.5C.7D.8參考答案:B答案解析:決定b的值的是語句"b=3*(-*p1)/(*p2)+7;"根據定義將其轉換成變量算術運算式是"b=3*(-1)/m+7=3*(-4)/6+7=5"。第11題:若有以下說明,則在seanf函數調用語句中對結構體變量成員引用方式不正確的是()structpub{charname[20];intage;intsex;}pub[5],*P;A.scanf("%s",pup[0].name);B.scanf("%d",&pup[0].age);C.scanf("%d",&p->sex);D.scanf("%d",*P.age);參考答案:D答案解析:"·"的優(yōu)先級遠高于"&"和"*"。第12題:設有以下定義inta[4][3]={{1,2,3},{4,5,6},{7,8,9),{10,11,12};int*ptr[3]={a[0]},*p=a[0];?則以下能正確表達數組元素a[1][2]的表達式是()A.*((*ptr+1)[2])B.*(*(p+5))C.*((*ptr+1)+4)D.*(*(p+1)+2)參考答案:C答案解析:"int*ptr[3]={a[0]}"定義了指針數組ptr并給這個數組的第一個元素賦值"a[0]","*((*ptr+1)+4)"的含義是:取指針數組ptr的第一個元素值再加5所得的指針量指向的內存單元的值。第13題:執(zhí)行以下程序段后s的值為()inta[]={5,6.4,4,8,9,5,8};ints=0;intk;for(k=0;k<8;k+=2)s+=*(a+k):A.17B.22C.27D.32參考答案:B答案解析:inta[]={5,6,4,4,8,9,5,8};ints=0:intk;for(k=0;k<8;k+=2)/*步進值為2,k=8時循環(huán)終止*/s+=*(a+k);/*s的值是a[0]、a[2]、a[4]、a[6]的和*/第14題:不能把字符串"Hello!"符給數組b的語句是()A.charb[10]={'H','e','l','l','o','!'};B.charb[10];b="Hello!";C.charb[10];strcpy(b,"Hello!");D.charb[10]="Hello!";參考答案:B答案解析:"charb[10];b="Hello!";語句中,b是數組的首地址而不是變量,故字符串"Hello!"的首地址不能賦給b,也就不能完成把字符串"Hello!"賦給數組b的任務。第15題:下列選項中合法的數組定義是()A.inta[]="string";B.inta[5]={0,1,2,3,4,5};C.chara="sting";D.chara[]={0,1,2,3,4}參考答案:A答案解析:填空題第16題:與標準輸出設備所對應的文件型指針名為______。參考答案:stdout詳細解答:第17題:將字符串寫入文件時,不寫入文件的字符串結束標志是______。參考答案:'\0'詳細解答:第18題:將字符轉換成ASCⅡ代碼值的函數是______。參考答案:toascii()詳細解答:第19題:文件包含命令是以______為開頭的編譯預處理命令。參考答案:#include詳細解答:第20題:______是C語言中唯一的一個三目運算符,它是由兩個符號組成。參考答案:條件運算符詳細解答:第21題:數組intarry[5][9];的第二維下標的最大值是______。參考答案:8詳細解答:第22題:在進行程序清單的編譯時,______是先于編譯進行的。參考答案:宏替換詳細解答:第23題:已知charstr[]="ABCD";,則語句printf("%d",strlen(str));的輸出是______。參考答案:4詳細解答:第24題:設inta;floatb;charc;longd;doublee;unsignedu;,則表達式a+c/b-d*e+u值的類型是______。參考答案:double詳細解答:第25題:設intx=5;x+==x-=x*x;則x的值是______。參考答案:-40詳細解答:程序分析題第26題:#include<stdio.h>voidmain(){inti;for(i=1;i<5;i++)printf("%d\t%c\n",i,('A'+i));}__________參考答案:1B2C3D4E詳細解答:#include<stdio.h>voidmain(){inti;for(i=1;i<5;i++)/*限定循環(huán)次數為4次*/printf("%d\t%c\n",i,('A'+i));,/*輸出的值并輸出ASCⅡ值為('A'+i)"字符*/}第27題:#include<stdio.h>voidmain(){inti,j,a[4][4];for(i=0;i<4;i++)for(j=0;j<4;j++)a[i][j]=1+i;--j;for(i=0;i<4;i++){for(j=0;j<4;j++)if(a[i][j]>0)printf("%3d",a[i][j]);printf("\n");}}__________參考答案:1111222233334444詳細解答:#include<stdio.h>voidmain(){inti,j,a[4][4];for(i=0;i<4;i++)/*限定循環(huán)次數為4次*/for(j=0;j<4;j++)a[i][j]=1+i;--j;/*限定循環(huán)次數為4次*/for(i=0;i<4:i++){for(j=0;j<4;j++)if(a[i][j]>0)printf("%3d",a[i][j]);/*設置輸出格式為3個字符的寬度,不足的寬度以空格補齊*/printf("n");}}第28題:#include<stdio.h>intf(intn){staticints=1;while(n)s*=n--;returns;}main(){inti,j;i=f(3);j=f(5);printf("Theoutputis:\n");printf("i=%dj=%d\n",i,j);}__________參考答案:Theoutputis:i=6j=720詳細解答:#include<stdio.h>intf(intn){staticints=1;/*s被定義為靜態(tài)變量,函數f()退出時其值被保留,且再次進入該函數時不再被初始化,該變量所使用的值為最近一次凋函數f()時所得到的值。*/while(n)s*=n--;returns;}main(){inti,j;i=f(3);/*第…次凋用f(),s被初始化為1,運算過程中s的值被改變?yōu)?,所以i=6*/j=f(5);/*第二次調用f(),s不再被初始化而是以值6參與本次運算,故j的值為6×5×4×3×2×1=720*/printf("Theoutputis:\n");printf("i=%dj=%d\n",i,j);}第29題:#include<stdio.h>inttrans(intm,intn){inti;if(m>n){i=m%n;trans(m,n);}elsei=m:if(i<10)printf("%d\n",i):elseprintf("%c",’A’+i-10):}main(){inti;printf("Theoutputis:\n");printf("n%d\n",-23);trans(21,3);printf("n%d\n",123);trans(123,16);}__________參考答案:Theoutputis:n-23詳細解答:#include<stdio.h>inttrans(intm,intn){inti;if(m>n){i=m%n;trans(m,n);}/*如果m>n,則將m除以n的余數賦給i,并再次調用函數trans()*/elsei=m;if(i<10)printf("%d\n",i);/*如果i<10,則打印輸出i的值*/elseprintf("%c",'A'+i-10);main(){inti;printf("Theoutputis:\n");printf("n%d\n",-23);trans(21,3);printf("n%dkn",123);trans(123,16);}程序填充題第30題:將一個十進制整數轉變成一個二進制整數。#include<stdio.h>main(){inti=0.j,n,num[20];scanf("%d",______);/*第一空*/while(n!=0){num[i++]=______;/*第二空*/n=______;)/*第三空*/for(j=i-1;j>=0;j--)printf("Ha",num[j]);printf("\n");}參考答案:&n/*第一空。從鍵盤上輸入十制數n*/n%2/*第二空。取余數填補低位*/n/2/*第三空*。為下一次循環(huán)進行更高的一位運算做準備/詳細解答:第31題:以下程序用來統計從終端輸入的字符中大寫字母的個數。以"$"作為輸入結束標記。#include<stdio.h>#include<ctypc.h>main(){intnum[126],i;charc;for(i=0;i<26;i++)num[i]=0;while((______)!='$')/*第一空*/if(isupper(c))num[c-65]+=1;for(i=0;i<26;i++)if(______)/*第二空*/printf("%c:%d\n",______,num[i]);/*第三空*/}參考答案:c=getchar()/*第一空。得到從鍵盤輸入的值,并判斷是不是結束標志"$"*/num[i]/*第二空。判斷用以記錄個數的數組元素是否為0,如為0則不輸出*/i+65/*第三空。從語句"num[c-65]+=1;"可知數組對字符的記錄是通過下標和字符的ASCⅡ值之間的關系進行的。故此處應填上與之相應的換算關系*/詳細解答:第32題:輸入5個字符,從中找出最大的并輸出。要求用字符數組存放此字符,并用指針數組元素分別指向這5個字符。#include<stdio.h>main(){chara[5],*p[5],*max;intI;for(I=0;I<5;I++)______;/*第一空*/for(I=0

溫馨提示

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

評論

0/150

提交評論