C语言试题,有兴趣的做一下,谢谢了!!!!!!
一、选择题(每小题2分)
1.以下流程图中可以表达语句 if (x == y) calc(x, y, &done); 的是______。
A) B) C) D)
2.下列关于程序的描述中,错误的是:______。
A) C程序书写格式自由,一行内可以写几个语句,一个语句也可以分写在多行上
B) C语言中是利用输入输出运算符构成输入输出语句完成输入输出操作的
C) C程序是由函数构成的
D) 一个C程序总是从main函数开始执行
3.下列说法中正确的是:______。
A) C语言程序中的main() 函数必须放在程序的开始部分
B) C语言程序中,要调用的函数必须在main() 函数中定义
C) C语言程序总是从main() 函数开始执行
D) C语言程序总是从第一个定义的函数开始执行
4.构成C语言程序的基本单位是______。
A) 过程B) 子例程C) 子程序D) 函数
5.算法一般都可以用______控制结构组合而成。
A) 循环、分支、递归B) 顺序、循环、嵌套
C) 顺序、选择、循环D) 循环、递归、选择
6.C语言中的用户标识符只能由字母,数字和下划线三种字符组成,且第一个字符______。
A) 必须是字母B) 必须是字母或下划线
C) 必须是小写字母D) 没有限制
7.C语言中最简单的数据类型包括______。
A) 整型、实型、字符型B) 整型、实型、数组型
C) 整型、实型、指针型D) 整型、实型、逻辑型
8.下列选项中,不是C语言中的关键字的是______。
A) prinfB) whileC) floatD) break
9.以下不属于C语言内置类型的是:______。
A) stringB) unsigned intC) signed longD) double
10.下列选项中,符合C语言语法规范的标识符是:______。
A) caseB) R2D2C) "ABC"D) 3D_model
11.以下选项中不能作为合法常量的是______。
A) 234e05B) 2.34e0C) 2.34e0.5D) 2.34e-5
12.在下列语句中,赋值语句错误的是______。
A) a+b=3;B) ++k;C) a/=2;D) a=b=c=0;
13.假设double型变量x、y已经正确定义,则表达式x=1,y=x+1/2 的值是:______。
A) 1B) 1.0C) 1.5D) 2
14.下列运算符中优先级最高的运算符是:______。
A) &&B) --C) %D) *=
15.已知程序中的输入语句形式为:scanf("%d,%d",&a,&b); 则下列输入形式中,正确的
是:______。
A) 12 3B) 123C) 12,3D) 12:3
16.设有语句 scanf ("x=%f y=%f",&x,&y); 要使x、y均为1.25,正确的输入是______。
A) 1.25,1.25B) 1.25 1.25C) x=1.25 y=1.25D) x=1.25,y=1.25
17.假设a、b、c、d是已经正确定义的double型的变量,则在下列C语言表达式中,不能正确表达代数式 的是:______。
A) 2*a*d/b*cB) 2*a*b/c/dC) 2*a*b/d*1/cD) a*b/c/d*2
18.以下程序片段的输出结果是:______。
int a=789;
printf("%2d\n",a);
A) 789B) 89C) 78D) 出错,无结果
19.下述关于if的语句描述中,错误的是:______。
A) if语句可以与循环语句嵌套使用B) if语句中不能嵌套switch语句
C) if最多只能与一个else匹配D) if语句中可以有多个else if子句
20.下述关于if语句的描述中,错误的是:______。
A) else总是与前面最近的,未配对的,且为非独立if语句的if关键字配对
B) 用于条件判断的表达式必须用小括号括起,其中小括号不能省略
C) 用于条件判断的表达式可以使任意的表达式
D) 用于条件判断的表达式只能是关系表达式或逻辑表达式
21.设int型变量m、n、a、b、c、d均为0,执行表达式 (m=a==b)||(n=c==d) 后,m和n的值是:______。
A) 1、1B) 1、0C) 0、1D) 0、0
22.以下程序中,printf一共运行______。
main ()
{ int i, j;
for (i = 0; i < 3; i++)
for (j = 0; j < 4; j++)
printf("%d,%d\n", i, j);
}
A) 3次B) 4次C) 7次D) 12次
23.以下程序段的循环次数是:______。
int a = 2;
do
{ a--; }
while (a==1)
A) 无限次B) 2次C) 1次D) 0次
24.以下程序段执行后sum中的值是:______。
int i,sum;
for (i=1; i<=6; i++) sum+=i;
A) 14B) 15C) 21D) 不确定
25.若使用数组名作为函数调用的实参,则传递给形参的是:______。
A) 数组的首地址B) 数组第一个元素的值
C) 数组中全部元素的值D) 数组元素的个数
26.形式参数为基本类型变量时,实参和形参之间数据的传递为:______。
A) 单向传递B) 双向传递
C) 不传递D) 有时单向传递,有时双向传递
27.C语言中,一维数组名就是数组的起始地址。下列选项中与其值相等的是:______。
A) 数组1号元素的地址B) 数组0号元素的地址
C) 数组1号元素D) 数组0号元素
28.若已定义:int a[9], *p=a; 并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是______。
A) p+1B) a+1 C) ++pD) a++
29.下列语句中,不符合C语言定义并初始化数组的是:______。
A) int a[2][3] = {1,2,3,4,5,6};B) int a[2][3] = {{1},{4,5}};
C) int a[3][ ] = {{1},{4}};D) int a[ ][3] = {{1},{4}};
30.下列程序片段的运行结果是:______。
char c[5]={'x','y','\0','z','\0'};
printf("%s",c);
A) xyB) 'x''y'C) xy\0zD) xy\0z\0
31.设有数组定义:char array[10]="Hello!"; 则数组array所占的空间为:______。
A) 5个字节B) 6个字节C) 7个字节D) 10个字节
32.设有数组定义:char array[]="Hello!"; 则数组array所占的空间为:______。
A) 5个字节B) 6个字节C) 7个字节D) 不确定
33.设已有定义char str[10]; 则下列选项中,能使用scanf函数正确输入某个字符串给数组str的是:______。
A) scanf("%s", &str);B) scanf("%s", str);
C) scanf("%s", &str[10]);D) scanf("%s", str[10]);
二、阅读下面程序,写出程序的执行结果。
1.运行以下程序后,输出结果是__________。
main()
{ int x = 2, y = 3;
printf("%d,%d\n", x+=y, y);
}
2.运行以下程序后,输出结果是__________。
main()
{
printf("***\n***\n***\n");
}
3.以下程序运行后,输出结果是__________。
main()
{ int a=2, b=-3, c=0;
if (a < b)
c = a;
else
c = b;
printf("c=%d\n", c);
}
4.以下程序运行后,输出结果是__________。
main()
{ int i;
for (i=1; i<=3; i++)
printf("%d ", i*i*i);
}
5.以下程序运行后,输出结果是__________。
main()
{ char s[] = "THIS IS A TEST.";
int a=0, b=0, c=0, i;
for (i=0; s[i]!='.'; i++)
switch (s[i])
{ case 'I': a++;
case 'T': b++; break;
default: c++;
}
printf("%d %d %d", a, b, c);
}
6.以下程序运行后,输出结果是__________。
#define BEGIN 'd'
#define END 'a'
main()
{ char c;
for(c=BEGIN; c>END; c--)
printf("%c ", c);
}
7.以下程序运行后,输出结果是__________。
#define MAX 10
main()
{ int i,s=0;
for (i=1; i<=MAX; i++)
s+=i;
printf ("sum=%d\n",s);
}
8.以下程序运行后,输出结果是__________。
int fun(int a, int b)
{ return (a < b ? a : b);
}
main()
{ int x, y;
x = fun(5, 2);
y = fun(x, fun(8, 4));
printf("%d,%d", x, y);
}
9.以下程序运行后,输出结果是__________。
main()
{ int a[10]={2,3,5,7,11,13}, *p;
p=a+2;
printf("%d %d\n", a[2], p[2]);
}
10.以下程序运行后,输出结果是__________。
void func(int *a,int b[])
{ b[0]=++*a+2;
}
main()
{ int a, b[5]={0};
a=1; b[0]=2;
func(&a,b);
printf("%d %d\n", a, b[0]);
}
11.以下程序运行后,输出结果是__________。
void exchange(int *x, int *y)
{ int *t;
t=y; y=x; x=t;
}
main()
{ int a=2, b=3;
printf("%d,%d\n", a, b);
exchange(&a, &b);
printf("%d,%d\n", a, b);
}
12.以下程序运行后,输入“1234<回车>”,输出结果是__________。
main()
{ int a = 0, b = 0, c = 0;
scanf("%2d%d", &a, &b);
c = a + b;
printf("%d\n", c);
}
13.已知'A'的ASCII码为65,则以下程序运行后,输出结果是__________。
main()
{ char ch1 = 'A';
char ch2 = ch1+3;
printf("%d,%c\n", ch1, ch1);
printf("%d,%c", ch2, ch2);
}
三、填空题
·C语言中,代表函数没有返回值的类型关键词是【1】,若对函数类型未加明显说明,则函数的隐含类型是【2】。
·若在程序中用到对数函数“log()”时,应在程序开头写上头文件预处理命令【3】。
·在C语言中,描述命题“a ≤ x < b”的逻辑表达式为【4】。
·把pi定义成单精度型,并同时赋初值为3.1416的C语句是【5】。
·把x定义成长整型数组,可存1000个数字的C语句是【6】。
·若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是【7】。
·假设整型变量x已经正确定义,则执行表达式x=(x=5,x*8,x+3) 后,x的值为【8】。
·利用公式 计算x的表达式是【9】。
·C语言中的逻辑值“真”是用【10】表示的。“假”是用【11】表示的。
·在内存中存储 "A" 要占要【12】个字节,存储 'A' 要占要【13】个字节。
·以下函数的功能是:把两个整数指针所指的存储单元中的内容进行交换。请填空。
void exchange(int *x, int *y)
{
int t;
t=*y; *y=【14】; *x=【15】;
}
[解决办法]
帮你做点选择题,前面11题书上都能找到
12题开始
ABBAA ?ABDAD BCADB DCADC B
17题不确定,打个问号
[解决办法]
为什么你不用编译器运行一下呢?你能打出来这里 还不如自己打VC编译下;
二、阅读下面程序,写出程序的执行结果。
1. 答案:5,3
2.
***
***
***
3. -3;
4. 1827;
你自己打吧 -- 我在上班了