2018年自學考試《C語言程序設(shè)計》模擬試題【四篇】

字號:

“一分耕耘一分收獲”,十載寒窗鑄直了你挺拔的身姿,豐富的知識拉遠你睿智的目光,歲月的流逝反襯出你嬌美的容顏,奮斗的道路上,你的身影顯得無比的昂揚。你與每一個成功擁抱,你的汗水在七彩的生活里閃光!祝愿你考試一帆風順!以下是為大家整理的《2018年自學考試《C語言程序設(shè)計》模擬試題【四篇】》供您查閱。
    【第一篇】
    一、選擇題((1)-(40)題每小題1分,
    (41)-(50)題每小題2分,共60分)
    下列各題A)、B)、C)、D)四個選項中,只有一個選項是正確的,請將正確選項涂寫在答題卡相應位置上,答在試卷上不得分。
    (1)在32位計算機中,一個字長所占的字節(jié)數(shù)為______。
    A) 1 B) 2 C) 4 D) 8
    (2)與十進制511等值的十六進制數(shù)為______。
    A) 1FF B) 2FF C) 1FE D) 2FE
    (3)能將高級語言編寫的源程序轉(zhuǎn)換成目標程序的是______。
    A) 編輯程序 B) 編譯程序 C) 解釋程序 D) 鏈接程序
    (4)在計算機系統(tǒng)中,存儲一個漢字的國標碼所需要的字節(jié)數(shù)為______。
    A) 1 B) 2 C) 3 D) 4
    (5)下列帶有通配符的文件名,能表示文件ABC.TXT的是______。
    A) *BC.? B) A?.* C) ?BC.* D) ?.?
    (6)在多媒體計算機系統(tǒng)中,不能用以存儲多媒體信息的是______。
    A) 光纜 B) 軟盤 C) 硬盤 D) 光盤
    (7)DOS命令“COPY/?”的功能是______。
    A) 將當前盤當前目錄中的所有文件復制到當前盤的根目錄下
    B) 將當前盤當前目錄中所有以單個字符命名的文件復制到當前盤的根目錄下
    C) 以提示方式復制文件
    D) 顯示COPY命令的幫助信息
    (8)在Windows環(huán)境下,若要將當前活動窗口存入剪貼板,則可以按______。
    A) Ctrl+PrintScreen鍵
    B) Shift+PrintScreen鍵
    C) PrintScreen鍵
    D) Alt+PrintScreen鍵
    (9)在Windows環(huán)境下,單擊當前應用程序窗口的“關(guān)閉”按鈕,其功能是______。
    A) 將當前應用程序轉(zhuǎn)為后臺運行
    B) 退出Windows后再關(guān)機
    C) 退出Windows后重新啟動計算機
    D) 終止當前應用程序的運行
    (10)在Windows環(huán)境下,粘貼快捷鍵是______。
    A) Ctrl+Z B) Ctrl+X C) Ctrl+C D) Ctrl+V
    (11)以下敘述中正確的是______。
    A) 構(gòu)成C程序的基本單位是函數(shù)
    B) 可以在一個函數(shù)中定義另一個函數(shù)
    C) main()函數(shù)必須放在其它函數(shù)之前
    D) 所有被調(diào)用的函數(shù)一定要在調(diào)用之前進行定義
    (12)以下選項中合法的實型常數(shù)是______。
    A) 5E2.0 B) E-3 C) .2E0 D) 1.3E
    (13)以下選項中合法的用戶標識符是______。
    A) long B) _2Test C) 3Dmax D) A.dat
    (14)已知大寫字母A的ASCII碼是65,小寫字母a的ASCII碼是97,則用八進制表示的字符常量’101’是______。
    A) 字符A B) 字符a C) 字符e D) 非法的常量
    (15)以下非法的賦值語句是______。
    A) n=(i=2,++i); B) j++; C) ++(i+1); D) x=j>0;
    (16)設(shè)a和b均為double型常量,且a=5.5、b=2.5,則表達式(int)a+b/b的值是______。
    A) 6.500000 B) 6 C) 5.500000 D) 6.000000
    (17)已知i、j、k為int型變量,若從鍵盤輸入:1,2,3<回車>,使i的值為1、j的值為2、k的值為3,以下選項中正確的輸入語句是______。
    A) scanf("%2d%2d%2d",&i,&j,&k);
    B) scanf(""%d %d %d",&i,&j,&k);
    C) scanf("%d,%d,%d",&i,&j,&k);
    D) scanf("i=%d,j=%d,k=%d",&i,&j,&k);
    (18)與數(shù)學式子3乘以x的n次方/(2x-1)對應的C語言表達式是______。
    A) 3*x^n/(2*x-1)
    B) 3*x**n/(2*x-1)
    C) 3*pow(x,n)*(1/(2*x-1))
    D) 3*pow(n,x)/(2*x-1)
    (19)設(shè)有定義:long x=-123456L;,則以下能夠正確輸出變量x值的語句是______。
    A) printf("x=%d ",x);
    B) printf("x=%ld ",x);
    C) printf("x=%8dL ",x);
    D) printf("x=%LD ",x);
    (20)若有以下程序:
    main()
    {int k=2,i=2,m;
    m=(k+=i*=k); printf("%d,%d ",m,i);
    }
    執(zhí)行后的輸出結(jié)果是______。
    A) 8,6 B) 8,3 C) 6,4 D) 7,4
    【第二篇】
    (21)已有定義:int x=3,y=4,z=5;,則表達式!(x+y)+z-1&&y+z/2的值是______。
    A) 6 B) 0 C) 2 D) 1
    (22)有一函數(shù)
    1 x>0
    y= 0 x=0
    -1 x<0,
    以下程序段中不能根據(jù)x的值正確計算出y的值的是______。
    A) if(x>0) y=1;else if(x==0) y=0;else y=-1;
    B) y=0;if(x>0) y=1;else if(x<0) y=-1;
    C) y=0;if(x>=0)if(x>0) y=1;else y=-1;
    D) if(x>=0) if(x>0) y=1;else y=0;else y=-1;
    (23)以下選項中,與k=n++完全等價的表達式是_______。
    A) k=n,n=n+1 B) n=n+1,k=n C) k=++n D) k+=n+1
    (24)以下程序的功能是:按順序讀入10名學生4門課程的成績,
    計算出每位學生的平均分并輸出,程序如下:
    main()
    {int n,k;
    float score,sum,ave;
    sum=0.0;
    for(n=1;n<=10;n++)
    {for(k=1;k<=4;k++)
    {scanf("%f",&score); sum+=score;}
    ave=sum/4.0;
    printf("NO%d:%f ",n,ave);
    }
    }
    上述程序運行后結(jié)果不正確,調(diào)試中發(fā)現(xiàn)有一條語句
    出現(xiàn)在程序的位置不正確。這條語句是______。
    A) sum=0.0;
    B) sum+=score;
    C) ave=sum/4.0;
    D) printf("NO%d:%f ",n,ave);
    (25)有以下程序段
    int n=0,p;
    do {scanf("%d",&p);n++;} while(p!=12345&&n<3);
    此處do-while循環(huán)的結(jié)束條件是______。
    A) p的值不等于12345并且n的值小于3
    B) p的值等于12345并且n的值大于等于3
    C) p的值不等于12345或者n的值小于3
    D) p的值等于12345或者n的值大于等于3
    (26)有以下程序
    main()
    {int a=15,b=21,m=0;
    switch(a%3)
    {case 0:m++;break;
    case 1:m++;
    switch(b%2)
    {default:m++;
    case 0:m++;break;
    }
    }
    printf("%d ",m);
    }
    程序運行后的輸出結(jié)果是______。
    A) 1 B) 2 C) 3 D) 4
    (27)C語言中,函數(shù)值類型的定義可以缺省,此時函數(shù)值的隱含類型是______。
    A) void B) int C) float D) double
    (28)若有說明:int n=2,*p=&n,*q=p;,則以下非法的賦值語句是______。
    A) p=q; B) *p=*q; C) n=*q; D) p=n;
    (29)有以下程序
    float fun(int x,int y)
    {return(x+y); }
    main()
    {int a=2,b=5,c=8;
    printf("%3.0f ",fun((int)fun(a+c,b),a-c));
    }
    程序運行后的輸出結(jié)果是______。
    (30)有以下程序
    void fun(char *c,int d)
    {*c=*c+1;d=d+1;
    printf("%c,%c,",*c,d);
    }
    main()
    {char a=’A’,b=’a’;
    fun(&b,a); printf("%c,%c ",a,b);
    }
    程序運行后的輸出結(jié)果是______。
    A) B,a,B,a B) a,B,a,B C) A,b,A,b D) b,B,A,b
    (31)以下程序中函數(shù)sort的功能是對a所指數(shù)組中的數(shù)據(jù)進行由大到小的排序
    void sort(int a[],int n)
    {int i,j,t;
    for(i=0;ifor(j=i+1;jif(a}
    main()
    {int aa[10]={1,2,3,4,5,6,7,8,9,10},i;
    sort(&aa[3],5);
    for(i=0;i<10;i++) printf("%d,",aa);
    printf(" ");
    }
    程序運行后的輸出結(jié)果是______。
    A) 1,2,3,4,5,6,7,8,9,10,
    B) 10,9,8,7,6,5,4,3,2,1,
    C) 1,2,3,8,7,6,5,4,9,10,
    D) 1,2,10,9,8,7,6,5,4,3,
    (32)有以下程序
    int f(int n)
    {if (n==1) return 1;
    else return f(n-1)+1;
    }
    main()
    {int i,j=0;
    for(i=1;i<3;i++) j+=f(i);
    printf("%d ",j);
    }
    程序運行后的輸出結(jié)果是______。
    A) 4 B) 3 C) 2 D) 1
    (33)有以下程序
    main()
    {char a[]={’a’,’b’,’c’,’d’,’e’,’f’,’g’,’h’,’’}; int i,j;
    i=sizeof(a); j=strlen(a);
    printf("%d,%d ",i,j);
    }
    程序運行后的輸出結(jié)果是______。
    A) 9,9 B) 8,9 C) 1,8 D) 9,8
    (34)以下程序中的函數(shù)reverse的功能是將a所指數(shù)組中的內(nèi)容進行逆置。
    void reverse(int a[],int n)
    {int i,t;
    for(i=0;i{t=a;a=a[n-1-i];a[n-1-i]=t;}
    }
    main()
    {int b[10]={1,2,3,4,5,6,7,8,9,10}; int i,s=0;
    reverse(b,8);
    for(i=6;i<10;i++) s+=b;
    printf("%d ",s);
    }
    程序運行后的輸出結(jié)果是______。
    A) 22 B) 10 C) 34 D) 30
    (35)有以下程序
    main()
    {int aa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};
    int i,s=0;
    for(i=0;i<4;i++) s+=aa[1];
    printf("%d ",s);
    }
    程序運行后的輸出結(jié)果是______。
    A) 11 B) 19 C) 13 D) 20
    (36)有以下程序
    #include
    main()
    {char *p="abcdefghjik";
    printf("%d ",strlen(p));
    }
    程序運行后的輸出結(jié)果是______。
    A) 12 B) 15 C) 6 D) 5
    (37)程序中頭文件type1.h的內(nèi)容是:
    #define N 5
    #define M1 N*3
    程序如下:
    #include "type1.h"
    #define M2 N*2
    main()
    {int i;
    i=M1+M2; printf("%d ",i);
    }
    程序編譯后運行的輸出結(jié)果是______。
    A) 10 B) 20 C) 25 D) 30
    (38)有以下程序
    #include
    main()
    {FILE *fp; int i=20,j=30,k,n;
    fp=fopen("d1.dat","w");
    fprintf(fp,"%d ",i);fprintf(fp,"%d ",j);
    fclose(fp);
    fp=fopen("d1.dat","r");
    fscanf(fp,"%d%d",&k,&n); printf("%d%d ",k,n);
    fclose(fp);
    }
    程序運行后的輸出結(jié)果是_____。
    A) 20 30 B) 20 50 C) 30 50 D) 30 20
    (39)以下敘述中錯誤的是______。
    A) 二進制文件打開后可以先讀文件的末尾,而順序文件不可以
    B) 在程序結(jié)束時,應當用fclose函數(shù)關(guān)閉已打開的文件
    C) 利用fread函數(shù)從二進制文件中讀數(shù)據(jù),可以用數(shù)組名給數(shù)組中所有元素讀入數(shù)據(jù)
    D) 不可以用FILE定義指向二進制文件的文件指針
    (40)有以下程序
    #include
    main(int argc,char *argv[])
    {int i,len=0;
    for(i=1;iprintf("%d ",len);
    }
    程序編譯連接后生成的可執(zhí)行文件是ex1.exe,
    若運行時輸入帶參數(shù)的命令行是:
    ex1 abcd efg 10<回車>
    則運行的結(jié)果是______。
    A) 22 B) 17 C) 12 D) 9
    【第三篇】
    (41)有以下程序
    int fa(int x)
    {return x*x; }
    int fb(int x)
    {return x*x*x; }
    int f(int (*f1)(),int (*f2)(),int x)
    {return f2(x)-f1(x); }
    main()
    {int i;
    i=f(fa,fb,2); printf("%d ",i);
    }
    程序運行后的輸出結(jié)果是______。
    A) -4 B) 1 C) 4 D) 8
    (42)有以下程序
    int a=3;
    main()
    {int s=0;
    {int a=5; s+=a++; }
    s+=a++; printf("%d ",s);
    }
    程序運行后的輸出結(jié)果是_______。
    A) 8 B) 10 C) 7 D) 11
    (43)有以下程序
    void ss(char *s,char t)
    {while(*s)
    {if(*s==t) *s=t-’a’+’A’;
    s++;
    }
    }
    main()
    {char str1[100]="abcddfefdbd",c=’d’;
    ss(str1,c); printf("%s ",str1);
    }
    程序運行后的輸出結(jié)果是______。
    A) ABCDDEFEDBD
    B) abcDDfefDbD
    C) abcAAfefAbA
    D) Abcddfefdbd
    (44)有以下程序
    struct STU
    {char num[10]; float score[3]; }
    main()
    {struct STU s[3]={{"20021",90,95,85},
    {"20022",95,80,75},
    {"20023",100,95,90}},*p=s;
    int i; float sum=0;
    for(i=0;i<3;i++)
    sum=sum+p->score;
    printf("%6.2f ",sum);
    }
    程序運行后的輸出結(jié)果是______。
    A) 260.00 B) 270.00 C) 280.00 D) 285.00
    (45)設(shè)有如下定義:
    struct sk
    {int a;
    float b;
    }data;
    int *p;
    若要使p指向data中的a域,正確的賦值語句是______。
    A) p=&a; B) p=data.a; C) p=&data.a; D) *p=data.a
    (46)有以下程序
    #include
    struct NODE
    {int num; struct NODE *next; }
    main()
    {struct NODE *p,*q,*r;
    p=(struct NODE *)malloc(sizeof(struct NODE));
    q=(struct NODE *)malloc(sizeof(struct NODE));
    r=(struct NODE *)malloc(sizeof(struct NODE));
    p->num=10;q->num=20;r->num=30;
    p->next=q;q->next=r;
    printf("%d ",p->num+q->next->num);
    }
    程序運行后的輸出結(jié)果是______。
    A) 10 B) 20 C) 30 D) 40
    (47)若有以下說明和定義
    typedef int *INTEGER
    INTEGER p,*q;
    以下敘述正確的是______。
    A) p是int型變量
    B) p是基類型為int的指針變量
    C) q是基類
    型為int的指針變量
    D) 程序中可用INTEGER代替int類型名
    (48)有以下程序
    main()
    {unsigned char a,b,c;
    a=0x3; b=a|0x8; c=b<<1;
    printf("%d%d ",b,c);
    }
    程序運行后的輸出結(jié)果是______。
    A) -11 12 B) -6 -13 C) 12 24 D) 11 22
    (49)有以下程序
    #include
    main()
    {char *p,*q;
    p=(char *)malloc(sizeof(char)*20); q=p;
    scanf("%s%s",p,q); printf("%s%s ",p,q);
    }
    若從鍵盤輸入:abc def<回車>,則輸出結(jié)果是______。
    A) def def B) abc def C) abc d D) d d
    (50)以下程序中函數(shù)f的功能是將n個字符串,按由大到小的順序進行排序。
    #include
    void f(char p[][10],int n)
    { char t[20]; int i,j;
    for(i=0;ifor (j=i+1;jif(strcmp(p,p[j])<0)
    { strcpy(t,p);strcpy(p,p[j]);strcpy(p[j],t);}
    }
    main()
    {char p[][10]={"abc","aabdfg","abbd","dcdbe","cd"};int i;
    f(p,5); printf("%d ",strlen(p[0]));
    }
    程序運行后的輸出結(jié)果是
    A) 6 B) 4 C) 5 D) 3
    【第四篇】
    二、填空題(每空2分,共40分)
    請將每一個空的正確答案寫在答案卡上,答在試卷上不得分。
    (1) 計算機軟件分為系統(tǒng)軟件和應用軟件,操作系統(tǒng)屬于【 】 。
    (2) 在DOS環(huán)境下,代表鍵盤和顯示器的設(shè)備文件名為【 】。
    (3) 支持Internet基本服務的協(xié)議是【 】。
    (4) 從Windows環(huán)境進入MS-DOS方式后,返回Windows環(huán)境的DOS命令為【 】。
    (5) 某微型機的運算速度為2MIPS,則該微型機每秒執(zhí)行【 】條指令。
    (6) 以下程序運行后的輸出結(jié)果是【 】。
    main()
    {int x=10,y=20,t=0;
    if(x==y)t=x;x=y;y=t;
    printf("%d,%d ",x,y);
    }
    (7) 以下程序運行后的輸出結(jié)果是【 】。
    main()
    {int x=15;
    while(x>10&&x<50)
    {x++;
    if(x/3){x++;break;}
    else continue;
    }
    printf("%d ",x);
    }
    (8) 有以下程序:
    #include
    main()
    {char c;
    while((c=getchar())!=’?’) putchar(--c);
    }
    程序運行時,如果從鍵盤輸入:Y?N?<回車>,則輸出結(jié)果為【 】。
    (9) 以下程序運行后的輸出結(jié)果是【 】。
    void fun(int x,int y)
    {x=x+y;y=x-y;x=x-y;
    printf("%d,%d,",x,y);}
    main()
    {int x=2,y=3;
    fun(x,y);
    printf("%d,%d ",x,y);
    }
    (10) 以下函數(shù)的功能是計算s=1+1/2!+1/3!+……+1/n!,請?zhí)羁铡?BR>    double fun(int n)
    {double s=0.0,fac=1.0; int i;
    for(i=1;i<=n;i++)
    {fac=fac 【 】;
    s=s+fac;
    }
    return s;
    }
    (11) 下面程序的運行結(jié)果是:【 】。
    #define N 10
    #define s(x) x*x
    #define f(x) (x*x)
    main()
    {int i1,i2;
    i1=1000/s(N);i2=1000/f(N);
    printf("%d %d ",i1,i2);
    }
    (12) 下面程序的運行結(jié)果是:【 】。
    void swap(int *a,int *b)
    {int *t;
    t=a;a=b;b=t;
    }
    main()
    {int x=3,y=5,*p=&x,*q=&y;
    swap(p,q);
    printf("%d%d ",*p,*q);
    }
    (13) 下面程序的運行結(jié)果是:【 】。
    typedef union student
    {char name[10];
    long sno;
    char sex;
    float score[4];
    }STU;
    main()
    {STU a[5];
    printf("%d ",sizeof(a));
    }
    (14) 若fp已正確定義為一個文件指針,d1.dat為二進制文件,請?zhí)羁?,以便為“讀”而打開此文件:fp=fopen(【 】);。
    (15) 設(shè)有定義:int n,*k=&n;以下語句將利用指針變量k讀寫變量n中的內(nèi)容,請將語句補充完整。
    scanf("%d",【 】);
    printf("%d ",【 】);
    (16) fun函數(shù)的功能是:首先對a所指的N行N列的矩陣,找出各行中的大的數(shù),再求這N個大值中的小的那個數(shù)作為函數(shù)值返回。請?zhí)羁铡?BR>    #include
    #define N 100
    int fun(int(*a)[N])
    {int row,col,max,min;
    for(row=0;row{for(max=a[row][0],col=1;colif(【 】) max=a[row][col];
    if(row==0) min=max;
    else if(【 】) min=max;
    }
    return min;