




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上第一章 基礎(chǔ)知識(shí)1、c語(yǔ)言支持三種數(shù)制,下列哪個(gè)數(shù)制不支持?A)十進(jìn)制B)八進(jìn)制C)二進(jìn)制D)十六進(jìn)制【答案】:選擇C。計(jì)算機(jī)可以識(shí)別的是二進(jìn)制數(shù),八進(jìn)制和十六進(jìn)制的提出是為了“壓縮”二進(jìn)制,所以本質(zhì)上八進(jìn)制和十六進(jìn)制一樣,故而兩者要么都選,要么都不選。熟悉c語(yǔ)言的人都知道,十進(jìn)制數(shù)可以在c程序中直接使用而二進(jìn)制則不可以。二進(jìn)制是機(jī)器可以識(shí)別的碼,在c語(yǔ)言中不可以直接被識(shí)別。第二章 c語(yǔ)言的組成結(jié)構(gòu)及數(shù)據(jù)1、下列標(biāo)識(shí)符在c語(yǔ)言中屬于合法的用戶自定義的標(biāo)識(shí)符?A)a_12 B)a12 C)3m D)do E)aa.txt F)c#bh 【答案】c語(yǔ)言中允許的合法的用戶標(biāo)
2、識(shí)符只有數(shù)字、字母、下劃線,且必須以字母或者下劃線開始,不能使用系統(tǒng)預(yù)定于的關(guān)鍵字作為標(biāo)識(shí)符。因此,C、D、E、F均不正確。2、在c語(yǔ)言中下列常量的寫法正確的是?A)、-32767 、023f 、0x123dfh分析:正確。是一個(gè)十進(jìn)制整型常量的正確表示法。 :錯(cuò)誤。以“0”開頭的是八進(jìn)制數(shù),在其表示的數(shù)中只能出現(xiàn)07這七種符號(hào)。正確的寫法為:023. :錯(cuò)誤。以0x開頭的是十六進(jìn)制數(shù),在其表示的數(shù)中只能出現(xiàn)09和AF這十六種符號(hào),正確的寫法為:0x123df。B)、123.46 、123. 、.456 、0.456分析:以上均是c語(yǔ)言中實(shí)型數(shù)據(jù)的一種正確表示小數(shù)形式。 小數(shù)形式定義:由數(shù)字和
3、小數(shù)點(diǎn)組成。C):123.4E4 、5.4E0.5 、4E 、1.23e-5 :3E2分析:、不正確,其余全部正確??疾閷?shí)型數(shù)據(jù)的指數(shù)表示形式。指數(shù)形式應(yīng)注意:一、 字母E或e之前之后必須有數(shù)字,且后必須是整數(shù)。二、 字母E或e的前后及各數(shù)字之間不能有空格。C)、”abbchkdl” 、”a” 、” 、 、n 、分析:、不正確,其余全部正確。考查字符型常量和字符串常量的表示方法。字符型常量應(yīng)注意:一、 有一對(duì)單引號(hào)括一個(gè)字符。二、 轉(zhuǎn)移字符常量,必須以一個(gè)反斜杠”開頭。字符串常量應(yīng)注意:一、 用一對(duì)雙引號(hào)括起來若干個(gè)字符。3、若int a,b;,則表達(dá)式a=3,b=1,b=a+b;的值為 4
4、,此時(shí)a= 3 ,b= 4 。分析:逗號(hào)表達(dá)式的形式為:表達(dá)式1,表達(dá)式2,表達(dá)式n。 功能:逗號(hào)表達(dá)式的值就是表達(dá)式n的值,求值順序是從左至右依次求解。令注:可以編寫如下程序?qū)︻}目結(jié)果進(jìn)行驗(yàn)證。#include<stdio.h>void main() int a,b; printf("%d n",(a=3,b=1,b=a+b); printf("a=%d , b=%dn",a,b);/程序2-1.cpp運(yùn)行結(jié)果,如下圖所示:4、若float x=123.456,y=0.6;求解下列表達(dá)式的值。 1)、(int) x= 123 ,(int)
5、(x)= 123 。 2)、(int) x+y= 123. ,(int)(x+y)= 124 。分析:此題考查了強(qiáng)制類型轉(zhuǎn)換以及不同類型的數(shù)據(jù)在做算術(shù)運(yùn)算時(shí)最終結(jié)果如何得到。 (int)x:表示對(duì)浮點(diǎn)型x進(jìn)行強(qiáng)制類型轉(zhuǎn)化為整型。 (int)x+y:表示將x強(qiáng)制類型轉(zhuǎn)換成整型后,再與浮點(diǎn)型數(shù)據(jù)y進(jìn)行相加運(yùn)算。由于浮點(diǎn)型數(shù)據(jù)高于整型,故而整個(gè)表達(dá)式的結(jié)果為浮點(diǎn)型數(shù)據(jù)且與y保留一樣位數(shù)的小數(shù)。令注,可以編寫如下程序?qū)︻}目進(jìn)行驗(yàn)證。#include<stdio.h>void main()float x=123.456,y=0.6;printf("%dn",(int)x)
6、;printf("%dn",(int)(x);printf("%fn",(int)x+y);printf("%dn",(int)(x+y);/程序2-2.cpp運(yùn)行結(jié)果,如下圖所示:5、求下列表達(dá)式的值。注意:求余(%)運(yùn)算符兩側(cè)的操作數(shù)應(yīng)均為整數(shù)。1)、17%3= 2 。2)、17%-3= 2 。C語(yǔ)言中,凡是表達(dá)式都有一個(gè)確定的值。3)、-17%3= -2 。4)、-17%-3= -2 。分析:求余表達(dá)式的求解過程:先忽略負(fù)號(hào)不計(jì)求出余數(shù),再將所得余數(shù)的符號(hào)定成與被除數(shù)相同的符號(hào)即可。編寫如下程序?qū)︻}目進(jìn)行驗(yàn)證:#include&
7、lt;stdio.h>void main()printf("17%3=%dn",17%3);printf("17%-3=%dn",17%-3);printf("-17%3=%dn",-17%3);printf("17%-3=%dn",-17%-3);/程序2-3.cpp程序運(yùn)行結(jié)果如下圖所示:6、下面程序的輸出結(jié)果為 9, 6.#include<stdio.h>void main()int k=3,w;w=(k+)+(k+)+(k+);printf("%d %dn",w,k);
8、第三章 順序結(jié)構(gòu)順序結(jié)構(gòu)程序設(shè)計(jì)示例: 編寫一個(gè)求某同學(xué)的3門課程的平均成績(jī)程序。程序如下:#include<stdio.h>void main()int a,b,c;float average;a=87;b=69;c=95;average=(a+b+c)/3;printf("該同學(xué)3門課程的平均成績(jī)?yōu)椋?quot;);printf("%fn",average);/程序3-1.cpp程序運(yùn)行結(jié)果,如下圖所示:以上就是一個(gè)順序結(jié)構(gòu)程序的示例。1、 若char a,b;a=getchar();b=getchar();當(dāng)進(jìn)行如下輸入時(shí),分別求a,b的值。1)
9、、輸入:fg<回車>,則a= f ,b= g 。2)、輸入:f,h<回車>,則a= f ,b= , 。3)、輸入:f<回車><回車>,則a= f ,b= <回車>。分析:此題考查了getchar()函數(shù)的使用,該函數(shù)的輸入可以是鍵盤上的任意字符。第五章 循環(huán)結(jié)構(gòu)1、編寫一個(gè)由goto和if語(yǔ)句組合使用的循環(huán)語(yǔ)句的程序,實(shí)現(xiàn)1+2+3+100。編寫的程序如下:#include<stdio.h>void main()int i,sum;i=0;sum=0;LP:sum=sum+i;/此時(shí)LP為標(biāo)號(hào) i=i+1; if(i<
10、;=100)goto LP;/轉(zhuǎn)向LP標(biāo)號(hào)所在的行 printf("sun=1+2+3+.+100=%dn",sum); /程序5-1.cpp程序運(yùn)行結(jié)果如下圖所示:2、如果x=3,求如下程序的輸出結(jié)果 1 -2 。doprintf("%dt",x-=2);while(!(-x);分析:根據(jù)“直到型循環(huán)”的特點(diǎn),依次判斷程序每走一步的變量x的值。令注:可以編寫如下程序驗(yàn)證題目:#include<stdio.h>void main()int x=3;doprintf("%dt",x-=2);while(!(-x);/5-2.
11、cpp程序運(yùn)行的結(jié)果如下圖所示:3、求如下程序循環(huán)體的語(yǔ)句被執(zhí)行的次數(shù) 5 。int i=0;int x,y;for(x=0,y=0;y!=250|x<4;x+)y+=50;分析:此題考查了邏輯運(yùn)算符“|”為“假”時(shí)的條件,即其左右兩側(cè)的表達(dá)式同時(shí)為假時(shí),整個(gè)表達(dá)式才是“假”。可以編寫如下程序?qū)︻}目進(jìn)行驗(yàn)證:#include<stdio.h>void main()int i=0;int x,y;for(x=0,y=0;y!=250|x<4;x+)i+;y+=50;printf("循環(huán)的次數(shù)為%dn",i);/程序5-3.cpp4、求如下程序的輸出結(jié)果
12、 。int x=3,y=6,a=0;while(x+!=(y-=1)a+=1;if(y<x)break;分析:注意x+與x=x+1以及+x等這些表達(dá)式求值的結(jié)果。例如x=3時(shí),表達(dá)式x+的結(jié)果為3,表達(dá)式x=x+1的結(jié)果為4,表達(dá)式+x的結(jié)果為4.可以編寫如下程序?qū)︻}目進(jìn)行驗(yàn)證:#include<stdio.h>void main()int x=3,y=6,a=0;while(x+!=(y-=1)a+=1;if(y<x)break;printf("x=%d,y=%d,a=%dn",x,y,a);/程序5-4.cpp5、求如下程序的輸出結(jié)果 1 。in
13、t m=7,n=9;while(m!=n)while(m>n)m-=n;while(n>m)n-=m;printf("m=%dn",m);分析:本題主要了while()循環(huán)的循環(huán)結(jié)束條件??梢跃帉懭缦鲁绦?qū)︻}目進(jìn)行驗(yàn)證:#include<stdio.h>void main()int m=7,n=9;while(m!=n)while(m>n)m-=n;while(n>m)n-=m;printf("m=%dn",m);/程序5-5.cpp6、設(shè)計(jì)一個(gè)求1000以內(nèi)的“完數(shù)”的程序。(提示:完數(shù):一個(gè)數(shù)恰好等于它的因子之和)
14、#include<stdio.h>void main()int i,a,m;for(i=1;i<1000;i+)for(m=0,a=1;a<=i/2;a+)if(!(i%a)m=m+a;if(m=i)printf("%4dn",i);運(yùn)行結(jié)果如下圖所示:7、設(shè)計(jì)一個(gè)程序求100499之間的所有水仙花數(shù)。提示,水仙花數(shù):各位數(shù)字的立方和恰好等于該數(shù)字本身。#include<stdio.h>#include<math.h>void main()int i,j,k,m,n;for(i=1;i<=4;i+)for(j=0;j&l
15、t;=9;j+)for(k=0;k<=9;k+)/*m=i*100+j*10+k;n=i*i*i+j*j*j+k*k*k;*/m=i*100+j*10+k;n=pow(i,3)+pow(j,3)+pow(k,3);if(m=n)printf("%3dn",m);第六章 數(shù)組一、選擇題1、若有數(shù)組定義:char array=”china”;則數(shù)組array所占的空間為()A、4個(gè)字節(jié) B、5個(gè)字節(jié)C、6個(gè)字節(jié)D、7個(gè)字節(jié)答案:C2、 以下程序的輸出結(jié)果是()main()char str12=a,b,d,c,t,h;printf(“%dn”,strlen(str);A、6
16、B、7C、11D、12答案:A 函數(shù)strlen()計(jì)算的是字符的實(shí)際有效長(zhǎng)度即不包含自負(fù)結(jié)束標(biāo)志位0。3、下述對(duì)C語(yǔ)言字符數(shù)組的描述中錯(cuò)誤的是()A、字符數(shù)組可以存放字符串。B、字符數(shù)組中的字符串可以整體輸入和輸出。C、可以在賦值語(yǔ)句中用賦值運(yùn)算符“=”對(duì)字符數(shù)組整體賦值。D、不可以用關(guān)系運(yùn)算符對(duì)字符數(shù)組中的字符串進(jìn)行比較。答案:C4、若有定義:int array8;。則以下表達(dá)式中不能代表數(shù)組array1的地址的是()A、&array0+1B、&array1C、&array0+D、array+1答案:C 注意:地址常量不能進(jìn)行自增或者自減運(yùn)算。5、不合法的main函
17、數(shù)命令行參數(shù)表示形式是()A、main(int a,char *c) B、main(int arc,char *arv)C、main(int argc,char *argv) D、main(int argv,char *argc)答案:C main函數(shù)的第一個(gè)形參是一個(gè)整型變量,第二個(gè)形參是一個(gè)指針數(shù)組,其元素指向字符型數(shù)據(jù)。6、有定義語(yǔ)句:char s10;若要從終端給s輸入5個(gè)字符,錯(cuò)誤的輸入語(yǔ)句是()A、gets(&s0);B、scanf(“%s”,s+1);C、gets(s);D、scanf(“%s”,s1);答案:D scanf
18、()函數(shù)的輸入列表參數(shù)為變量的“地址”;7、下列對(duì)數(shù)組的定義正確的是()A、int a1.5;B、int a-10;C、int N=9; int aN;D、int a0;E、#define N 10 Int aN;答案:E 定義數(shù)組時(shí),方括號(hào)內(nèi)的表達(dá)式必須為大于零的正整數(shù)。二、填空題1、C程序在執(zhí)行的過程中,不檢查數(shù)組下標(biāo)是否 越界 。2、下面程序段的運(yùn)行結(jié)果是 編譯出錯(cuò) 。main()注意:字符數(shù)組的初始化方法;char s6;s="abcd"printf(""%s"n");3、下面程序段的運(yùn)行結(jié)果是 “abcd” 。#includ
19、e<stdio.h>void main()char s6="abcd"printf(""%s"n",s);4、以下程序運(yùn)行后的輸出結(jié)果是 5 。main()char *p=”abcde0fghjik0”;printf(“%dn”,strlen(p);5、若有定義和語(yǔ)句;int a4=1,2,4,5,*p;p=&a2;,則*-p的值是 2 ,-*p的值是 3 。6、若有如下定義和語(yǔ)句: int *p3,a6,n; for(n=0;n<3;n+) pm=&a2*m;則*p0引用的是a數(shù)組元素 a0 ;*(
20、p1+1)引用的是a數(shù)組元素 a3 。7、以下程序的輸出結(jié)果是 3 , 5 。void swap(int *a,int *b)int *t;t=a;a=b;b=t;void main()Int i=3,j=5,*p=&i,*q=&j;swap(p,q);printf(“%d,%dn”,*p,*q);三、閱讀程序題1、運(yùn)行下面的程序,如果從鍵盤上輸入:123<空格>456<空格>789<回車>,輸出結(jié)果是 。main()char s100;int c,i;scanf("%c",&c);scanf("%d&q
21、uot;,&i);scanf("%s",s);printf("%c,%d,%sn",c,i,s);/程序6-2.cpp答案:1,23,456.分析:本題考查了函數(shù)scanf()進(jìn)行數(shù)據(jù)輸入時(shí)遇到回車、空格等則輸入結(jié)束??梢跃帉懭缦鲁绦?qū)︻}目進(jìn)行驗(yàn)證:2、以下程序段的輸出結(jié)果 。main()char b="Hello,you"b5=0;printf("%sn",b);答案:Hello分析:本題考查了字符串輸出時(shí)遇到0結(jié)束??梢跃帉懭缦鲁绦?qū)︻}目進(jìn)行驗(yàn)證:#include<stdio.h>void
22、main()char b="Hello,you"b5=0;printf("%sn",b);/程序6-3.cpp四、程序設(shè)計(jì)題1、設(shè)計(jì)一個(gè)程序?qū)崿F(xiàn)如下功能:計(jì)算一個(gè)字符串在另一個(gè)字符串中出現(xiàn)的次數(shù)。設(shè)計(jì)的程序如下;#include<stdio.h>#include<string.h>void main()int i,j,k,count;char s120,s220;printf("輸入主串s1:n");gets(s1);printf("輸入子串s2:n");gets(s2);count=0;/
23、計(jì)數(shù)器清零for(i=0;i<strlen(s1);i+)for(j=i,k=0;s1j=s2k;j+,k+)if(strlen(s2)=1+k)count+;printf("s2在s1中出現(xiàn)的次數(shù)為:%dn",count);/程序6-4.cpp3、 設(shè)計(jì)一個(gè)程序?qū)崿F(xiàn)如下功能:將一個(gè)十進(jìn)制數(shù)轉(zhuǎn)化成k進(jìn)制數(shù),并按位輸出。設(shè)計(jì)的程序如下:#include<stdio.h>void main()int a100,i=0,m,k,s;printf("請(qǐng)輸入要轉(zhuǎn)化的數(shù)字:n");scanf("%d",&m);print
24、f("請(qǐng)輸入要將此數(shù)轉(zhuǎn)化成的進(jìn)制:n");s=m;scanf("%d",&k);while(m)ai=m%k;m=m/k;i+;i-;printf("%d轉(zhuǎn)化成的%d進(jìn)制數(shù)為:",s,k);for(;i>=0;i-)printf("%d",ai);printf("n");/程序6-5.cpp4、 fun函數(shù)把形參字符數(shù)組s中下標(biāo)為偶數(shù)的小寫字母轉(zhuǎn)化成對(duì)應(yīng)的大寫字母,結(jié)果仍保存在原數(shù)組中。設(shè)計(jì)的程序如下:#include<stdio.h>#include<strin
25、g.h>void fun(char s)int i=0;while(i<strlen(s)if(i%2=0&&(si>='a'&&si<='z')si=si-32;i+;void main()char str80;printf("input a string:n");gets(str);fun(str);printf("result:n");printf("%s n",str);/程序6-6.cpp5、 有一個(gè)3×4的二維數(shù)組a,要求編寫
26、程序求出其中最大的那個(gè)元素的值,以及其所在的行號(hào)和列號(hào)。設(shè)計(jì)的程序如下:#include<stdio.h>void main()int i,j,row=0,colum=0,max;int a34=1,2,3,4,9,78,456,2134,233,12,897,334;max=a00;for(i=0;i<=2;i+)for(j=0;j<=3;j+)if(aij>max)row=i;colum=j;max=aij;printf("max=%d,row=%d,colum=%dn",max,row,colum);/程序6-7.cpp6、 分析如下程序
27、,回答其運(yùn)行結(jié)果為什么是如下結(jié)果。#include<stdio.h>void main()char a1="abcdef",a2100,a3100;Printf(“%s n”,a1);輸出時(shí),遇到結(jié)束符0就停止輸出。又因?yàn)樵赾語(yǔ)言中,系統(tǒng)對(duì)字符串的末尾自動(dòng)加上了一個(gè)0字符。因此,輸出結(jié)果為abcedfa20='a'a21='d'a22='v'a23='n'printf("%s n",a1);注意:a1和a3可以作為字符串來對(duì)待,而a2則不可以。printf("%s n&
28、quot;,a2);a30='a'a31='d'a32='v'a33='n'a34='0'printf("%s n",a3);/程序6-8.cpp7、 設(shè)計(jì)一個(gè)程序?qū)崿F(xiàn)對(duì)已經(jīng)有序(遞增)的兩個(gè)數(shù)組中的元素進(jìn)行排序。#include<stdio.h>void main()int a100,a1=1,3,6,9,10,a2=2,4,7,8,15,s,i=0,j=0,k;s=(sizeof(a1)+sizeof(a2)/sizeof(int);for(k=0;k<s;k+)if(a1
29、i<a2j)ak=a1i;i+;elseak=a2j;j+;for(k=0;k<s;k+)printf("%3d",ak);/程序6-9.cpp8、 設(shè)計(jì)一個(gè)程序使得數(shù)組中的原有元素的順序倒置。#include<stdio.h>void main()int a=1,2,3,4,5,6,7,8,9,10,11,23,45,643,213;int i,temp,s;s=sizeof(a)/sizeof(int);for(i=0;i<s/2;i+)temp=ai;ai=as-i-1;as-i-1=temp;printf("n");
30、for(i=0;i<s;i+)printf("%4d",ai);/程序6-10.cpp9、 設(shè)計(jì)一個(gè)算法求得一個(gè)二維數(shù)組中某個(gè)元素使得其為所在行的最小值,同時(shí)也是其所在列的最小值。#include<iostream.h>void FindMin(int a4,int m,int n)int i,j,k;int min,minlie,flag;for(i=0;i<m;i+)min=ai0;minlie=0;for(j=0;j<n;j+)if(min>aij)min=aij;minlie=j;flag=1;for(k=0;k<n;k+)
31、if(min>akj)flag=0;break;if(flag)cout<<min<<","<<i<<","<<minlie<<""<<endl;cout<<endl;void main()int arry44=1,2,3,4,5,-3,8,9,10,11,13,20,23,45,67,-10;FindMin(arry,4,4);/程序6-11.cpp10設(shè)計(jì)一個(gè)算法將一維數(shù)組中的奇數(shù)元素移動(dòng)到偶數(shù)元素之前。要求時(shí)間復(fù)雜度為O(n)。
32、#include<iostream.h>#include <time.h>#include <stdlib.h>void divide(int a,int n)int i,j,temp;i=0;j=n-1;while(i<j)while(ai%2=1&&i<j)i+;while(aj%2=0&&i<j)j-;if(i<j)temp=ai;ai=aj;aj=temp;+i;-j;void main()int a20,i=0;srand(unsigned)time(NULL);for(i=0;i<20
33、;i+)ai=rand();cout<<ai<<" "cout<<endl;divide(a,20);for(i=0;i<20;i+)cout<<ai<<" "/程序6-12.cpp第七章 函數(shù)1、關(guān)于return語(yǔ)句,下列說法正確的是(C)A、在主函數(shù)和其他函數(shù)中均要出現(xiàn)B、必須在每個(gè)函數(shù)中出現(xiàn)C、可以在一個(gè)函數(shù)中出現(xiàn)多次D、只能在除主函數(shù)之外的函數(shù)中出現(xiàn)一次2、c語(yǔ)言中,函數(shù)值類型的定義可以缺省,此時(shí)函數(shù)值的隱含類型是(B)A、voidB、intC、floatD、double3、下面敘
34、述中不正確的是(B)A、函數(shù)調(diào)用時(shí),先求出實(shí)參表達(dá)式,然后帶入形參。而是用帶參的宏只是進(jìn)行簡(jiǎn)單的字符替換B、函數(shù)調(diào)用是在程序運(yùn)行時(shí)處理的,分配臨時(shí)的內(nèi)存單元。而宏展開則是在編譯時(shí)進(jìn)行的,在展開時(shí)也要分配內(nèi)存單元,進(jìn)行值傳遞C、對(duì)于函數(shù)中的變參和形參都要定義類型,二者的類型要求一致,而宏不存在類型問題,宏沒有類型D、調(diào)用函數(shù)只可得到一個(gè)返回值,而用宏可以設(shè)法得到幾個(gè)結(jié)果4、下面敘述中不正確的是(D)A、使用宏的次數(shù)較多時(shí),宏展開后的源程序長(zhǎng)度增加。而函數(shù)調(diào)用不會(huì)使源程序變長(zhǎng)B、函數(shù)調(diào)用是在程序運(yùn)行時(shí)處理的,分配臨時(shí)的內(nèi)存單元,而宏展開則是在編譯時(shí)進(jìn)行的,在展開時(shí)不分配內(nèi)存單元,不進(jìn)行值傳遞C、宏
35、替換占用編譯時(shí)間D、函數(shù)調(diào)用占用編譯時(shí)間5、寫出下面程序的運(yùn)行結(jié)果#include<stdio.h>void main()int a=3,b=9;int a=1,c=7;a=a+b;b=c+a;printf("a=%d,b=%dn",a,b);printf("a=%d,b=%dn",a,b);/7-1.cpp分析:本題考查了有關(guān)變量的作用域問題。程序運(yùn)行結(jié)果如下圖:6、閱讀如下程序并寫出程序運(yùn)行結(jié)果。#include<stdio.h>int a;void fun1()a=100;void fun2()a=1000;main()a=
36、10000;printf("a=%dn",a);fun2();printf("a=%dn",a);fun1();printf("a=%dn",a);/7-2.cpp分析:此題與上一道題目類似,仍然考查的是變量的作用域問題。程序運(yùn)行結(jié)果如下圖所示:7、閱讀如下程序并寫出運(yùn)行結(jié)果#include<stdio.h>int a,b;/全局變量void fun()a=100;b=200;main()int a=5,b=7;/內(nèi)部變量fun();printf("a=%d b=%dn",a,b);/7-3.cpp分析
37、:此題考查了變量的作用域問題。程序運(yùn)行結(jié)果如下圖:8、閱讀如下程序并寫出運(yùn)行結(jié)果#include<stdio.h>int fun(int x,int y)static int m=0,i=2;i+=m+1;m=i+x+y;return m;main()int j=4,m=1,k;k=fun(j,m);printf("%dn",k);k=fun(j,m);printf("%dn",k);/7-4.cpp分析:做此題時(shí),應(yīng)該注意static變量的特點(diǎn),靜態(tài)變量在程序運(yùn)行的整個(gè)生命周期均存在。程序運(yùn)行的結(jié)果如下圖:9、閱讀如下程序并寫出執(zhí)行結(jié)果#i
38、nclude<stdio.h>int d=1;fun(int p)static int d=5;d+=p;printf("%dn",d);return(d);void main()int a=3;printf("%dn",fun(a+fun(d);/7-5.cpp分析:此題與上一道題目考查知識(shí)點(diǎn)類似。程序運(yùn)行結(jié)果如下圖所示:10、閱讀如下程序并寫出執(zhí)行結(jié)果#include<stdio.h>main()extern x,y;printf("%d,%dn",x,y);int x=1,y=3;/7-6.cpp分析:此
39、題考查了引用外部變量的方法。程序運(yùn)行結(jié)果如下圖:11、閱讀如下程序并寫出程序運(yùn)行結(jié)果#include<stdio.h>int a=1;void main()int s=3;int a=5;s+=+a;s+=+a;printf("%dn",s);/7-7.cpp分析:此題仍然考查變量的作用域問題。程序運(yùn)行結(jié)果如下圖所示:12、閱讀如下程序并寫出執(zhí)行結(jié)果#include<stdio.h>int w=3;int fun(int k)if(k=0)return w;return (fun(k-1)*k);void main()int w=10;printf(
40、"%dn",fun(5)*w);/7-8.cpp分析:此題考查了變量的作用域問題。程序運(yùn)行結(jié)果如下圖:13、閱讀如下程序并寫出執(zhí)行結(jié)果#include<stdio.h>int a,b;void fun()a=100;b=200;void main()int a=5,b=7;fun();printf("%d%dn",a,b);/7-9.cpp分析:此題考查了變量的作用域問題。程序運(yùn)行的結(jié)果如下圖所示;14、下面程序的運(yùn)行結(jié)果是 2,2.main()char s="1357",*t;t=s;printf("%c,%c
41、n",*t,+*t);分析:本題目主要考查了printf()函數(shù)中參數(shù)列表中表達(dá)式的運(yùn)算順序自右至左,以及+和*運(yùn)算符的結(jié)合性自右至左??梢跃帉懭缦鲁绦?qū)︻}目進(jìn)行驗(yàn)證:#include<stdio.h>void main()char s="1357",*t;t=s;printf("%c,%cn",*t,+*t);/程序9-12.cpp15、若有以下函數(shù)調(diào)用語(yǔ)句:fun(a+b,(x,y),fun(n+k,d,(a,b);在此函數(shù)調(diào)用語(yǔ)句中實(shí)際參數(shù)個(gè)數(shù)是( A )A 3 B 4 C 5 D 6三、簡(jiǎn)答題1、在C語(yǔ)言中,全局變量和局部變
42、量的主要區(qū)別是什么?答:(1)定義位置不同:全局變量定義在所有函數(shù)之外;局部變量定義在函數(shù)體中;(自加)(2)生命期不同:全局變量隨著主程序創(chuàng)建而創(chuàng)建,隨著主程序銷毀而釋放;局部變量是在函數(shù)內(nèi)部,程序執(zhí)行到其作用域時(shí)創(chuàng)建,退出其作用域時(shí)釋放。(3)作用域不同:全局變量具有文件作用域,在程序中的每個(gè)函數(shù)中都可以引用;局部變量具有塊作用域,只是在其作用域內(nèi)才能引用;(4)分配位置不同:全局變量被分配在全局靜態(tài)存儲(chǔ)區(qū),而局部變量分配在棧區(qū);(自加)三、 程序設(shè)計(jì)題1、 設(shè)計(jì)一個(gè)程序使得輸入的一個(gè)整型數(shù)據(jù)(例如:1234)逆序輸出(結(jié)果為:4321)。注意:要求用遞歸函數(shù)來實(shí)現(xiàn)。#include<
43、;stdio.h>void convert(int n)int i;putchar(n%10+'0');if(i=n/10)!=0)convert(i);void main()long number;printf("Please input number:n");scanf("%dl",&number);convert(number);printf("n");/程序7-13.cpp第九章 指針一、選擇題1、若有說明:int a=2,*p=&a,*q=p;,則以下非法的賦值語(yǔ)句是()A、p=qB、*
44、p=*qC、a=*qD、q=a答案:D 賦值符號(hào)兩側(cè)的數(shù)據(jù)類型應(yīng)該一致。2、下面程序段的運(yùn)行結(jié)果是()char *s=”abcde” s+=2; printf(“%d”,s);A、 acdB、 字符cC、 字符c的地址D、 無確定的輸出結(jié)果答案:C3、有以下語(yǔ)句和定義,對(duì)s數(shù)組元素引用形式正確的是()Int s45, (*ps)5; ps=s;A、 ps+1B、 *(ps+3)C、 ps02D、 (*(ps+1)+3)答案:C4、若有定義:int a=1,2,3,4,5,6,7,8,9,10,11,12,*p3,m;則下面程序段的輸出結(jié)果為()For(m=0;m<3;m+) pm=&am
45、p;am*3;Printf(“%dn”,p22);A、4B、7C、11D、12答案:C二、填空題1、閱讀如下程序,寫出運(yùn)行結(jié)果 .void fun(int *x,int *y)printf("%d %dn",*x,*y);*x=3;*y=4;void main()int x=1,y=2;fun(&y,&x);printf("%d %dn",x,y);答案:2 1 4 3可以編寫如下程序?qū)︻}目進(jìn)行驗(yàn)證。#include<stdio.h>void fun(int *x,int *y)printf("%d %dn"
46、;,*x,*y);*x=3;*y=4;void main()int x=1,y=2;fun(&y,&x);printf("%d %dn",x,y);/9-1.cpp程序運(yùn)行結(jié)果,如下圖所示:2、閱讀如下程序,寫出運(yùn)行結(jié)果 .void swap(int *p1,int *p2)int temp;temp=*p1;*p1=*p2;*p2=temp;void main()int a,b;int *p1=&a,*p2=&b;a=1;b=2;swap(p1,p2);printf("%d %dn",*p1,*p2);/9-2.cpp答
47、案:1 2.可以編寫如下程序?qū)︻}目進(jìn)行驗(yàn)證。#include<stdio.h>void swap(int *p1,int *p2)int temp;temp=*p1;*p1=*p2;*p2=temp;void main()int a,b;int *p1=&a,*p2=&b;a=1;b=2;swap(p1,p2);printf("%d %dn",*p1,*p2);程序運(yùn)行的結(jié)果,如下圖所示;3、閱讀如下程序,寫出運(yùn)行結(jié)果 .void swap(int *p1,int *p2)int *temp;temp=p1;p1=p2;p2=temp;void
48、main()int a,b;int *p1=&a,*p2=&b;a=1,b=2;swap(p1,p2);printf("%d,%dn",*p1,*p2);可以編寫如下程序?qū)︻}目進(jìn)行驗(yàn)證。#include<stdio.h>void swap(int *p1,int *p2)int *temp;temp=p1;p1=p2;p2=temp;void main()int a,b;int *p1=&a,*p2=&b;a=1,b=2;swap(p1,p2);printf("%d,%dn",*p1,*p2);/9-3.cpp
49、程序運(yùn)行的結(jié)果,如下圖所示;4、閱讀如下程序,分析是否有誤?如果有請(qǐng)說明錯(cuò)誤原因。#include<stdio.h>void swap(int *p1,int *p2)正確的寫法應(yīng)該為temp=(int*)malloc(sizeof(int);int *temp;*temp=*p1;*p1=*p2;*p2=*temp;void main()int a,b;int *p1=&a,*p2=&b;a=1;b=2;swap(p1,p2);printf("%d,%dn",*p1,*p2);/9-4.cpp答案:本程序有錯(cuò)誤。原因swap()函數(shù)中的temp
50、指針變量沒有指定其所指向的內(nèi)容,程序運(yùn)行時(shí)其指向地址是隨機(jī)的。如果在程序運(yùn)行期間其所指向的單元為系統(tǒng)空間,則很危險(xiǎn)。如下圖所示,編譯程序時(shí),編譯器有警告的提示。5、完整如下程序,實(shí)現(xiàn)利用指向數(shù)組的指針變量來完成對(duì)數(shù)組的相關(guān)操作。#include<stdio.h>void main()int *p,a3,i;p=a;for(i=0;i<3;i+)scanf("%d", );printf("n");for(p=&a0;p<a+3;)printf("%d ", );整個(gè)程序如下:#include<std
51、io.h>void main()int *p,a3,i;p=a;for(i=0;i<3;i+)scanf("%d",p+);printf("n");for(p=&a0;p<a+3;)printf("%d ",*p+);/9-5.cpp程序運(yùn)行結(jié)果如下圖:6、完成如下程序:#include<stdio.h>void main()int a33=1,2,3,4,5,6,7,8,9,*p;for(p=a0;p<a0+9;p+)printf("%d ", );完整的程序如下;#i
52、nclude<stdio.h>void main()int a33=1,2,3,4,5,6,7,8,9,*p;for(p=a0;p<a0+9;p+)printf("%d ",*p);/9-6.cpp程序運(yùn)行結(jié)果如下圖:7、利用指針實(shí)現(xiàn)對(duì)二維數(shù)組的操作。#include<stdio.h>void main()int a33=1,2,3,4,5,6,7,8,9;int (*p)3;p=a;int i,j;for(i=0;i<3;i+)for(j=0;j<3;j+)printf("%d ",pij);printf(&q
53、uot;n");/9-7.cpp程序運(yùn)行結(jié)果如下圖:10、 設(shè)計(jì)一個(gè)程序,實(shí)現(xiàn)對(duì)字符串中的所有數(shù)字字符刪除。#include<stdio.h>#include<malloc.h>void delnum(char *t);void main()char *s;s=(char*)malloc(sizeof(char);printf("input original string:n");gets(s);delnum(s);puts(s);void delnum(char *t)int i,j;for(i=0,j=0;tj!='0'j+)if(tj<'0'|tj>'9')ti=tj;i+;ti='0'/程序9-13.cpp運(yùn)行結(jié)果如下圖所示:10、設(shè)計(jì)一個(gè)程序,判斷一個(gè)字符串是否是回文。(回文:順度和捯讀都一樣)#include<stdio.h>#include<string.h>void main()char s80,*t1,*t2;int m;gets(s);m=strlen(s);t1=s;t2=s+m-1;while(t1<t2)if(*t1!=*t2)break;elset1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 餐飲企業(yè)加盟合同范本:包含品牌使用權(quán)及培訓(xùn)
- 物業(yè)管理公司財(cái)務(wù)外包合同
- 施工方案編制聲明
- 電商代運(yùn)營(yíng)及數(shù)據(jù)分析合作協(xié)議
- 成都市二手房買賣及產(chǎn)權(quán)過戶稅費(fèi)承擔(dān)及代理服務(wù)合同
- 出租車服務(wù)區(qū)域獨(dú)家經(jīng)營(yíng)權(quán)承包合同
- 神經(jīng)外科帕金森病護(hù)理查房
- 焦化消防應(yīng)急預(yù)案方案
- 油費(fèi)管理方案模板(3篇)
- 2026版《全品高考》選考復(fù)習(xí)方案生物06 實(shí)驗(yàn)十七 探究等溫情況下一定質(zhì)量氣體壓強(qiáng)與體積的關(guān)系含答案
- 2024年中國(guó)沖擊波醫(yī)療器械市場(chǎng)調(diào)查研究報(bào)告
- 小學(xué)英語(yǔ)時(shí)態(tài)練習(xí)大全(附答案)-小學(xué)英語(yǔ)時(shí)態(tài)專項(xiàng)訓(xùn)練及答案
- 新課標(biāo)高一英語(yǔ)閱讀理解60篇
- DB15-T 3585-2024 高標(biāo)準(zhǔn)農(nóng)田施工質(zhì)量評(píng)定規(guī)程
- 2024年新人教版七年級(jí)數(shù)學(xué)下冊(cè)期末考試數(shù)學(xué)試卷-含答案
- 電氣設(shè)備-核電行業(yè)研究框架:成長(zhǎng)性與穩(wěn)定性兼?zhèn)淇春煤穗娭虚L(zhǎng)期價(jià)值
- 杭州浙江杭州市森林和野生動(dòng)物保護(hù)服務(wù)中心招聘編外聘用人員筆試歷年典型考題及考點(diǎn)附答案解析
- 【正版授權(quán)】 ISO 13408-2:2018 EN Aseptic processing of health care products - Part 2: Sterilizing filtration
- 氧氣吸入操作評(píng)分標(biāo)準(zhǔn)(中心供氧)
- 舌系帶短縮治療指南制定與更新
- 傳染病防控新技術(shù)應(yīng)用與評(píng)估
評(píng)論
0/150
提交評(píng)論