版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
《C語言程序設計》綜合練習試卷(一)試題一判斷題(每題1分,共10分)(用T表示正確、F表示不正確)C的任何類型數(shù)據(jù)在計算機內部都是以二進制形式存儲的。按格式符“%d”輸出float類型變量時,截斷小數(shù)位后取整輸出。字符數(shù)組中字符串可以整體輸入輸出。傳值調用的形參只有在被調用時,才被創(chuàng)建(分配存儲單元)。C語言中數(shù)組名是指針常量。結構體類型中的各成員項數(shù)據(jù)類型可以不相同。函數(shù)必須有返回值,否則不能使用函數(shù)。C程序執(zhí)行總是從第一個函數(shù)開始。可以用關系運算符對字符串進行大小比較。For循環(huán)只能用于循環(huán)次數(shù)已確定的場合。試題二單選題(每題1分共15分)從A)、B)、C)、D)四個選項中,選出正確的一項。1.以下程序運行后,輸出結果是#include"stdio.h"voidmain(){chars[10]="abcde",*p;p=s+2;printf("%s\n",p);}A)cdeB)字符c的ASCII碼值C)字符c的地址D)出錯2.對下面函數(shù)f,寫出f(f(3))的值。intf(intx){staticintk=0;x+=k--; returnx;}A)5B)3C)2D)43.以下程序運行后,輸出結果是#definePT5#defineS(x)PT*x#include"stdio.h"voidmain(){inta=1,b=2;printf("%d\n",S(a+b));}A)15B)7C)8D)無正確答案4.若有floata[3][4];正確的引用第3行第1列的元素是A)**(a+2)B)*(*a+2)C)a[3][1]D)a[3][0]printf("%.1f,%d\n",10./4,10/8);的輸出是A)2.5,1.25B)2.5,1CA)inta[];B)intn=5,a[n];C)intn,a[n]={1,2,3,4,5};D)inta[10/2];7.若有定義:structperson{charname[9];intage;};personst[10]={{"john",17},{"paul",19},{"Mary",18}};能輸出字母M的語句是A)printf("%c",st[2].name);B)printf("%c",st[3].name[1]);C)printf("%c",st[2].name[1]);D)printf("%c",st[2].name[0]);8.不能把字符串:“Hello!”賦給數(shù)組b的語句是A)charb[10]={'H','e','l','l','o','!','\0'};B)charb[10];b="Hello!";C)charb[10];strcpy(b,"Hello!");D)charb[10]="Hello!";9.若有inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則表達式值為6的是A)*p+6B)*(p+6)C)*p+=5D)p+510.已知:int*p,m=5,n;正確的程序段是A)p=&n;scanf("%d",&p);B)p=&n;scanf("%d",*p);C)scanf("%d",&n);*p=n;D)p=&n;*p=m;11.下面程序的運行結果是:#include"stdio.h"voidmain(){intx[4]={2,4,6,8},*p,**pp;p=x;pp=&p;printf("%d",*p);printf("%3d",**pp);}A)44B)24C)22D)4612.下面程序執(zhí)行后a的值是#include"stdio.h"voidmain(){inta,k=4,m=6,*p1=&k,*p2=&m;a=p1!=&m;printf("%d\n",a);}A)4B)1C)0D)運行時出錯,a無定值13.下列語句序列中,能夠將變量u、s中最大值賦給變量t的是A)if(u>s)t=u;t=s;B)t=s;if(u>s)t=u;C)if(u>s)t=s;elset=u;D)t=u;if(u>s)t=s;14.若有inta=7,b=12;則語句printf("%d",a&b);輸出結果A)19B)9C)5D)415.若有FILE*fp;以“只讀”方式打開文本文件a:\aa.dat,下列語句中正確的是A)fp=fopen("a:\aa.dat","w");B)fp=fopen("a:\aa.dat","r");C)fp=fopen("a:\\aa.dat","w");D)fp=fopen("a:\\aa.dat","r");試題三閱讀程序題(每題4分,共24分)寫出讀下列程序的輸出結果1.#include<stdio.h>voidmain(){charch; for(ch='a';ch<'f';ch++) {putchar(ch-32); putchar(ch); }}2.#include"stdio.h"voidmain(){inti;for(i=1;i<=4;i++){if((i%3)==0){printf("$");continue;}elseprintf("*");printf("#");}}3.#include"stdio.h" voidmain() { inti; for(i=1;i<5;i++) switch(i%5) { case5: printf("5"); case3:printf("3"); case1: printf("1"); default: printf("%2d",i); } }4.#include"stdio.h"voidmain(){intx[10];intt,i,j,m=1;for(i=0;i<10;i++){m=-m;x[i]=m*i;}for(i=1;i<10;i++){t=x[i];for(j=i-1;j>=0;j--) if(t>x[j])break;elsex[j+1]=x[j]; x[j+1]=t;} for(i=0;i<10;i++)printf("%3d",x[i]);}5.#include<stdio.h>voidmain(){voidswap1(intx,inty);voidswap2(int*x,int*y); voidswap3(int&x,int&y);inta1,b1,a2,b2,a3,b3; a1=a2=a3=10; b1=b2=b3=5; swap1(a1,b1); swap2(&a2,&b2); swap3(a3,b3);printf("a1=%db1=%d\n",a1,b1); printf("a2=%db2=%d\n",a2,b2); printf("a3=%db3=%d\n",a3,b3); }voidswap1(intx,inty){intt; t=x;x=y;y=t;}voidswap2(int*x,int*y){intt;t=*x;*x=*y;*y=t;}voidswap3(int&x,int&y){intt;t=x;x=y;y=t;}6.structnode{intnum;node*next;};intfun(node*h){ints,n=0,i;node*p=h;while(p!=NULL) { for(s=0,i=1;i<p->num;i++) if((p->num)%i==0)s+=i;if(s==p->num)n++; p=p->next;}returnn;}head寫出執(zhí)行語句“printf(“%d\n”,fun(head));”的輸出結果。head是頭指針,以head為頭指針的鏈表各結點的當前值如下所示:head285647NULL285647NULL試題四程序填空題(每空2分,共24分)1.下列程序讀入時間數(shù)值,將其加一秒后輸出,時間格式為hh:mm:ss,即時:分:秒,當小時數(shù)等于24時,置為0.#include<stdio.h>structstime{inthour,minute,second;};voidmain(void){stimetime;scanf(“%d:%d:%d”,1);time.second++;if(==60){2;time.second=0;if(time.minute==60){time.hour++;time.minute=0;if(3)time.hour=0;}}printf(“%d:%d:%d”,time.hour,time.minute,time.second);}2.以下程序建立一個如下所示的二維數(shù)組,并按以下格式輸出。10001
02020
00300
04040
50005#include"stdio.h"
voidmain()
{ inta[5][5]={0};
int*p[5],i,j;
for(i=0;i<5;i++)
p[i]=1; for(i=0;i<5;i++)
{ *(p[i]+i)=i+1;
*(p[i]+2)=i+1;
}
for(i=0;i<5;i++)
{ for(j=0;j<5;j++)
printf("%2d",p[i][j]);
3;
} }3.以下程序的功能是:從鍵盤上輸入一行字符串(不超過80個字符),把該字符串中的所有小寫字母改寫后依次輸出到c:\bb.txt文件中(其它字符不輸出)。小寫字母改寫規(guī)則如下:'a'改'b','b'改'c',……'x'改'y','y'改'z','z'改'a'。#include<stdio.h>#include<stdlib.h>voidmain(){FILE*fp;charstr[81];inti=0;if((fp=fopen(1))==NULL){printf("can'topenthefile.\n");exit(0);}gets(str);while(str[i]!='\0'){if(2) { if(str[i]=='z')str[i]='a'; elsestr[i]=str[i]+1; 3}i++;}fclose(fp);}4.以下程序的功能是:輸出{2m,3n|m>=1,n>=1}中由小到大排列的前32項數(shù),并且每行8個數(shù)。(如 #include"stdio.h" voidmain() { longm2,n3; intk; m2=2;n3=3;k=0; while(k<32) { if(1) { printf("%ld",m2); m2*=2; } else {printf("%ld",n3); 2; } k++;if(3)printf("\n"); } }試題五編程序(共27分)(一).輸入100個同學一門課的考試成績,求該門課程的平均成績,并在屏幕上輸出。(二).輸入一個3X4的矩陣,輸出最小元素值,以及它的行號和列號。(如有多個最小值,求其中的一個)(三).編寫函數(shù),將字符串中的指定字符刪除,并返回該字符串的地址。(如:字符串“cbaccbg",指定的刪除字符'c',則刪除后的字符串"babg")?!禖語言程序設計》綜合練習試卷(四)一、判斷題(正確的括弧內畫T,否則寫F,1×10’)1,在C程序中,語句之間必須要用分號“;”分隔。()2,在C程序中所用的變量必須先定義后使用。()3,若a和b是同類型變量,在執(zhí)行了賦值語句a=b;后b中的值將放入a中,b中的值將丟失。()4.在C程序中,APH和aph是兩個不同的變量。()5,break語句只能用在循環(huán)語句中。()6,C源程序的基本單位是函數(shù)。()7,定義:inta[3][5],i,j;(且0<=i<3,0<=j<5),則元素a[i][j]的地址可用*(a+i)+j表示.()8,c語言中實參和與其對應的形參共占用一個存儲單元。()9,srcat(strcpy(s1,s2),s3)的功能是將串s2復制到串s1中后再連接到串s3之后。()10,C語言中數(shù)組名是一個不可改變的地址常量,不能對它進行賦值運算。二、選擇題:(2×15’)1,不合法的八進制數(shù)是________A)0B)028C)077D)012,C語言中最簡單的數(shù)據(jù)類型包括__________。A)整型、實型、邏輯型B)整型、實型、字符型C)整型、字符型、邏輯型D)整型、實型、邏輯型、字符型3,為表示關系x≤y≤z,正確的C語言表達式是__________。A)(y>=x)&&(y<=z)B)(x>=y)AND(y>=z)C)(x>=y>=z)D)(x>=y)&(y>=z)4,若定義x和y為double類型,則表達式:x=2,y=x+5/2的值是__________A)4B)4.5C5,設有:inta=1,b=2,c=3,d=4,m=2,n=2;執(zhí)行(m=a>b)&&(n=c>d)后m,n的值為()A)01B)22C)13D)246,若二維數(shù)組a有m列,則在a[i][j]前的元素個數(shù)為()A)j*m+iB)i*m+jC)i*m+j-1D)i*m+j+17,下面程序段的運行結果是()chara[7]=”abcdef”;charb[4]=”ABC”;strcpy(a,b);printf(“%c”,a[5]);A)B)\0C)e8,下面程序的功能是將字符串s中所有的字符c刪除。請選擇填空。#include<stdio.h>main(){chars[80];inti,j;gets(s);for(i=j=0;s[i]!=’\0’;i++)if(s[i]!=’c’)_________________;s[j]=’\0’;put(s);}A)s[j++]=s[i]B)s[++j]=s[i]C)s[i]=s[j];D)s[j]=s[i]9,下面判斷正確的是()A)char*a="china”;等價于char*a;*a=”china”;B)charstr[10]={“china”};等價于charstr[10];str[]=“china”;C)char*s=”china”;等價于char*s;s=”china”;D)charc[4]=”abc”,d[4]=”abc”;等價于charc[4]=”abc”;d=c;10,下面程序段的運行結果是()char*p=”abcdefgh”;p+=3;printf(“%d\n”,strlen(strcpy(p,”ABCD”)));A)8B)12C)4D)711,為了判斷兩個字符串s1和s2是否相等,應當使用()A)if(s1==s2)B)if(s1=s2)C)if(strcpy(s1,s2))D)if(strcmp(s1,s2)==0)12,根據(jù)下面的定義,能打印出字母M的語句是()strctperson{charname[9];intage;};structpersonclass[10]={“John”,17,“Paul”,19,“Mary”,18,“adam”,16};A)printf(“%c\n”,class[3].name);B)printf(“%c\n”,class[3].name[1]);printf(“%c\n”,class[2].name[1]);printf(“%c\n”,class[2].name[0]);13,語句int(*ptr)();的含義是()A)ptr是指向一維數(shù)組的指針變量B)ptr是指向int型數(shù)據(jù)的指針變量C)ptr是指向函數(shù)的指針,該函數(shù)返回一個int型數(shù)據(jù)D)ptr是一個函數(shù)名,該函數(shù)的返回值是指向int型數(shù)據(jù)的指針14,在c語言中下面描述正確的是()A)函數(shù)的定義可以嵌套,但函數(shù)的調用不可以嵌套B)函數(shù)的定義不可以嵌套,但函數(shù)的調用可以嵌套C)函數(shù)的定義和函數(shù)的調用均可以嵌套D)函數(shù)的定義和函數(shù)的調用均不可以嵌套15,若k為整型,以下while循環(huán)__________次。intk=10;while(k=0)k=k-1;A)10次B)無限循環(huán)C)一次不執(zhí)行D)執(zhí)行一次三、程序結果填空:(5×5’)下面程序的運行結果是:#include<stdio.h>main(){char*p,s[]=”ABCDEFG”;for(p=s;*p!=’\0’;){printf(“%s\n”,p);p++;if(*p!=’\0’)p++;elsebreak;}}答案:___________________________下面程序段的運行結果是:chara[]=”12345”,*p;ints=0;for(p=a;*p!=’\0’;p++){s=10*s+*p-‘0’;printf(“%d\n”,s);}答案:_____________________________下面程序的運行結果是:main(){inta[6][6],i,j;for(i=1;i<6;i++)for(j=1;j<6;j++)a[i][j]=(i/j)*(j/i);for(i=1;i<6;i++){for(j=1;j<6;j++)printf(“%2d”,a[i][j]);printf(“\n”);}}答案:_______________________________下面程序的運行結果是:main(){inta=1,b=2,c=3;++a;c+=++b;{intb=4,c;c=b*3;a+=c;printf(“first:%d,%d,%d\n”,a,b,c);}printf(“second:%d,%d\n”,a,b);}答案:_________________________________下面程序的運行結果是:main(){inta[6]={1,4,123,12,-45,0};inti,j,t;for(j=0;j<5;j++){for(i=0;i<5-j;i++)if(a[i]>a[i+1]) {t=a[i];a[i]=a[i+1];a[i+1]=t;}printf("\n");for(i=0;i<6;i++) printf("%d",a[i]);}}答案:_______________________________四、填空:(5×4’)1,下面程序的功能是將已按升序排好序的兩個字符串a和b中的字符按升序歸并到字符串c中,請把程序填寫完整。#include<stdio.h>main(){chara[]=“acegikm”;charb[]=”bdfhjlnpq”;charc[80],*p;inti=0,j=0,k=0;while(a[i]!=”\0”&&b[j]!=’\0’){if(a[i]<b[j]){(1)}else{(2)}k++;}c[k]=’\0’;if((3))p=b+j;else(4);strcat(c,p);put(c);}(1):__________________(2):__________________(3):___________________(4):__________________2,函數(shù)是在二維數(shù)組中產生如下形式的揚輝三角形11211331#defineN11voidyahui(inta[][N]){intI,j;for(I=1;I<N;I++){a[I][1]=1;(1)=1;}for((2);I<N;I++)for(j=2;(3);j++)a[I][j]=(4)+a[I-1][j];}(1):________________________(2):________________________(3):_______________________(4):_______________________3.某人有5張2分的郵票和5張3分的郵票,問使用這些郵票可以組合出多少種不同面值的郵資(1張2分郵票和一張3分郵票組成5分的郵資;3張2分的郵票或2張3分郵票可以組成同樣的6分的郵資。)#include<stdio.h>inta[100];main(){intI,j,k,s,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年北師大版必修2物理下冊階段測試試卷含答案
- 2025年滬教版五年級語文上冊月考試卷含答案
- 2025年人教版(2024)選擇性必修3生物上冊月考試卷
- 2025年牛津譯林版九年級地理下冊階段測試試卷
- 二手化工設備2024年度采購合同2篇
- 2025年人教A新版七年級科學下冊月考試卷含答案
- 2025年上外版必修1語文下冊月考試卷含答案
- 2024年麻城市中醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫頻考點附帶答案
- 2025年人教版高一歷史下冊月考試卷
- 2025年冀教版七年級歷史下冊月考試卷含答案
- 家政服務與社區(qū)合作方案
- 2024年深圳市龍崗區(qū)城市建設投資集團有限公司招聘筆試真題
- 2024-2025學年初中七年級上學期數(shù)學期末綜合卷(人教版)含答案
- 2024-2025學年北京市朝陽區(qū)高三上學期期末考試數(shù)學試卷(含答案)
- 四年級數(shù)學(除數(shù)是兩位數(shù))計算題專項練習及答案
- 四川省綿陽市涪城區(qū)2024-2025學年九年級上學期1月期末歷史試卷(含答案)
- 2025年山東水發(fā)集團限公司社會招聘高頻重點提升(共500題)附帶答案詳解
- 2024年計算機二級WPS考試題庫(共380題含答案)
- 《湖南省房屋建筑和市政工程消防質量控制技術標準》
- 《工業(yè)園區(qū)節(jié)水管理規(guī)范》
- 警校生職業(yè)生涯規(guī)劃
評論
0/150
提交評論