一、單項選擇題(本大題共20小題,每小題2分,共40分。在每小題給出的四個備選項中,選出一個正確的答案,并將所選項前的字母填寫在答題紙的相應位置上。
- 以下正確的C語言自定義標識符是()
A. la
B. 2a
C. do
D. a.12
2.在C語言中,錯誤的常數表示是()
A. OL
B. 0x6aL
C. ‘6’
D. 1.234E3.5
3.設 int a,x=2;執行語句a=x>0?3*x:(x=10);后,變量x的值是()
A. 1
B. 2
C. 6
D. 10
- 設有以下程序段:
int x=2,y-2,z-0,a;
a=++x||+y&&z++;
printf(“%d,%d,%dln”,x,y,z);
執行后輸出的結果是()
A. 2, 2, 0
B. 3, 3, 1
C. 3, 2, 0
D. 3, 2, 1
5.在C語言中,字符串"\TOP\t\65"的長度是()
A. 5
B. 7
C. 9
D. 12
6·設float x;,由鍵盤輸入: 12.45,能正確讀入數據的輸入語句是()
A. scanf(“%5f”,&x);
B. scanf(“%5d”,&x);
C. scanf(“%f”,x);
D.scanf(“%s”,&x)
7·逗號表達式a=26,a3,a*5的值是()
A. 12
B. 60
C. 36
D. 41
- C語言表達式3.26*exp(x)+(a+b)/3所表示的數學表達式是()
9.在C語言中,下列運算符中結合性屬于自右向左的是()
A.&&
B.-
C.<<
D. ->
10.設int (*p) [4];,則p的含義是()
A. 指向整型變量的指針數組
B.指向4個整型變量的函數指針?
C. 4個指向整型變量的指針變量s
D.指向具有4個整型元素的一維數組的指針
- charx00-gwdows",“dos”,“unix”);,執行pintf(“%c”,x[1][2]);后輸出的結果是()
A.n
b.i
c.o
d.s
12,設 inta[4][3]-{1,2,3,4,5,6,7,8,9,10,11,12);int (* ptr)[3]=a,*p=a[0];,則與數組元素a[1][2]等價的是()
A.((p+2) +3)
B.(* (p+3))
C. (*ptr+1) +2
D. *((ptr+1)[2])
13,設int a-11,b=2;,執行下述程序段后,變量a和b的值分別是(do { a/=b++;} while(a>b);
A. 1,3
B. 1,4
C. 2,3
D. 2,4
14,在C語言中,下列錯誤的說法是()
A、函數可以遞歸調用
B. 不允許在函數中再定義函數
C.遞歸程序不可能用非遞歸算法實現
D.對于continue語句,可以通過改變程序的結構而不使用它
15、設 inta[2][3]={{1).(2,3)):,則元素a[1][0]的值是
A. 0
B. 1
C. 2
D. 3
16.C 語言結構體類型變量在程序執行期間()
A. 所有成員一直駐留在內存中
B. 只有一個成員駐留在內存中
C. 部分成員駐留在在內存中
D. 沒有成員駐留在內存中
- 設
struct student
{ char name[10]:
int sex;
int num;
}s,*p=&s;
以下對結構型變量s中成員num的非法引用是()
A. p->num
B. (*p).num
C. s.num
D. student.num
- 下列說法中正確的是()
A.C語言的預處理命令只有宏定義和文件包含
B.預處理命令只能出現在主函數之前
C.所有預處理命令都是以符號"#"開頭
D.有些預處理命令不是在源程序編譯之前處理
19,已有定義int(*p)():指針p可以()
A. 代表函數的返回值
B.指向函數的入口地址
C.表示函數的類型
D. 表示函數返回值的類型
20,下列屬于文件包含的命令是()
A. #define N 25
B. #endif
C. #include “stdio.h”
D. #else
二、程序閱讀題(本大題共5小題,每小題6分,共30分。請將程序的運行結果填寫在答題紙的相應位置上。)
#include"stdio.h"
void main(){int x=15;while(x<20){x++;if(x/3!=0) {x++;break;}else continue;}
printf("%d\n",x);
}
2______
#include "stdio.h"
fun(int a[],int i,int j)
{int t;if(i<j){t=a[i];a[i]=a[j];a[j]=t;i++j--;fun(a,i.j);}
}
void main()
{
int x0={2,4,6},i;
fun(x,0,2);
for(i=0;i<3;i++)
printf("\n");
}
3________
#include "stdio.h"
void main
{int a,b[10],c,i=0;printf("輸入一個整數\n");scanf("%d",&a);while(a!=0){c-a%2;a=a/2;b[i]-c;i++;}for(;i>0;i-)printf("%d",b[i-1]);}
4_______
#include <stdio.h>
long fib(int n)
{ if(n>2) return(fib(n-1)+fib(n-2));else return (2) ;}void main(){ printf("%d",fib(5)); }
5________
#include "stdio.h"
int a=100;
void s0
{static int a=20;a++;printf("%dn",a);}void main{int i;for(i=1;i<=3;i++){a++;printf("%d,",a);s0;}}
三、程序填空題(每空5分,共35分。請將答案填寫在答題紙的相應位置上。)
1,對含有10個元素的數組a先按元素的存儲次序倒序輸入,再按其正序輸出。
#iclude <stdio.h
#define No 10
void main()
{
int i,a[N]
for(i=N-1;_①;i-)
scanf("%d",_2);
for(i=0;i<N;i++) printf("%d\t",a[i]);
printf("n");
}
2,學生成績的字母等級和分數范圍如下:字母等級分數范圍
A 90-100
B80-89
c 70-79
D 60-69
E 0-59
其它字母 輸入錯誤
輸入字母等級之后,輸出相應的分數范圍
#include <stdio.h>
void main()
{
char score;
scanf(“%c”,&score);
switch(_____)
{
case ‘A’: printf(“A:90-100ln”);break;
case ‘B’: printf (“B:80-89ln”);break;
case ‘C’: printf (“C:70-79n”);break;
case D’: printf (“D:60-69n”);break;
case E’: printf (“E: 0-59n”);break;
②printf(“輸入錯誤n”);
}
}
- 計算 Fibonacci 數列。
#include “stdio.h”
long Fib(int n);
int main
{
int n, i, x;
printf(“Input n: “);
scanf(”%d”, &n);f
or (i=l; i<=n; i++)
{
x=①;
printf(“Fib(%d) = %d\n”, i, x);
}
return 0;
}
long Fib(int n)
{
if (n=0)
return 0;
else if(2)
return 1;
else
return③;
}
四、編程題(本大題共3小題,每小題15分,共45分。請在答題紙的相應位置上作答。)1輸入自變量x的值后,計算并輸出y的值。
2用循環結構輸出下列數字金字塔(共9行)。
3,某重點大學的博士入學考試科目為外語和兩門專業課,對于每個考生信息有學號,姓名,現有10名考生,輸入各科考試成績,并計算總分。