浙江理工大學(xué) C程序設(shè)計試卷13_第1頁
浙江理工大學(xué) C程序設(shè)計試卷13_第2頁
浙江理工大學(xué) C程序設(shè)計試卷13_第3頁
浙江理工大學(xué) C程序設(shè)計試卷13_第4頁
浙江理工大學(xué) C程序設(shè)計試卷13_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

PAGE浙江理工大學(xué)C程序設(shè)計試題(十三)一、單選題(每題2分,共20分)1、若有定義:intx,y;chara,b,c;并有以下輸入數(shù)據(jù)(此處<CR>代表換行符,u代表空格):1u2<CR>AuBuC<CR>則能給x賦整數(shù)1,給y賦整數(shù)2,給a賦字符A,給b賦字符B,給c賦字符C的正確程序段是:_(1)__[A]scanf(“x=%dy=%d”,&x,&y);a=getchar();b=getchar();c=getchar();[B]scanf(“%d%d”,&x,&y);a=getchar();b=getchar();c=getchar();[C]scanf(“%d%d%c%c%c”,&x,&y,&a,&b,&c);[D]scanf(“%d%d%c%c%c%c%c%c”,&x,&y,&a,&a,&b,&b,&c,&c);2、若有以下定義和語句:doubler=99,*p=&r;*p=r;則以下正確的敘述是:(2)[A]以上兩處的*p含義相同,都說明給指針變量p賦值[B]在“doubler=99,*p=&r;”中,把r的地址賦值給了p所指的存儲單元[C]語句“*p=r;”把變量r的值賦給指針變量p[D]語句“*p=r;”取變量r的值放回r中3、以下說法正確的是:(3)[A]輸入項可以是一個實型常量,如:scanf(“%f”,3.5);[B]只有格式控制,沒有輸入項,也能正確輸入數(shù)據(jù)到內(nèi)存,例如:scanf(“a=%d,b=%d”);[C]當(dāng)輸入一個實型數(shù)據(jù)時,格式控制部分可以規(guī)定小數(shù)點(diǎn)后的位數(shù),例如:scanf(“%4.2f”,&d);[D]當(dāng)輸入數(shù)據(jù)時,必須指明變量地址,例如:scanf(“%f”,&f);4、以下程序運(yùn)行后,如果從鍵盤上輸入ABCDE<回車>,則輸出結(jié)果為:(4)[A]5[B]6[C]7[D]8#include<stdio.h>intfunc(charstr[]){intnum=0;while(*(str+num)!='\0')num++;return(num);}voidmain(){charstr[10],*p=str;gets(p);printf("%d\n",func(p));}5、若有以下定義:chara;intb;floatc;doubled;則表達(dá)式a*b/d-c值的類型為:(5)[A]float[B]int[C]double[D]char6、下列可作為C語言賦值語句的是:(6)[A]x=3,y=5[B]a=b=6[C]i--;[D]y=int(x);7、給出以下定義:charx[]=“abcdefg”;chary[]={'a','b','c','d','e','f','g'};則正確的敘述為:(7)[A]數(shù)組x和數(shù)組y等價[B]數(shù)組x和數(shù)組y的長度相同[C]數(shù)組x的長度大于數(shù)組y的長度[D]數(shù)組x的長度小于數(shù)組y的長度8、以下敘述中不正確的是:(8)[A]在不同的函數(shù)中可以使用相同名字的變量[B]函數(shù)中的形式參數(shù)是局部變量[C]在一個函數(shù)內(nèi)定義的變量只在本函數(shù)范圍內(nèi)有效[D]在一個函數(shù)內(nèi)的復(fù)合語句中定義的變量在本函數(shù)范圍內(nèi)有效9、設(shè)P1和P2是指向同一個int型一維數(shù)組的指針變量,k為int型變量,則不能正確執(zhí)行的語句是:(9)[A]k=P1-P2;[B]P2=k;[C]P1=P2;[D]k=*P1*(*P2);10、非法的轉(zhuǎn)義字符是:(10)[A]‘\t’[B]‘\018’[C]‘\n’[D]‘\xaa’二、程序填空題(閱讀以下程序說明和相應(yīng)程序,將空格補(bǔ)充完整。每小題2分,共30分)1、【程序說明】打印數(shù)字金字塔,金字塔層數(shù)由用戶輸入控制(1~9層)。要求金字塔最下面一行的第一個字符緊貼屏幕左側(cè)輸出。如輸入6,則輸出的金字塔如下圖。運(yùn)行示例:【程序代碼】#include<stdio.h>voidmain(){inti,j,n;printf("輸入金字塔層數(shù):\n");scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;(11);j++)(12);for(j=0;(13);j++)printf("%d",i);(14);}}【選項】(11)[A]j<=n[C]j<=n-i[B]j<=n-1[D]j<n-i(12)[A]printf("");[C]printf("\t");[B]printf("\n");[D]printf("\b");(13)[A]j<=2*i-1[C]j<2*i-2[B]j<=2*i-2[D]j<=2*i(14)[A]printf("");[C]printf("\t");[B]printf("\n");[D]printf("\b");2、【程序說明】隨機(jī)產(chǎn)生20個100~300之間的整數(shù),選出其中能被3或能被5整除的數(shù),并把它們從小到大排序后按每行5個數(shù)輸出。運(yùn)行示例:【程序代碼】#include<stdio.h>#include<stdlib.h>#include<time.h>voidmain(){inti,j,k,a[20],b[20],temp,(15);srand(time(NULL));printf("原始數(shù)據(jù):\n");for(i=0;i<20;i++){a[i]=rand()%201+100;if((16)){n=n+1;b[n]=a[i];}if(i%5==0)printf("\n");printf("%-5d",a[i]);}printf("\n上述數(shù)據(jù)中能被3或5整除的數(shù)從小到大排序后:\n");for(i=0;i<n-1;i++){k=i;for(j=i+1;j<n;j++){if((17))(18);}if(k!=i){temp=b[k];b[k]=b[i];b[i]=temp;}}for(i=0;i<n;i++){if(i%5==0)printf("\n");printf("%-5d",b[i]);}printf("\n");}【選項】(15)[A]n[C]n=1[B]n=0[D]n=-1(16)[A]a[i]%3==0||a[i]%5==0[C]a[i]%3=0&&a[i]%5=0[B]a[i]%3==0&&a[i]%5==0[D]a[i]%3=0||a[i]%5=0(17)[A]b[k]>b[i][C]b[k]>b[j][B]b[k]<b[j][D]b[i]>b[j](18)[A]k=j[C]i=j[B]k=i[D]j=k3、【程序說明】從輸入的字符串中找出特定的字符(由用戶輸入),并統(tǒng)一替換成另一個字符(也由用戶輸入)。運(yùn)行示例:【程序代碼】#include<stdio.h>#include<string.h>voidmain(){inti;charx,y,a[100];printf("請輸入一個句子(不超過80個字母):\n");gets((19));printf("請輸入一個欲被替換的字母:\n");(20);getchar();printf("輸入一個欲替換成的字母:\n");scanf("%c",&y);for(i=0;(21);i++)if((22))a[i]=y;printf("上述句子中的字母%c被替換成字母%c后:\n",x,y);(23)}【選項】(19)[A]a[][C]a()[B]a[100][D]a(20)[A]getchar(x);[C]x=getchar();[B]scanf(“%s”,x);[D]scanf(“%c”,x)(21)[A]a[i]!=\0[C]i<strlen(a[100])[B]i<strlen(a[])[D]a[i]!=’\0(22)[A]a[i]!=x[C]a[i]==x[B]a[i]=x[D]a[i]!=’\0(23)[A]

printf(“%s\n”,a[100]);[C]putchar(a);[B]printf(“%c”,a);[D]puts(a);4、【程序說明】輸入三個整數(shù),按由小到大的順序輸出這三個數(shù)?!境绦虼a】#include<stdio.h>voidswap((24)){inttemp;temp=*pa;*pa=*pb;*pb=temp;}voidmain(){inta,b,c,temp;scanf("%d,%d,%d",&a,&b,&c);if(a>b)swap(&a,&b);if(a>c)swap(&a,&c);if(b>c)swap(&b,&c);printf("%d,%d,%d",a,b,c);}【選項】(24)[A]int*pa,*pb[C]double*pa,*pb[B]int*pa,int*pb[D]double*pa,double*pb5、【程序說明】將兩個字符串連接起來?!境绦虼a】#include<stdio.h>voidmain(){chars1[80],s2[40];inti=0,j=0;printf("\nInputthefirststring:");scanf("%s",s1);printf("\nInputthesecondstring:");scanf("%s",s2);while(s1[i]!='\0')i++;while(s2[j]!='\0')(25);s1[i]='\0';printf("\nNewstring:%s",s1);}【選項】(25)[A]s1[i]=s2[j][B]s1[i++]=s2[j++][C]s1[i]=s2[j++][D]s1[i++]=s2[j]三、程序閱讀題(閱讀下列程序,寫出運(yùn)行結(jié)果,每小題2分,共20分)1、【程序代碼】#include<stdio.h>intstring_length(chars[]){inti=0;while(s[i]!='\0')i++;returni;}voidmain(){charstring1[]="testing";charstring2[]={'t','e','s','t','\0'};intj=0;j=string_length(string1);printf("thelengthofthefirststringis\n%d\n",j);j=string_length(string2);printf("thelengthofthesecondstringis\n\%d\n",j);}【選項】(26)程序運(yùn)行時,第二行輸出________(26)_________[A]6[B]7[C]8[D]9(27)程序運(yùn)行時,第四行輸出_______(27)_________[A]4[B]5[C]6[D]72、【程序代碼】#include<stdio.h>#include<math.h>voidmain(){intn,s=0;scanf("%d",&n);n=abs(n);while(n!=0){s=s+n%10;n=n/10;}printf("%d\n",s);}【選項】(28)程序運(yùn)行時,若輸入1234,則輸出____(28)_____[A]123[B]12[C]1[D]10(29)程序運(yùn)行時,若輸入-1280,則輸出____(29)_____[A]11[B]-128[C]-12[D]–13、【程序代碼】#include<stdio.h>voidmain(){inta[]={5,8,7,6,2,10,3};inty,z,*p=&a[1];y=(*--p)++;printf("%3d\n",y);.printf("%3d\n",a[0]);}【選項】(30)程序運(yùn)行時,第一行輸出______(30)__________[A]5[B]8[C]7[D]6(31)程序運(yùn)行時,第二行輸出______(31)__________[A]7[B]6[C]2[D]104、【程序代碼】#include<stdio.h>#include<malloc.h>#defineformat1"%d,%d\n"#defineformat2"%d,%d"voidmain(){inta,b,x,y;intf1(int,int),f2(int*,int*);scanf(format2,&a,&b);x=f1(a,b);printf(format1,a,x);y=f2(&a,&b);printf(format1,a,y);}intf1(inta,intb){staticintx;inty=0;x=x+a+b;y=y+x--;printf(format1,x,y);returny;}intf2(int*a,int*b){intx=0,*y=(int*)malloc(sizeof(y));*y=*a;*a=*b;*b=*y;x=x

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論