C语言程序设计试题及答案免费下载
C语言程序设计这门课要怎么做好试题拿高分呢?为此阳光网小编为大家推荐了C 语言程序设计 试题和答案 ,希望能帮到大家。
C 语言程序设计试题
一、单项选择题( 20 分,每题 2 分)
1.程序段
int *p,a;
p=&a;
a=10;
printf("%d",p);
的输出应为:
A)10 B)0 C)不能确定 D)语法错误
2.C语言规定,简单变量作为实参时,他和对应形参之间的数据传递方式是:
A)单向值传递 B) 地址传递 C) 相互传递 D) 由用户指定方式
3.以下语句或语句组中,能正确进行字符串赋值的是。
A)char *sp;*sp="right!"; B)char s[10];s="right!";
C)char s[10];*s="right!"; D)char *sp="right!";
4.for(i=0;i<10;i++)
if(i〈=5) break;
则循环结束后i的值为
A)0 B)1 C)5 D)10
5.有以下程序
main()
{
int m,n,p;
scanf("m=%dn=%dp=%d",&m,&n,&p);
printf("%d%d%d\n",m,n,p);
}
若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是。
A)m=123n=456p=789 B) m=123 n=456 p=789
C)m=123,n=456,p=789 D)123 456 789
6.C语言中,最基本的数据类型包括:
A)整型、实型、逻辑型 B)整型、字符型、数组
C)整型、实型、字符型 D)整型、实型、结构体
7.以下说法正确的是
A) C程序总是从第一个定义的函数开始执行
B) 在C程序中,要调用的函数必须在main()函数中定义
C) C程序总是从main()函数开始执行
D) C程序的main()函数必须放在程序的开始部分
8.程序段
int *p, a=1;
p=&a;
*p=10;
a的值为:
A) 1 B) 10 C) 不能确定 D) 11
9.以下定义语句中,错误的是
A) int a[]={1,2}; B) char *a[3];
C) char s[10]="test"; D) int n=5,a[n];
10.假定int类型变量占用两个字节,有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是
A) 3 B) 6 C) 10 D) 20
二、填空题( 30 分,每空 2 分)
1.已知字符A的ACSII码值为65,以下语句的输出结果是 (1) 。
char ch=’B’;
printf("%c %d\n",ch,ch);
2.’a’在内存中占 (2) 个字节,”a”在内存中占 (3) 个字节。
3.若有int a[3][2] = {{1},{3,2},{4,5}};,则a[1][1]的值是 (4) 。
4.有以下程序,执行后输出结果是 (5) 。
main( )
{
int t=1,i=5;
for(;i>=0;i--) t*=i;
printf("%d\n",t);
}
5.在循环语句中,break语句的作用是 (6) ,continue语句的作用是 (7) 。
6.下面程序段将字符数组b连接到数组a的后面。
main()
{
char a[20]= ."I am ";
char b[]= ."a student.";
int i, j;
i = strlen(a);
for(j =__(8)___; b[j]!='\0'; j++)
{
a[__(9)__] = b[__(10)__];
}
a[___(11)__] = ___(12)___ ;
}
7.for(表达式1;表达式2;表达式3)
语句组
的执行顺序是先求解表达式1、再___(13)______、如果成立则执行___(14)____、然后___(15)______。
三、写出程序的`运行结果( 30 分,每题 10 分)
1.写出程序运行后的输出结果。
int f(int b[][4])
{
int i,j,s=0;
for(j=0;j<4;j++)
{
i=j;
if(i>2)
i=3-j;
s+=b[i][j];
}
return s;
}
main( )
{
int a[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}};
printf("%d\n",f(a));
}
2.写出程序运行后的输出结果
#include
main()
{
float x=2,y;
if(x<0)
y=0;
else if(x<10)
y=1/x;
else
y=1;
printf(“%f\n”,y);
}
3.(1)函数sub()的功能是什么?(2)写出程序运行的输出结果。
long sub(int num)
{
int i;
long subsum=1;
for(i=1;i<=num;i++)
subsum*=i;
return(subsum);
}
main()
{
int i;
long sum=0;
for(i=1;i<=4;i++)
{
sum+=sub(i);
printf("sum%1d=%ld\n",i,sum);
}
}
四、编程(完形填空)( 20 分,每题 10 分)
1.写一个函数,实现将一个长度≤80的字符串按逆序存放。解题要求 :该函数的唯一形参是字符串的起始地址。
void convert(char string[])
{
int length,mid,i;
char temp;
length=____(1)____(string);
mid=____(2)_____;
for(____(3)____;i
{
temp=____(4)_____;
string[i]=string[____(5)_____];
string[(length-1)-i]=temp;
}
}
2.以下程序计算某年某月有几天,1、3、5、7、8、10、12月有31天,4、6、9、11月有30天,2月为28天、闰年2月为29天。
main()
{
int yy,mm,day;
scanf(“%d%d”,&yy,&mm);
switch(__(6)___)
{
case1:
case3:
case5:
case7:
case8:
case10:
case12: day=__(7)___;
break;
case4:
case6:
case9:
case11: day=__(8)___;
break;
case2: if(((yy%4==0)_(9)_(yy%100!=0)) (10)_(yy%400==0))
day=29;
else
day=28;
break;
}
}
}
C语言程序设计试题答案
一、单项选择题( 20 分,每题 2 分)
1.C 2.A 3.D 4.D 5.A 6.C 7.C 8.B 9.D 10.D
二、填空题( 30 分,每空 2 分)
(1) B 66
(2) 1
(3) 2
(4) 2
(5) 0
(6) 跳出循环体
(7) 跳过循环体中剩余的语句而强行执行下次循环。
(8) 0
(9) i+j
(10) j
(11) i+j
(12) '\0'
(13) 判断表达式2
(14) 语句组
(15) 求解表达式3
三、写出程序的运行结果( 30 分,每题 10 分)
1. 16
2. 0.500000
3. (1) 函数sub( )的功能是根据当前实参i的值控制其for循环的次数,进一步控制运算:subsum*=i的次数。 (注:非标准答案,表述相近既可)
实参i取值返回值subsum的值
11
21*2=2
32*3=6
46*4=24
(2) 运行结果:
sum0=1
sum1=3
sum2=9
sum3=33
四、编程(完形填空)( 20 分,每题 10 分)
1.
(1) strlen
(2) length/2
(3) i=1
(4) string[i]
(5) (length-1)-i
2.
(6) mm
(7) 31
(8) 30
(9) &&
(10) ||
【C语言程序设计试题及答案免费下载】相关文章: