C語言模擬試題1

iamzxf發表於2014-12-30


一、選擇題:本題共 10 小題,滿分 20 分。

1、以下選項中不能作為C語言合法常量的是                     (      )

A)‘cd’        B)0.1e+6       C)“\a”        D)‘\011’

2、以下不能正確表示代數式2ab/cd的C語言表示式是             (      )

A)2*a*b/c/d      B)a*b/c/d*2        C)a/c/d*b*2         D)2*a*b/c*d

3、以下定義語句中正確的是                                    (      )

A)inta=b=0;                    B)charA=65+1, b= ‘b’;

C)floata=1,*b=&a, c=&b;         D)doublea=0.0;b=1.1;

4、設有如下程式段

char s[20]= “Bejing”, *p;

p=s;

則執行p=s;語句後,以下敘述正確的是                           (      )

A)可以用*p表示s[0]

B)s陣列中元素的個數和p所指字串長度相等

C)s和p都是指標變數

D) 陣列s中的內容和指標變數p中的內容相等

5、執行以下程式段後,w的值為                                (      )

   int  w=’A’,x=14,y=15;

   w=((x||y)&&(w<’a’));

A)-1        B)NULL      C)1        D) 0

6、若定義int a[2][3]={0246810};以下描述正確的有       

A*(a+1)為元素6的地址        B*(a[1]+1)的值為2

C*a+1+2的值為8       Da[0]a的值不相同

7、‘\t’表示什麼                                                

A)字串常數      B)識別符號      C)變數      D)字元常量

8、以下表示式取值正確的是                                  (      )

A)6>5結果為6   B)6&&5結果為7   C)6||5結果為7   D)6<5結果為0

9、若有定義語句:

double x[5]={1.0,2.0,3.0,4.0,5.0},*p=x;  錯誤引用x陣列元素的是  (      )

A)*p         B)x[5]        C)*(p+1)         D)*x

10、設變數均已正確定義並且賦值,以下與其他三組輸出結構不同的一組語句是

A、x++;  printf(“%d\n”, x);       B、n=++x; printf(“%d\n”, n);   

C、++x;  printf(“%d\n”, x);       D、n=x++; printf(“%d\n”, n);

二、填空題:本題共 10 小題,滿分 20 分。 

     

 

1、判斷一個字元ch是數字字元的表示式是                             

2、若N是一個常量,則int (*p)[N];表示定義一個含有N個元素的一位陣列的指標變數,而int *p[N];表示                                   

3、若有定義:int m=5,y=2;  則計算表示式y+=y-=m*=y;後的y的值是       

4、C語言規定了以字元         作為字串結束標誌。

5、若有定義int x=3,y=2; floata=2.5,b=3.5; 則表示式(x+y)%2+(int)a/(int)b的值是   

    6、若有定義:int a[3][4]={{1,2},{0},{4,6,8,10}}; 則初始化後,a[2][1]的值是      

    7、若有定義:char  s[]=“\t\r\\\0will\n”; 則strlen(s)=            

8、C語言規定,在一個源程式中,main函式的位置                           

9、設變數a和b已定義為int型變數,若要通過scanf(“a=%d,b=%d”, &a, &b ); 語句分別給a和b輸入1和2,則正確的資料輸入內容是                      

10、設a,b,c都是整型變數,如果a的值為1,b的值為2,則執行c=a++||b++;語句後,變數b的值是              

三、應用題:本題共 5 小題,滿分 25 分。 

1、寫出下列程式的執行結果:

#include <stdio.h>

void main()

{  int i,j=4;                          

   for( i=j; i<=2*j; i++ )

      switch( i%j )

     { case 0:

        case 1: printf( ”*”); break;

        case 2: printf( “#” );

     }

}

2、寫出下列程式的執行結果:

#include<stdio.h>

int f(int m)  

{   staticint n=0;                     

n+=m;

return n;

}

void main( )

{   intn=0;

printf("%d,", f(++n));

printf("%d\n", f(n++));

}

3、寫出下列程式的執行結果:

#include <stdio.h>

void exch(int t[] )                      

{ t[0]=t[5];  }

void main()

{  intx[10]={1,2,3,4,5,6,7,8,9,10}, i=0;

   while(i<=4)  {  exch(&x[i]);  i++;  }

   for( i=0; i<5; i++ )   printf(“%d ”, x[i] );

   printf(“\n”);

}

4、寫出下列程式的執行結果:

#include <stdio.h>

void main()

{   int a[3][4]={0,1,2,3,4,5,6,7,8,9,10,11};

    printf("%8d%8d",a, *a);

    printf("%8d%8d\n",&a[0][0],a[0][0]);

    printf("%8d%8d",a+1,*(a+1));

   printf("%8d%8d\n",*(a[1]+1),*(*(a+2)+1));

}

假設陣列a的首地址是2000,每個陣列元素佔4個位元組,則執行結果為:

 

5、寫出下列程式的執行結果:

#include <stdio.h>

#include <string.h>

typedef struct

{  char name[9];                            

char sex;

int score[2];

} STU;

STU f(STU a)

{   STUb={"Zhao",'m',85,90};

int i;

strcpy(a.name, b.name);

a.sex=b.sex;

for (i=0; i<2; i++)

a.score[i]=b.score[i];

return a;

}

void main( )

{   STU c={"Qian",'f',95,92},d;

d=f(c);

printf("%s,%c,%d,%d\n",d.name,d.sex,d.score[0],d.score[1]);

printf("%s,%c,%d,%d\n",c.name,c.sex,c.score[0],c.score[1]);

}

四、程式設計題:本題共 3 小題,滿分 35 分。 

1、隨機產生100個100~200之間的整數,程式設計實現分別統計十位數上0~9的數字個數。(10分)

2、編寫函式fun(),計算結果作為函式值返回,n作為形參傳入,函式的功能是:根據計算s。(10分) 

3、定義一個包含學號、姓名、年齡的學生結構體,編寫函式實現:(15分)

(1)輸入10個學生的基本資訊(Input函式);

(2)按年齡從小到大的順序進行排序(Sort函式);

(3)輸出學生資訊(Output函式)。

相關文章