自考“C語言程序設計”模擬試題二

字號:

一、填空題
    1、C語言中普通整型變量的類型說明符為______,在內(nèi)存中占______字節(jié),有符號普通整型的數(shù)據(jù)范圍是______.
    2、C語言中基本的數(shù)據(jù)類型有:______、______ 、______ .
    3、設整型變量n的值為2,執(zhí)行語句“n+=n-=n*n”后,n的值是______.
    4、共用體和結(jié)構(gòu)體的定義格式類似,不同點是______.
    5、有如下輸入語句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);為使變量a的值為1,b的值為3,c的值為2,從鍵盤輸入數(shù)據(jù)的正確形式應是______.
    6、有語句:char A[ ]={“I am a student”};該字符串的長度是______,A[3]= ______.
    7、符號“a”和‘a(chǎn)’的區(qū)別______.
    8、下列程序的輸出結(jié)果是______.
    int ast(int x,int y,int * cp,int * dp)
    { *cp=x+y; *dp=x-y; }
    main()
    { int a=4,b=3,c,d;
    ast(a,b,&c,&d);
    printf(“%d,%d/n”,c,d);}
    二、選擇題
    1、以下選項中屬于C語言的數(shù)據(jù)類型是( )。
    A. 復合型 B. 雙精度型 C. 邏輯型 D. 集合型
    2、以下說法中正確的是( )。
    A. C語言程序總是從第一個的函數(shù)開始執(zhí)行
    B. 在C語言程序中,要調(diào)用的函數(shù)必須在main()函數(shù)中定義
    C. C語言程序總是從main()函數(shù)開始執(zhí)行
    D. C語言程序中的main()函數(shù)必須放在程序的開始部分
    3、選出下列標識符中不是合法的標識符的是( )。
    A. hot_do B. cat1 C. _pri D. 2ab
    4、下列描述中不正確的是( )。
    A、字符型數(shù)組中可能存放字符串。
    B、可以對字符型數(shù)組進行整體輸入、輸出。
    C、可以對整型數(shù)組進行整體輸入、輸出。
    D、不能在賦值語句中通過賦值運算符“=”對字符型數(shù)組進行整體賦值。
    5、若已定義:int a[9], *p=a;并在以后的語句中未改變p的值,不能表示a[1]地址的表達式為( )。
    A. p+1 B. a+1 C. a++ D. ++p
    6、設有如下定義: int x=10,y=3,z;
    則語句printf(“%d\n”,z=(x%y,x/y)); 的輸出結(jié)果是( )。
    A. 1 B. 0 C. 4 D. 3
    7、定義如下變量和數(shù)組: int i, x[3][3]={1,2,3,4,5,6,7,8,9};則下面語句
    for(i=0;i<3;i++) printf(“%d”,x[i][2-i]); 的輸出結(jié)果是( )
    A. 1 5 9 B. 1 4 7 C. 3 5 7 D. 3 6 9
    8、讀出以下語句的輸出結(jié)果是( )。
    int x=10,y=10;
    printf(“%d %d\n”,x——,——y);
    A. 10 10 B. 9 9 C. 9 10 D. 10 9
    9、兩次運行下面的程序,如果從鍵盤上分別輸入6和3,則輸出結(jié)果是( )。
    if(x++>5)printf(“%d”,x);
    else printf(“%d\n”,x - -);
    A. 7和5 B. 6和3 C. 7和4 D. 6和4
    10、設有如下定義:char *aa[2]={“abcd”,“ABCD”};則以下說法中正確的是( )。
    A)aa數(shù)組成元素的值分別是“abcd”和ABCD“
    B)aa是指針變量,它指向含有兩個數(shù)組元素的字符型一維數(shù)組
    C)aa數(shù)組的兩個元素分別存放的是含有4個字符的一維字符數(shù)組的首地址
    D)aa數(shù)組的兩個元素中各自存放了字符‘a(chǎn)’和‘A’的地址
    11、以下語句的輸出結(jié)果是( )。
    int a=-1,b=4,k;
    k=(+ +a<0)&&?。╞ - -<=0);
    printf(“%d,%d,%d\n”,k,a,b);
    A. 1,0,4 B. 1,0,3 C. 0,0,3 D. 0,0,4
    12、下列程序的輸出結(jié)果是( )。
    char *p1=“abcd”, *p2=“ABCD”, str[50]=“xyz”;
    strcpy(str+2,strcat(p1+2,p2+1));
    printf(“%s”,str);
    A. xyabcAB B. abcABz C. ABabcz D. xycdBCD
    13、執(zhí)行下面的程序后,a的值是( )。
    #define SQR(X) X*X
    main( )
    { int a=10,k=2,m=1;
    a/=SQR(k+m)/SQR(k+m);
    printf(“%d\n”,a);}
    A. 10 B. 1 C. 9 D. 0
    14、14、設A為存放(短)整型的一維數(shù)組,如果A的首地址為P,那么A中第i 個元素的地址為( )。
    A.P+i*2 B.P+(i-1)*2 C.P+(i-1) D.P+i
    15、下列程序執(zhí)行后輸出的結(jié)果是( )。
    int d=1;
    fun (int p)
    { int d=5;
    d + =p + +;
    printf(“%d,”,d); }
    main( )
    { int a=3;
    fun(a);
    d + = a + +;
    printf(“%d\n”,d); }
    A.8,4 B. 9,6 C. 9,4 D. 8,5
    16、表達式:10!=9的值是( )。
    A.true B.非零值 C.0 D.1
    17、若有說明:int i,j=7,*p=&i;則與i=j;等價的語句是( )。
    A. i= *p; B. *p=*&j; C. i=&j; D. i=* *p;
    18、不能把字符串:Hello!賦給數(shù)組b的語句是( )。
    A. char b[10]={‘H’,‘e’,‘l’,‘l’,‘o’,‘!’};
    B. char b[10]; b=“Hello!”;
    C. char b[10]; strcpy(b,“Hello!”);
    D.char b[10]=“Hello!”;
    19、在C程序中有如下語句:char *func(int x,int y); 它是( )。
    A. 對函數(shù)func的定義 B. 對函數(shù)func的調(diào)用。
    C.對函數(shù)func的原型說明 D. 不合法的。
    20、以下程序的輸出結(jié)果是( )。
    char str[15]=“hello!”;
    printf(“%d\n”,strlen(str));
    A. 15 B. 14 C. 7 D. 6
    三、閱讀程序題
    1、int x=6,y=7;
    printf(“%d,”,x++);printf(“%d\n”,++y);
    程序的輸出結(jié)果是______.
    2、float f=3.1415927;
    printf(“%f,%5.4f,%3.3f”,f,f,f);
    則程序的輸出結(jié)果是______.
    3、a=3;
    a+=(a<1)a:1; printf(“%d”,a);
    結(jié)果是______.
    4、main( )
    { int a[5]={2,4,6,8,10},*P,* *k;
    p=a; k=&p;
    printf(“%d,”,*(p++));
    printf(“%d\n”,* *k);
    程序的輸出結(jié)果是______.
    5、main()
    {int a,b;
    for (a=1,b=1;a<=100;a++)
    { if(b>=20) break;
    if(b%3==1)
    {b+=3;continue;}
    b-=5;} }
    程序的輸出結(jié)果a的值為______.
    四、程序填空題
    1、求主次對角線之和。
    main()
    {static int a[ ][3]={9,7,5,1,2,4,6,8};
    int I,j,s1=0,s2=0;
    for(I=0;I<3;I++)
    for(j=0;j<3;j++)
    {if( )
    s1=s1+a[I][j];
    if( )
    s2=s2+a[I][j];
    }
    printf(“%d\n%d\n”,s1,s2);
    }
    2、從鍵盤上輸入10個數(shù),求其平均值。
    main()
    {int i;
    float f,sum;
    for(i=1,sum=0.0;i<11;i++)
    { ;
    ;
    }
    printf(“average=%f\n”,sum/10);
    }
    3、以下程序是建立一個名為myfile的文件,并把從鍵盤輸入的字符存入該文件,當鍵盤上輸入結(jié)束時關(guān)閉該文件。
    #include
    main()
    {
    FILE *fp;
    char c;
    fp= ;
    do
    {
    c=getchar();
    fputs(c,fp);
    }while(c!=EOF);
    ; ;
    }
    五、編程題
    1、三個整數(shù)a、b、c,由鍵盤輸入,輸出其中大的數(shù)。
    2、從鍵盤輸入的10個整數(shù)中,找出第一個能被7整除的數(shù)。若找到,打印此數(shù)后退出循環(huán);若未找到,打印“not exist”。
    3、有一個一維數(shù)組,內(nèi)放10個學生成績,寫一個函數(shù),求出平均分。
    4、有N個學生,每個學生的信息包括學號、性別、姓名、四門課的成績,從鍵盤上輸入N個學生的信息,要求輸出總平均成績高的學生信息,包括學號、性別、姓名和平均成績。