C语言考试题及答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、单项选择题:(10分,每题2分)
1.char *p[10];该语句声明了一个:。
A)指向含有10个元素的一维字符型数组的指针变量p
B)指向长度不超过10的字符串的指针变量p
C)有10个元素的指针数组p,每个元素可以指向一个字符串
D) 有10个元素的指针数组p,每个元素存放一个字符串
2.若int x;且有下面的程序片断,则输出结果为:。
for (x=3; x<6; x++)
{
printf((x%2) ? "##%d" : "**%d\n", x);
}
A) ##3B) **3C) **3D)##3**4
**4 ##4 ##4**5 ##5
##5 **5
3.在while(!x)语句中的!x与下面条件表达式等价的是:。
A) x!=0 B) x==1 C) x!=1 D) x==0
4.已知
struct point
{
int x;
int y;
};
struct rect
{
struct point pt1;
struct point pt2;
};
struct rect rt;
struct rect *rp = &rt;
则下面哪一种引用是不正确的________。
A) B) (*rp). C) rp-> D)rt->
5.若二维数组a有m行n列,则下面能够正确引用元素a[i][j]的为:。
A) *(a+j*n+i) B) *(a+i*n+j) C) *(*(a+i)+j) D) *(*a+i)+j
CDDDC
二、分析程序并写出运行结果。(25分,每题5分)
1.#include <>
main()
{int n;
static char *monthName[]=
{"Illegal month", "January", "February",
"March", "April", "May", "June", "July", "August",
"September", "October", "November", "December"};
for (n=1; n<=12; n++)
{
printf("%s\n", monthName[n]);
}
}
运行结果是:
January
February
March
April
May
June
July
August
September
October
November
December
2.#include<>
#define ARR_SIZE 7
void YH(int a[][ARR_SIZE], int n);
void PrintYH(int a[][ARR_SIZE], int n);
main()
{int a[ARR_SIZE][ARR_SIZE];
YH(a, ARR_SIZE-1);
PrintYH(a, ARR_SIZE-1);
}
void YH(int a[][ARR_SIZE], int n)
{int i, j;
for (i=1; i<=n; i++)
{
for (j=1; j<=i; j++)
{
if (j==1 || i==j)
{
a[i][j] = 1;
}
else
{
a[i][j] = a[i-1][j-1] + a[i-1][j];
}
}
}
}
void PrintYH(int a[][ARR_SIZE], int n)
{
int i , j ;
for (i=1; i<=n; i++)
{
for (j=1; j<=i; j++)
{
printf("%4d", a[i][j]);
}
printf("\n");
}
}
运行结果是:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
3.
#include <>
main()
{
int i, n;
for (i=1; i<=5; i++)
{
printf("Please enter n:");
scanf("%d", &n);
if (n <= 0) continue;
printf("n = %d\n", n);
}
printf("Program is over!\n");
}
程序运行时输入:1 -2 3 -4 5↙
运行结果是:
n = 1
Please enter n: Please enter n:n = 3 Please enter n: Please enter n:n = 5 Program is over!
4.
#include <>
void Func(int n);
main()
{
int i;
for (i = 0; i < 2; i++)
{
Func(i);
}
}
void Func(int n)
{
static int t = 1;
printf("t=%d\n", t++);
}
运行结果是:
t=1
t=2
5.
#include <>
int Func(int i);
main()
{
int i;
for (i=3; i<5; i++)
{
printf(" %d", Func(i));
}
printf("\n");
}
int Func(int i)
{
static int k = 10;
for (; i>0; i--)
{
k++;
}
return (k);
}
运行结果是: