下面是CN人才網(wǎng)小編為大家解答2016計算機C語言筆試題目,歡迎大家閱讀。
2016計算機C語言筆試題目
一、 填空題(本大題共25小題,每小題2分,共50分)
1.以下C語言提供的合法的數(shù)據(jù)類型說明關鍵字為 d 。
A. Float B. Signed C .interger D. char
2.C語言中的標識符只能由字母、數(shù)字、下畫線組成,且第一個字符 c 。
A必須為字母B必須為下畫線C必須為字母或下畫線D可以是字母、數(shù)字或下畫線中任何一種。
3.設有以下語句:
char a=3,b=6,c;
c=a^b<<2;
則 c 的二進制值是 a 。
A. 00011011
B. 00010100
C. 00011100
D. 00011000
4.假定w,x,y,z,m均為int型變量,有如下程序段
w=1; x=2; y=3; z=4;
m=(w>x)?w:x;
m=(m
m=(m
則程序運行后,m的值是 d 。
A 4 B 3 C 1 D 2
5.若執(zhí)行以下程序時從鍵盤上輸入9,則輸出結果是 b 。
main()
{
int n;
scanf(“%d”,&n);
if(n++<10)
printf(“%d”\n,n--)
}
A 11 B 10 C 9 D 8
6.以下程序段的輸出結果是 d 。
int x=3;
do
{
printf(“%d”,x=2);
}while(!(--x));
A 1 B 30 C 1-2 D死循環(huán)
7. C語言規(guī)定,簡單變量做實參時,它和對應的形參之間的數(shù)據(jù)傳遞方式是 b 。
A.地址傳遞B.值傳遞C.由實參傳遞給形參,再由形參傳遞給實參D.由用戶指定傳遞方式
8. 已知一個函數(shù)的定義如下: d 。
double fun (int x, double y)
{……}
則該函數(shù)正確的函數(shù)原型聲明為:
A.double fun(int x,double)B.fun (int x, int y)C.double fun( int ,double);D.fun(x,y);
9.已知整型變量K的值為5,下面程序段執(zhí)行的結果是 c 。
switch(k)
{
case1: putchar(‘A’);
case2: putchar(‘B’);
case3: putchar(‘C’);
case4: putchar(‘D’);
default:putchar(‘E’);
}
A CDE B C C E D ABCD
10.以下程序的執(zhí)行次數(shù)是 c 。
main()
{
int i,j ;
for(i=0,j=1;i<=j+1;i+=2,j--)
printf(“%d\n”,i);
}
A 3 B 2 C 1 D 0
11.下列敘述中錯誤的是 b 。
A 主函數(shù)中定義的變量在整個程序 中都是有效的
B 復合語句中定義的變量只在該復合語句中有效
C 其他函數(shù)中定義的變量在主函數(shù)中不能使用
D 形參是局部變量
12.若運行時輸入100,寫出以下程序的運行結果。
main()
{
int a;
scanf("%d",&a);
printf("%s",(a%2!=0 ?"No":"Yes"));
}_
Yes運行結果:A No B Yes C s D No:Yes
運行結果: b
13.下面正確的二維數(shù)組定義是 b 。
A int a[2][]={{1,2},{2,4}};B int a[][2]={1,2,3,4,};C int a[2][2]={{1},{2},{3}};
D int a[2][]={{1,2},{3,4}};
14.若有
char a[]=”china”;
則 d 不可輸出該字符串。
A puts(a); B printf(“%s”,a)
C int i; for(i=0;i<5;i++) printf(%c”,a[i]); D putchar(a);
15.對于字符串的操作,下列說法中正確的是 c 。
A 可用賦值表達式對字符數(shù)組賦值,如char str[20]; str=”aaaa”;
B 若有字符數(shù)組a和b,且a>b,則strcmp(a,b)為非負數(shù)
C 可用strcpy函數(shù)進行字符串的復制完成字符數(shù)組的賦值
D 字符串“aaaa”在內(nèi)存中占用4個字節(jié)長度
16.已有定義 int k=2;int *ptrl1, *ptr2;且ptr1和ptr2均已指向變量k,下面不能正確執(zhí)行的賦值語句是 b 。
A.k=*ptrl+*ptr2 B ptr2=k C.ptl1=ptr2 D k=*ptr1*(*ptr2)
17.若定義:
int a[9], *p=a;
并在以后的語句中未改變p的值,不能表示a[1]地址的表達式是 b 。
A.p+1 B a+1 C ++p D a++
18.若有以下定義和語句:
#include
main(0
{char *s1=”12345”,*s2=”1234”;
printf(“%d\n”,strlen(strcpy(s1,s2)));
}則輸出的結果是 c 。
A.9 B 5 C 4 D 10
19.以下定義和語句:
int a[3][2]={1,2,3,4,5,6},*p[3];
p[0]=a[1];
則*(p[0]+1)所代表的數(shù)組元素是 c 。
A.a[0][1] B a[1][0] C a[1][1] D a[1][2]
20.以下程序的輸出結果是 b 。
main()
{ char str[][10]={“China”, “BEijing”},*p=str;
printf(“%s\n”,p+10);
}
A. China B Beijing C ng D ing
21.回答本題的運行結果為 a 。
已知 int x=3,y,*p,*q;
int a[]={1,2,3,4,5};
p=&x; y=*p, q=a+2;
printf(“%d%d%d%d”,x,y,*p,*q);
A.3 3 3 3 B 1 2 3 4
C.1 2 2 3 D 2 2 2 2
22.在switch()語句中case 后面可以是 c 。
A.關系表達式 B 邏輯表達式 C 常量表達式 D算術表達式
23.表達式5>3&&2||8<4-!1值是 a 。
A.1 B 2 C 3 D 0
24.下列運算符中,優(yōu)先順序的級別最低的是 d 。
A.! B && C+ D ||
25.已有定義int k=2;int *ptrl,*ptr2;且ptr1和prt2 均已指向變量k,下面有能正確執(zhí)行的賦值語句是 b 。
A.k=*ptr1+*ptr2 B.ptr2=k C.ptr1=ptr2 D.k=*ptrl*(*ptr2)
二、填空題:(本大題共5小題,每小題2分,共10分)
1.C語言中,唯一的三目運算符是 表達式1?表達式2:表達式3 ,而&&是 雙 目運算符。
2.函數(shù)的遞歸可分直接遞歸和間接遞歸,它由遞推和 回歸 兩部分組成。
3.假設所有變量均為整型,則表達式(a=2,b=5,a++,b++,a+b)的值為 3 6 7 。
4.C語言提供了兩個與地址相關的運算符分別是 & && 。
5.C語言數(shù)組的下標總是從 0 開始,不可以為負數(shù);構成數(shù)組各元素具有相同的 變量 。
三、程序分析題(本大題共4小題,前三小題每題 4分,最后一小題8分,共20分)
1.以下程序的輸出結果為 a 。
main()
{
char c=’z’;
printf(“%c”,c-25);
}
2.分析下列程序的運行結果
main()
{
int k=4,m=1,p;/*靜態(tài)變量應用*/
p=fl1(k,m);
printf("%-10d",p);
p=fl1(k,m);
printf("%-10d",p);
}
fl1(a,b)
int a,b;
{
static int m,i=2;
i*=m+2;
m=i+a+b;
return(m);
}_
運行結果為:9 49 (9空格)。
3.通過指針變量給所指向的變量賦值。請將編號①②空白處補充完整。
void main()
{
int int *p1, *p2, a, b;
、 p1=&a;
、 p2=&b;
scanf(“%d%d”,p1,p2);
printf(“%d%d”,a,b);
}
4.下列程序的作用是將一個數(shù)組中的數(shù)據(jù)逆序輸出,請將編號①②③④空白處補充完整。
#include
main()
{
int n[10];
int i,j,tmp;
printf(“please 10 numbers:\n”)
for(i=0;i<10;i++) scanf(“%d”,&n[i]);
printf(“Origin number:\n”);
for ①(i=9;i>=0;i--);
printf(“%d”,n[i]);
i=0;j=9;
while ② ;
{
tmp=n[i];
n[i]=n[j];
n[j]=tmp;
、 ;
、 ;
}
printf(“Reversing bumbers:\n”);
i=0;
while(i<10)
{
printf(“%d”,n[i]);
i++;
}
}
四、按要求編寫程序(本大題共2小題,每小10題分,共20分)
1.利用冒泡法對60個學生的成績進行排序。
2.編和求 ,公式如下:
,其中arctan(x)用如下形式的級數(shù)計算:
直到某級數(shù)絕對值不小于 為止。(提示: 和x均為double型)
1.(從低到高的排序)
#include
#include
void fun(int a[], int n);
void main(void)
{
int a[60], i;
for (i=0; i<60; i++)
{
scanf("%d",&a[i]);
}
fun(a,60);
}
void fun(int a[], int n)
{
int i,j,t;
for(i=0; i
{
for (j=0; j
{
if (a[j] > a[j+1])
{
t=a[j];
a[j] = a[j+1];
a[j+1] = t;
}
}
}
for (i=0; i
{
printf("%d ", a[i]);
}
printf("\n");
}
2.(網(wǎng)上找的不確定)
#include
#include
#include
#include
void main ()
{
int x,y;
long i,m=0;
double d,r=32767;
float pi,n=5000000;
srand()(time(0));
for(i=0;i
{
x=rand()();
y=rand()();
d=sqrt(x*x+y*y);
if (d
{
m=m+1;
}
}
printf("m=%d\n",m);
pi=4*m/n;
printf("pi=%f\n",pi);