C语言笔试复习题
标签: 分类: 计算机等级考试
杂谈
一、判断对错
1. 3_a_b是合法的标识符。
2.设有定义float a; 则变量a在内存中占2个字节。
3.C语言在执行过程中,不检查数组下标是否越界。
4.局部静态变量在编译时赋初值。
5.若有以下定义:#define C R 37.6921;则C R是称为宏名的标识符。
6.若有定义int *fun(int x ,int y){??..}则fun函数是用指针做参数的函数。
7.若有定义int a[2][3]={{1,3},{2,4}};则a[1][2]的值为4。
8.if语句嵌套时,每个else总是与它上面最近的并且没有与其它else匹配的if配对。
9.循环语句for(k=0;k=10;k++);最多执行10次。
10.函数定义时,出现在函数首部括号中的参数称为实参。
二、指出下列错误:
1. 有如下程序来求 1+1/2+1/3+1/4+1/5的和。
main()
{int i,n;
float t,s;
n=5;s=0;
for(i=1;i<=n;i++){t=1/I;s=s+t;}
printf(“%f\n”,s);
}
2. 以下程序调用exc函数对两个整数进行交换。
void exp(int *a, int *b){int *t; t=*a; *a=*b; *b=t;}
main()
{ int x, y , *px, *py;
px=&x; py=&y; scanf(“%d%d”,px,py);
exc(px,py);
printf(“%d,%d\n”,x,y);
3. 欲对数组a的各个元素赋值:
main()
{int a[5], i;
for(i=0;i<5;i++)< p="">
scanf(“%d”,*(a+i));??.}
4. 欲使指针s指向字符串“abcd”的首字符:
main()
{ char *s;
*s=”abcd”; ??}
5. 有如下程序,欲实现将数组元素a[1][1]的值放在变量i中: int a[2][3]={{1,2,3},{4,5,6}};
int I;
i=*(*a+1);
四、阅读和分析程序并回答问题
1、main() 问题:左侧hcf函数的功能是求两个正整数的最大公约数, {int a, b, c; 并返回相应的值。请填空。
scanf(“%d%d”,&a,&b);
c=hcf(a,b);
printf(“%d\n”,c);}
hct(int m, int n)
{int r;
r=m%n; while( A )
{m=n;n=r;r=m%n;} B ;}
2、#include “stdio.h” 问题:A写出画线处语句的功能。 main() B若输入abc12dec34程序的运行结果是什么?
{char s[80];
int i, j; gets(s);
for(i=j=0;s[i]!=’\0’;i++)
if(s[i]!=’c’) s[j++]=s[i];
s[j]=’\0’;
puts(s);
}
3、main() 问题:A写出程序运行结果。
{int x[10]={2,4,6,8,10,12,14,16,18,20},*p,**k; p=x;
k=&p;
*(x+2)=100; p=p+2; *(p+2)=200;
printf(“%d\n”,**k);
}
三、1、已知:x=3,y=2, 则表达式x*=y+8 的值是( )。
A 3 B 2 C 30 D 10
2、若有说明:int i,j=7,*p=&i; 则与i=j;等价的语句是( )
A i=*p B *p=*&j; C i=&j; D i=**p;
3、若有以下定义和语句:int **pp, *p, a=10, b=20;
pp=&p; p=&a; p=&b; printf(“%d,%d\n”, *p, **pp); 则输出结果是:
A 10,20 B 10,10
C 20,10 D 20,20
4、若有以下说明,则对a数组元素的正确引用是( )。 int a[5], *p=a;
A a[5] B *p+2 C *(a-2) D *p
5、下面程序片段的输出结果是()。
int n=10;
while(n>7)
{n--; printf(“%d”,n); }
A 10 9 8 B 9 8 7 C 10 9 8 7 D 9 8 7 6
6、以下程序的输出结果是()。 。
main()
{char a[10]={’1’,’2’,’3’,’4’,’5’,’6’,’7’,’8’,’9’,’0’}, *p;
int i;
i=8; p=a+i;
printf(“%c\n”,*(p-c));
}
7、若有以下定义,且0≤i<5,错误的赋值是()。
int *s[5], a[5][10], *p,i;
A p=a B s[i]=a[i] C p=a[i] D s[i]=&a[2][0]
8、一个C程序开始执行的位置是()。
A 程序开头 B 预编译 C 变量定义 D main 函数
9、设a=3,b=4,c=5,则表达式!(a+b)+c-1&&b+c/2的'值是()。
A -1 B 0 C 1 D 2
10、若有定义char a; int b; float c; double d; 则表达式a*b+c-d的值的类型是()。
A float B int C char D double
五、按要求编写程序(本大题共6小题,每小题5分,共30分)
1、从键盘输入一个正整数n,求出n!(n!=1*2*3??*n)。
2、求一个3×4数组最大元素及其在数组中的位置。
3、输出斐波那契数列的前20项。
4、有数组int a[10]={8,-9,11,-4,0, 45, -55, 78, -34, 55};
要求:使用指针,将其中最大值和最小值互换,输出处理后的数组。
5、输入两个字符串,把一个字符串连接到另一个字符串后面, 形成一个完整的字符串并输出。要求:不能用strcat()函数。
6、写一个函数求一个整型数组中所有元素的平均值。
要求:在主函数中输入数据、调用函数、输出平均值。
【C语言笔试复习题】相关文章: