備考2021遼寧專升本考試時做的C語言錯題(寫結(jié)果題&&判斷)

一永毅、寫結(jié)果題

1.以下程序執(zhí)行后輸出的結(jié)果是( )

#include <stdio.h>
int main()
{
    int x=15;
    while(x>10&&x<50){
        x++;
        if(x/3){
            x++;break;
        }
        else
            continue;
    }
    printf("%d\n",x);
    return 0;
}
/*答案:17*/

2.以下程序執(zhí)行后輸出的結(jié)果是( )

#include <stdio.h>
void main()
{
    int a=9,b=0;
    if(a%3==0)
        b=!b;
    printf("a%%3==0 is %s",b?"true":"false");
}
/*答案:a%3==0 is true*/

3.以下程序執(zhí)行后輸出的結(jié)果是( )

#include <stdio.h>
int main()
{
    int i=10,sum=0;
    do{
        i=-1;
        sum=sum+i;
    }while(i==0);
    printf("%d",sum);
    return 0;
}
/*答案:-1*/

4.以下程序執(zhí)行后輸出的結(jié)果是( )

#include <stdio.h>
int main()
{
    char str[10]="ababaabb",c='b';
    int i,k;
    for(i=0,k=0;i<10;i++)
        if(str[i]!=c){
            str[k]=str[i];
            k++;
        }
    str[k]!="\0";
    printf("%s",str);
    return 0;
}
/*答案:aaaa*/

5.以下程序執(zhí)行后輸出的結(jié)果是( )

#include <stdio.h>
void fun(int a,int b){
    
    a=a+b;
    b=a-b;
    a=a-b;
}
void main(){
    int a,b;
    a=10;
    b=20;
    printf("%d,%d\n",a,b);
    fun(a,b);
    printf("%d,%d\n",a,b);
}
/*答案:
10,20
10,20
解析:傳參數(shù)時值不變,傳指針才會改變
*/

6.以下程序執(zhí)行后輸出的結(jié)果是( )

#include <stdio.h>
void f(int n){
    if(n<0) {
        putchar('-');
        n = -n;
    }
    if(n/10)
        f(n/10);
    putchar(n%10+'0');
}
void main(){
    f(-610);
}
/*
答案:-610
執(zhí)行過程:
if(n<0) n=-610,-610<0  putchar('-') 輸出'-',然后
610/10=61,610%10=0.
610/10=61蹭劈,不等于0.繼續(xù)遞歸
61/10=6,6不為0亡蓉,繼續(xù)遞歸
6/10=0,為0,不繼續(xù)遞歸朦肘,也就是跳過if后f函數(shù)。然后當(dāng)前層的函數(shù)繼續(xù)執(zhí)行双饥,putchar(0%10+'0') 得到字符'0'媒抠。當(dāng)前層的函數(shù)執(zhí)行完了,返回上一層咏花。
上一層n的值為61.執(zhí)行putchar,輸出字符'1'趴生。然后回到上一層
上一層n的值為610,執(zhí)行putchar昏翰,輸出字符'6'.

在遞歸里n不斷的除以10苍匆,用于移除最低位后的值,n%10用來獲取最低位的值棚菊;
n%10+'0'浸踩,是輸出整型數(shù)字對應(yīng)的字符數(shù)字,這是根據(jù)ACSII碼得來的统求。比如6+'0'就能得到字符'6'检碗。
*/

7.以下程序執(zhí)行后輸出的結(jié)果是( )

#include <stdio.h>
int main()
{
    char a[]="123456789",*p;
    int i=0;
    p=a;
    while(*p){
        if(i%2==0) *p='*';
        p++;i++;
    }
    puts(a);
    return 0;
}
/*
答案:*2*4*6*8*
*/

8.以下程序執(zhí)行后輸出的結(jié)果是( )

#include <stdio.h>
int main()
{
    char *p[10]={"abc","aabdfg","dcdbe","abbd","cd"};
    printf("%d\n",strlen(p[4]));
    printf("%d",sizeof(p[4]));
    printf("\n%d\n",sizeof(p));
    return 0;
}
/*
答案:
2
4
40
解析:第一行輸出的數(shù)據(jù)是第五個字符的字符個數(shù)据块。p[4]傳遞給函數(shù)strlen()的是第五個字符串的首地址
第二行輸出的是char類型指針的內(nèi)存空間
第三行輸出的是char類型之戰(zhàn)數(shù)組的內(nèi)存空間
*/

9.以下程序執(zhí)行后輸出的結(jié)果是( )

#include <stdio.h>
void f(int y,int *x){
    y=y+*x;*x=*x+y;
}
int main()
{
    int x=2,y=4;
    f(y,&x);
    printf("%d,%d",x,y);
    return 0;
}
/*答案:8,4*/

10.以下程序執(zhí)行后輸出的結(jié)果是( )

#include <stdio.h>
#define N 20
int fun(int a[],int n,int m){
    int i,j;
    for(i=m;i>=n;i--) a[i+1]=a[i];
}

int main()
{
   
   int i,a[N]={1,2,3,4,5,6,7,8,9,10};
    fun(a,2,9);
    for(i=0;i<5;i++) printf("%d",a[i]);
   
   return 0;
}
/*答案:12334*/

11.以下程序執(zhí)行后輸出的結(jié)果是( )

#include <stdio.h>
#define ADD(x,y) x+y;
int main(){
    int a=2,b=2,s;
    s=ADD(a+1,b+2)+1;
    printf("s=%d",s);
    return 0;
}
/*答案:s=7
解析:s=ADD(a+1,b+2)+1; → s=a+1+b+2 ; +1*/

12.以下程序執(zhí)行后輸出的結(jié)果是( )

#include <stdio.h>
#define SUB(X,Y) X-Y
int main(){
    int a=3,b=4;
    printf("%d\n",SUB(a+=2,b++));
    return 0;
}
/*答案:1
解析:a+=2為5折剃,b++先取b=4再++另假,所以是5-4=1,輸出1*/

13.以下程序執(zhí)行后輸出的結(jié)果是( )

#include <stdio.h>
int main(){
    int a=1,b=1;
    for(;a--;) b--;
    printf("%d %d",a,b);
    return 0;
}
/*答案:-1 0
解析:for循環(huán)條件省略了表達(dá)式1和表達(dá)式3怕犁,程序相當(dāng)于while(a--) b--;當(dāng)a=1時边篮,先取值再自減,即while(1)成立奏甫,執(zhí)行b--戈轿,此時a=0,b=0,繼續(xù)執(zhí)行while(0)不執(zhí)行,但是a仍需自減扶檐,所以最后a的值為-1凶杖,b的值為0*/

14.以下程序執(zhí)行后輸出的結(jié)果是( )

#include <stdio.h>
int main(){
    int x,y,t;
    x=y=3;
    t=x++||++y;
    printf("t=%d,x=%d,y=%d",t,x,y);
    return 0;
}
/*答案:t=1,x=4,y=3
解析:||邏輯或運算只要有一個操作數(shù)為真,則整個或運算的值就為真款筑。x=3,++x為4是真,所以不再計算腾么,直接將真值(1)賦值給t奈梳,++y不再運算,所以y值仍為3*/

15.執(zhí)行以下語句后解虱,如果從控制臺輸入X_Y_Z(_代表空格)攘须,則變量a,b殴泰,c的值依次為( )

#include <stdio.h>
int main(){
    char a,b,c;
    scanf("%c%c%c",&a,&b,&c);
    return 0;
}
/*答案:X_Y
該題誤區(qū)容易以為此時a='X',b='Y',c='Z'于宙,需要注意的是空格也是一個字符*/

16.以下程序執(zhí)行后輸出的結(jié)果是( )

#include <stdio.h>
int main(){ 
    int a[13]={1,2,3,4,5,6,7,8,9,10,11,12};
    int *p=a+5,*q=a+12;
    *q=*(p+5);
    printf("%d %d\n",*p,*(a+12));
    return 0;
}
/*答案 6 11
解析:*(a+12)跟*p等價*/

17.以下程序執(zhí)行后輸出的結(jié)果是( )

#include <stdio.h>
int main(){ 
    int i=8,k,a,b;
    a+=a-=(b=4)*(a=3);
    printf("%d\n",a);
    return 0;
}
/*答案:-18
解析:a==a-=(b=4)*(a=3)先執(zhí)行a-=(b=4)*(a=3),也就是a=a-12=3-12=-9,然后再執(zhí)行a+=a,即-9+(-9)=-18悍汛。*/

18.以下程序執(zhí)行后輸出的結(jié)果是( )

#include <stdio.h>
int main(){ 
    double d=3.2;
    int x,y;
    x=1.2;
    y=(x+3.8)/5.0;
    printf("%d\n",d*y);
    return 0;
}
/*答案:0*/

19.以下程序執(zhí)行后輸出的結(jié)果是( )

#include <stdio.h>
#include <string.h>
int main(){ 
    char b[20];
    strcpy(&b[0],"12");
    strcpy(&b[1],"345");
    strcpy(&b[2],"678");
    printf("%s\n",b);
    return 0;
}
/*答案:13678
解析:&b[1]是從第二位進行追加字符串345捞魁,會把字符2覆蓋掉。*/

20.以下程序執(zhí)行后輸出的結(jié)果是( )

#include <stdio.h>
#include <string.h>

int main(){ 
    char b1[8]="abcdefg",b2[8],*pb=b1+3;
    while(--pb>=b1)
        strcpy(b2,pb);
    printf("%d\n",strlen(b2));
    return 0;
}
/*答案:7
解析:第一次指向cdefg离咐,第二次bcdefg谱俭,最后一個把整個吧全部復(fù)制,并且每次復(fù)制覆蓋上一次的操作宵蛀。然后strlen()不包含\0.所以是7.*/

21.以下程序執(zhí)行后輸出的結(jié)果是( )

#include <stdio.h>
int a=3,b=4;
void fun(int x1,int x2){
    printf("%d,%d",x1+x2,b);
}
int main(){ 
    int a=5,b=6;
    fun(a,b);
    return 0;
}
/*答案:11,4
需注意局部變量和全局變量*/

22.以下程序執(zhí)行后輸出的結(jié)果是( )

#include <stdio.h>

int main(){ 
    int a[3],*p=a;
    printf("%d",&a[2]-p);
    return 0;
}
/*答案:2
解析:地址相減*p=a;&a[2]-&a[0];*/

23.以下程序執(zhí)行后輸出的結(jié)果是( )

#include <stdio.h>
int main(){ 
    int a=-1,b=6,c;
    c=(++a<0)&&(--b>0);
    printf("a=%d,b=%d,c=%d",a,b,c);
    return 0;
}
/*答案:a=0,b=6,c=0
解析:&&與運算一個為0整體為0昆著,后面不再執(zhí)行。*/

二术陶、判斷題

1.fopen函數(shù)打開文件成功后會返回NULL指針凑懂。(F)

**解析:**在C語言中,當(dāng)使用fopen()文件操作函數(shù)成功打開一個文本文件(或者是二進制文件)時梧宫,若成功打開了該文件接谨,則返回指向該流的文件指針摆碉。若需要打開的文件不存在,則返回一個空指針NULL疤坝。

    指向該流的意思就是指:若成功地打開了某一個文本文件(或者是二進制文件)兆解,那么文件指針就已經(jīng)成功地指向了該文件的文件頭部。此時跑揉,即可以對該文件進行讀操作(或者是寫操作)锅睛。但是至于到底是對文件進行哪一種操作,那么就必須要看你在使用 fopen( ) 函數(shù)時历谍,使用的是哪一種文件打開方式现拒,如果使用的是“只讀”打開(即:`FILE * fp ; fp = fopen("my_filename", "r") ;`),那么就只能夠從 my_filename 文件中往外讀數(shù)據(jù)望侈,而不能夠往 my_filename 文件中寫數(shù)據(jù)印蔬;如果使用的是“只寫”打開(即:`FILE * fp ; fp = fopen("my_filename", "w") ;`),那么就只能夠往my_filename 文件中寫數(shù)據(jù)脱衙,而不能夠從 my_filename 文件中讀數(shù)據(jù)侥猬。當(dāng)然了,fopen( ) 函數(shù)還有很多其他打開文件的方式捐韩,例如:以可讀退唠、可寫方式打開。

2.若fp是指向某文件的指針荤胁,且已讀到該文件的末尾瞧预,則C語言函數(shù)feof(fp)的返回值是0。(F)

**解析**:`feof()`函數(shù)用來判斷指針是否到達(dá)文件尾部仅政。若fp已指向文件末尾垢油,則`feop(fp)`函數(shù)值為'真',即返回非零值圆丹;否則返回0滩愁。

3.數(shù)組名作實參時,實際傳送給形參的是數(shù)組的首地址运褪。(T)

4.C語言對宏命令的處理是在程序運行時進行的惊楼。(F)

**解析**:在對源程序中其他成分正式編譯之前進行的。類似于Word中的查找和替換秸讹。

5.FILE是系統(tǒng)定義的結(jié)構(gòu)類型檀咙,用于描述文件操作有關(guān)的信息。(T)

6.若a為整型變量璃诀,while(a)和while(a!=0)作用完全相同弧可。(T)

7.C語言對宏命令的處理只是進行字符串替換,而不進行語法檢查劣欢。(T)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末棕诵,一起剝皮案震驚了整個濱河市裁良,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌校套,老刑警劉巖价脾,帶你破解...
    沈念sama閱讀 222,252評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異笛匙,居然都是意外死亡侨把,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評論 3 399
  • 文/潘曉璐 我一進店門妹孙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來秋柄,“玉大人,你說我怎么就攤上這事蠢正『П剩” “怎么了?”我有些...
    開封第一講書人閱讀 168,814評論 0 361
  • 文/不壞的土叔 我叫張陵嚣崭,是天一觀的道長笨触。 經(jīng)常有香客問我,道長雹舀,這世上最難降的妖魔是什么旭旭? 我笑而不...
    開封第一講書人閱讀 59,869評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮葱跋,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘源梭。我一直安慰自己娱俺,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,888評論 6 398
  • 文/花漫 我一把揭開白布废麻。 她就那樣靜靜地躺著荠卷,像睡著了一般。 火紅的嫁衣襯著肌膚如雪烛愧。 梳的紋絲不亂的頭發(fā)上油宜,一...
    開封第一講書人閱讀 52,475評論 1 312
  • 那天,我揣著相機與錄音怜姿,去河邊找鬼慎冤。 笑死,一個胖子當(dāng)著我的面吹牛沧卢,可吹牛的內(nèi)容都是我干的蚁堤。 我是一名探鬼主播,決...
    沈念sama閱讀 41,010評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼但狭,長吁一口氣:“原來是場噩夢啊……” “哼披诗!你這毒婦竟也來了撬即?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,924評論 0 277
  • 序言:老撾萬榮一對情侶失蹤呈队,失蹤者是張志新(化名)和其女友劉穎剥槐,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體宪摧,經(jīng)...
    沈念sama閱讀 46,469評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡粒竖,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,552評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了绍刮。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片温圆。...
    茶點故事閱讀 40,680評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖孩革,靈堂內(nèi)的尸體忽然破棺而出岁歉,到底是詐尸還是另有隱情,我是刑警寧澤膝蜈,帶...
    沈念sama閱讀 36,362評論 5 351
  • 正文 年R本政府宣布锅移,位于F島的核電站,受9級特大地震影響饱搏,放射性物質(zhì)發(fā)生泄漏非剃。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,037評論 3 335
  • 文/蒙蒙 一推沸、第九天 我趴在偏房一處隱蔽的房頂上張望备绽。 院中可真熱鬧,春花似錦鬓催、人聲如沸肺素。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽倍靡。三九已至,卻和暖如春课舍,著一層夾襖步出監(jiān)牢的瞬間塌西,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評論 1 274
  • 我被黑心中介騙來泰國打工筝尾, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留捡需,地道東北人。 一個月前我還...
    沈念sama閱讀 49,099評論 3 378
  • 正文 我出身青樓忿等,卻偏偏與公主長得像栖忠,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,691評論 2 361

推薦閱讀更多精彩內(nèi)容