班级: 学号: 姓名:
PAGE 9
第1页(共6页)
试 题 四
参考答案与评分标准
判断对错(6分,每题1分,对:√,错:×)
1.在C语言中,可以用typedef定义一种新的类型。( )
2.C语言中基本数据类型包括整型、实型、字符型。( )
3.不同的函数中可以使用相同的变量名。()
4.形式参数是局部变量。( )
5.若有定义int *p[4];则标识符p是一个指向有四个整型元素的一维数组的指针变量。( )
6. 共用体所占的内存空间大小取决于占空间最多的那个成员变量。( )
单项选择题:(10分,每题2分)
1.判断字符串s1与字符串s2相等,应当使用: 。
A) if (s1 = s2)
B) if (strcmp(s1, s2))
√C) if (!strcmp(s1, s2))
D) if (strcmp(s1, s2) = 0)
2.二维数组a有m行n列,则在a[i][j]之前的元素个数为( )。
A. j*n+i √B. i*n+j C. i*n+j-1 D. i*n+j+1
3.
#include
#include
main()
{
printf("%d\n", strlen("IBM\n012\t\"\\\0"));
}
则程序运行后的输出结果是 。
√A) 10 B) 11 C) 16 D) 12
4.有如下程序片段:
int i = 0;
while(i++ <= 2);
printf("%d", i);
则正确的执行结果是:
A) 2 B) 3 √C) 4 D) 程序陷入死循环
5. 下面哪个定义是合法的 。
A) char a[8] = "language";
B) int a[5] = {0,1,2,3,4,5};
√C) char *a = "string";
D) int a[2][] = {0,1,2,3,4,5,6};
三、
1.
#include
main( )
{
int a = 5, b = 4, x, y;
x = 2 * a++ ;
printf("a=%d, x=%d\n", a, x);
y = --b * 2?;
printf("b=%d, y=%d\n", b, y);
}
则程序运行结果是:
a=6, x=10
b=3, y=6
2.
#include
void fun1(int x)
{
x=20;
}
void fun2(int b[4])
{
int j;
for(j=0; j<4; j++)
{
b[j]=j;
}
}
main()
{
int x = 10;
int a[4] = {1,2,3,4}, k;
fun1(x);
printf("x = %d\n", x);
fun2(a);
for(k=0; k<4; k++)
{
printf("%d\n", a[k]);
}
}
运行结果是:
x = 10
0
1
2
3
3.
#include
main()
{
int x, y;
scanf("%2d%*4s%2d", &x, &y);
printf("%d", y-x);
}
程序运行时输入:123456789↙
则程序运行结果是:66
4.
#include
struct date
{
int year;
int month;
int day;
};
void func(struct date p)
{
p.year = 2000;
p.month = 5;
p.day = 22;
}
main()
{
struct date d;
d.year = 1999;
d.month = 4;
d.day = 23;
printf("%d,%d,%d\n", d.year, d.month, d.day);
func(d);
printf("%d,%d,%d\n", d.year, d.month, d.day);
}
程序运行结果为:
1999,4,23
1999,4,23
5.
#include