C语言试卷

2024-12-22 01:09:25
推荐回答(3个)
回答1:

才30分……,觉得答得好多多加分!你的鼓励是我努力的方向!o(∩_∩)o...哈哈
二、选择题(每题3分,共45分)
1. 定义一个变量使之保存值的范围是0-65535,应该选择(A )类型。
A.unsigned short int B. int
C.short int D.long int

2. 设x、y、z都是整型变量,x、y的初值都是5,执行z=(++x)+(y- -)+1后,x、y、z三变量的值按顺序是(D )。
A.5, 5, 11 B.6, 6, 13 C.4, 6, 12 D.6, 4, 12

3.下列字符中不属于转义字符的是(D )
A. \n B.\t C.\b D.\k

4.下列不正确的标识符是(B )
A._char B.a?b C.x D.st2_flag

5. C语言的源程序(C )主函数
A. 可以没有 B.可以有多个
C.有且只有一个 D.若有,只有一个

6. 在内存中应该开辟(A )多少个字节来存放字符‘\n’.
A. 1 B. 2 C. 3 D. 4

7. 下面的(C )不是合法的c语言常量。
A. 123 B.‘M’ C.0892 D. “Flag”

8. 下面( A)对变量的说明是错误的。
A. char c1, int x; B. int a,b; float x, y;
C. int a; int b; D. char c1; int x;

9. 有变量说明int a=3;, 则表达式a<1&&--a>1的运算结果和a的值应该是(A )
A. 0和2 B. 0和3 C. 1和2 D. 1和3

10. 设int x=12;, 则执行完语句a+=a-=a*a; 后,a的值是(C ) //应该是a=12
A. 552 B. 264 C. -264 D. 144

11. c语言中,运算对象必须是整型数的运算符是( ) //题目有问题,选项C是什么东东??
A. % B. / C. %和\ D. %和/

12. 以下关于break语句的描述,只有(C )是正确的。
A. 在循环语句中必须使用break语句。
B. break语句只能用于switch语句中。
C. 在循环语句中可以根据需要使用break语句。
D. break语句可以强制跳出所有循环。

13. 下面的叙述中,不正确的是(A )
A. 在main函数中说明的变量的作用域是整个程序。
B. 全局变量在程序运行期间一直占用分配给它的存储单元。
C. 形式参数是局部变量。
D. return()语句中括号内可以是常量、有确定值的变量或表达式。

14. 定义函数时,默认的函数类型是(A )
A. auto B. register C. static D. extern

15. c语言中的函数(B )
A. 可以嵌套定义 B. 嵌套调用和递归调用均可
C. 不可以嵌套调用 D. 可以嵌套调用,但不可以递归调用

三、阅读下列程序,写出执行结果(每题5分,共15分)
1.#include
main()
{
int x,m,n,a,b;
m=n=a=b=8;
x=(m=a>b)&&(n=a>b);
printf(“x=%d, m=%d, n=%d\n”,x,m,n);
}
答:
x=0,m=0,n=8

2. #include
main()
{
int a,b,c;
a=2;b=3;c=1;
if(a>b)
if(a>c)
printf(“%d\n”,a);
else
printf(“%d\n”,b);
printf(“end\n”);
}
答:
end

3.#include
main()
{
int s=0,k;
for(k=7;k>=0;k--)
{
switch(k)
{
case 1;
case 4;
case 7;
s++;
break;
case 2;
case 3;
case 6;
Break;
case 0;
case 5;
s+=2;
break;
}
}
printf(“s=%d\n”,s)
}
答:
S=7

四、程序设计题(每题10分,共20分)
1.整形数组a有五个元素,其值分别为:1、2、3、4、5,移动该数组的数,使其变成2、3、4、5、1
#include
Main{
Int i,temp;
Int a[5]={1,2,3,4,5};
temp=a[0];
for(i=0;i<4;i++)
{
a[i]=a[i+1];
}
a[4]=temp;
}
}

2. 用户从键盘输入一个字符串(字符中不包含空格),当输入回车时认为输入结束,统计输入字符串中小写英文字母、大写英文字母、数字字符、其他字符的个数
#include "stdio.h"
#include "string.h"

void main()
{
int i=0;//小写英文字母数量
int j=0;//大写英文字母数量
int k=0;//数字字符数量
int others=0;//其他字符数量
char temp;//接收字符。
int tempcounter;
printf("Please input the string") ;
for(tempcounter=0;;tempcounter++)
{ scanf("%c",&temp);
if(temp=='\n')
break;
else
{
if((temp>='a')&&(temp<='z'))
{
i=i+1;
continue;
}
if((temp>='A')&&(temp<='Z'))
{
j=j+1;
continue;
}
if((temp>='0')&&(temp<='9'))
{
k=k+1;
continue;
}
others=others+1;
}
}
printf("小写英文字母数量: %d\n",i);
printf("大写英文字母数量: %d\n",j);
printf("数字数量: %d\n",k);
printf("其他: %d\n",others);
}

回答2:

1.A
2.D
3.D
4.B
5.C
6.A

回答3:

A D D B D
A D A B C
C C A D B

x=0,m=0,n=8

end

s=7

(4-1):
int i = 0, tmp = a[0];
for (; i < 4; i++)
a[i] = a[i+1];
a[i] = tmp;

(4-2):
void main(void)
{
char *buff[512];
int i, j;
int alpha_count = 0;
int ALPHA_count = 0;
int digit_count = 0;
int other_count = 0;

for (gets(buff), i = 0, l = (strlen(buff));
i < l;
i++)
{
if (isalpha(buff[i]))
{
if (buff[i] >= 'A' && buff[i] <= 'Z')
ALPHA_count++;
else
alpha_count++;
}
else if (isdigit(buff[i]))
digit++;
else
other++;
}

}