C语言试题大全
引导语:c语言相关的试题都会考察什么内容呢?以下是小编整理的C语言试题大全,欢迎参考阅读!
一、填空题(10分,第1小题4分,其余每空1分)
1.设有下列登记表,请采用最佳方式定义一种数据类型来表示这些数据的集合。
其中,配偶姓名用spouseName表示,子女人数用children表示。
2.C语言中构造数据类型包括 、 、 。
3.C语言中用_______表示逻辑值“假”,用________表示逻辑值“真”。
4.char*p[10];这条语句的含义是: 。
二、判断下列问题描述正确与否,正确的打“√”,错误的打“×”。(4分,每题1分)
1.如果在程序中定义静态变量和全局变量时,未明确指明其初始值,那么它们可以在程序编译阶段自动被初始化为0值。( )
2.在C语言中,可以用typedef定义一种新的数据类型。( )
3在C语言中,实参与其对应的形参各占独立的存储单元。( )
4.在C语言中,函数的定义可以嵌套。( )
三、选择题:(10分,每题2分)
1.若用数组名作为函数调用时的实参,则实际上传递给形参的是( )。
A.数组的首地址
B.数组的第一个元素值
C.数组中全部元素的值
D.数组元素的个数
2.判断两个字符串s1和s2相等,应当使用( )。
A.if (s1 == s2)
B. if (s1 = s2)
C.if (!strcmp(s1,s2))
D. if (strcmp(s1,s2))
3.在while(x)语句中的x与下面条件表达式等价的是: 。
A. x!=0
B. x==1
C. x!=1
D. x==0
4.二维数组a有m行n列,则在a[i][j]之前的元素个数为( )。
A. j*n+i
B. i*n+j
C. i*n+j-1
D. i*n+j+1
5.设有声明语句:int a=1,b=0;则执行以下语句后输出为:。
switch (a)
{
case 1:
switch (b)
{
case 0:printf("**0**");
break;
case 1:printf("**1**");
break;
}
case2: printf("**2**");
break;
}
A.**0**
B.**0****2**
C.**0****1****2**
D.有语法错误
四、写出下列程序的运行结果。(6分,每题2分)
1.
#include
void Fun(int *y)
{
printf("*y = %d ", *y);
*y = 20;
printf("*y = %d ", *y);
}
main()
{
int x = 10;
printf("x = %d ", x);
Fun(&x);
printf("x = %d ", x);
}
运行结果是:
2.
#include
int Fun(int x)
{
static int y = 0;
y += x;
return y;
}
main()
{
int x = 10, y = 0, k;
for(k=0; k<2; k++)
{
y = Fun(x);
printf("y = %d ", y);
}
}
运行结果是:
3.#include
main ( )
{
char a[] ="programming" , b[] = "language" ;
char *p1, *p2 ;
int i;
p1 = a;
p2 = b;
for (i=0; i<7; i++)
{
if (*(p1+i) ==*(p2+i))
printf("%c",*(p1+i)) ;
}
printf(" ");
}
运行结果是:
五、阅读程序,在标有下划线的空白处填入适当的表达式或语句,使程序完整并符合题目要求。(10分,每空2分)
1. 下面这个程序用于读入5个整数,当程序读入的数据为正整数时,则显示该数,否则,不显示。读入5个数据后,程序结束运行。
#include
main()
{
int i, n;
for(i=1; i<=5; i++)
{
printf("Pleaseenter n:");
scanf("%d",&n);
if(n <= 0) _____________;
printf("n= %d ", n);
}
printf("Programis over! ");
}
2. 韩信点兵。韩信有一队兵,他想知道有多少人,便让士兵排队报数:按从1至5报数,最末一个士兵报的数为1;按从1至6报数,最末一个士兵报的数为5;按从1至7报数,最末一个士兵报的数为4;最后再按从1至11报数,最末一个士兵报的数为10。下面程序的主要功能是计算韩信至少有多少兵。
#include
main()
{
intx = 1;
intfind = 0;
for (x=1; ________; x++)
{
if (x%5==1 && x%6==5&& x%7==4 && x%11==10)
{
printf(" x =%d ", x);
____________;
}
}
}
3. 下面程序是计算字符串中实际字符的个数,即实现和字符串处理函数strlen相同的功能。
unsigned int MyStrlen(char str[])
{
unsigned int len = 0, i;
for (i=0; str[i]!=; i++)
{
len;
}
return len;
}
六、在下面这个程序中,要求其实现的功能是对用户输入的任意整数计算其阶乘,输入小于等于-1的数时退出程序。下面给出的是一个有错误的程序,请找出其中的错误,并改正之。(10分)
#include
#define END-1;
long Factorial(int x);
main()
{
int x;
while(1);
{
printf("inputx:);
scanf("%d",x);
if(x <= END.
break
else
printf("%d!= %d ", x, Factorial(x));
}
}
long Factorial(int x)
{
int i;
int result;
for(i=1, i<=x, i++)
result*= i;
}
七、编程(40分,第1和2小题各10分,第3小题20分)
1.编程计算1!+2!+3!+……+10!的值。
2. 从键盘任意输入10个不相同的整数,然后,输入要查找的数x,如果在这10个数中找到x,则打印“Found!”;如果找不到,则打印“Not found!”。
3.从键盘任意输入某班20个学生的成绩,打印最高分,并统计不及格学生的人数。
【C语言试题】相关文章:
C语言试题11-01
C语言试题08-02
C语言程序试题04-26
C语言考点试题08-19
C语言试题及答案07-26
C语言练习试题07-01
C语言试题训练08-07
C语言模拟试题练习08-11
标准c语言笔试题09-07
C语言笔试题及答案08-25