C语言程序设计

本卷共有3大题。
一、单项选择题(10道小题,共10分)
1、以下程序main( ) {int a=3; printf(“%d\n”,(a+=a-=a*a)); } 的输出结果是():(1分)
A、–6 B、12
C、0 D、-12

2、执行 printf("%d",(5/2+10%3)/3);的值是():(1分)
A、0 B、2
C、1 D、3

3、以下程序的输出结果是:main(){int x,y=0; for(x=1;x<10;x+=2) y++; printf("%d,%d\n",x,y);}(1分)
A、10,5 B、11,6
C、11,5 D、10,6

4、有定义char *s="ABCDE";,不能输出字符串”ABCDE”的语句为()(1分)
A、printf("%s",++s); B、printf("%s",s);
C、printf("%s",&s[0]); D、printf("%s",s++);

5、对于16位系统中,C语言中整数 -8在内存中的存储形式是():(1分)
A、1111 1111 1111 1000 B、1000 0000 0000 0000
C、1000 0000 0000 1000 D、1111 1111 1111 0111

6、已知int a[]={1,2,3,4,5,6,7,8,9},*p = a; 则值为3的表达式是()(1分)
A、p+=2,*(p++) B、p+=2,*++p
C、p+=3,*p++ D、p+=2,++*p

7、若int a=5,b=6,c=7,d=8,m=2,n=2; 则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为():(1分)
A、0 B、1
C、2 D、3

8、以下错误的描述是()(1分)
A、break语句不能用于循环语句和switch语句外的任何其它语句 B、在switch语句中使用break语句或continue语句的作用相同
C、在循环语句中使用continue语句是为了结束本次循环,而不是终止整个循环 D、在循环语句中使用break语句是为了跳出循环体,提前结束循环

9、以下程序运行后,main() {char *s="abcde"; s+=2; printf("%d\n",s); },输出结果是()(1分)
A、cde B、字符c的ASCII码值
C、字符c的地址 D、值不确定

10、下面关于字符串的说明中,错误的是();(1分)
A、char str[7]=”FORTRAN”; B、char *str=”FORTRAN”;
C、char str[]=”FORTRAN”; D、char str[]={‘F’,’O’,’R’,’T’,’R’,’A’,’N’};

二、简答题(6道小题,共30分)
1、写程序计算一个正整数的所有因子的和。

2、编写程序,计算并输出下面级数前n项(n=20)的部分和。
1*2*3+2*3*4+3*4*5+……+n*(n+1)*(n+2)+…

3、 编写程序,用双循环结构输出下列三角形:
*
* * *
* * * * *
* * * * * * *

4、编写程序,计算并输出下面级数前n项(n=50)中偶数项的和。
1*2+2*3+3*4+4*5+……+n*(n+1)+…

5、用起泡法对数组中15个实数进行排序。

6、写一程序:输入一个正整数,按十进制位从低到高输出。

三、编程题(6道小题,共60分)
1、你是如何理解C语言中的变量的?
2、C语言的数组名有什么作用?
3、谈谈C语言的表达式。
4、如何理解指针?
5、写出函数的语法结构。
6、写出条件运算符的语法,并写出其运算步骤。
急!!!!!!!!!!!!!!!!!!!!!

一:D C C A A A C B C A
二:
1):
#include<stdio.h>
void main()
{
int m,i,sum;
printf("请输入要计算的整数:");
scanf("%d",&m);
for(i=1,sum=0;i<=m;i++)
if (m/i*i==m)
sum+=i;
printf("因子和sum=%d\n",sum);
}
2):
#include<stdio.h>
void main()
{
int m,n,i,sum;
printf("请输入要计算的项数:");
scanf("%d",&m);
for(i=1,sum=0;i<=m;i++)
{
n=i*(i+1)*(i+2);
sum+=n;
}
printf("项数和sum=%d\n",sum);
}
3):
#include<stdio.h>
void main()
{
int i,j;
for(i=1;i<5;i++)
{
for(j=1;j<5-i;j++)
printf(" ");
for(j=1;j<i*2;j++)
printf("*");
for(j=1;j<5-i;j++)
printf(" ");
printf("\n");
}
}
4):
#include<stdio.h>
void main()
{
int i,n,q,sum;
printf("请输入要计算的项数:");
scanf("%d",&n);
for(i=2,sum=0;i<=n;i++)
{
q=i*(i+1);
sum+=q;
i++;
}
printf("项数和sun=%d\n",sum);
}
5):
#include<stdio.h>
void main()
{
int i,j,q,a[15];
printf("请输入要排列的数:");
for(i=0;i<15;i++)
scanf("%d",&a[i]);
for(i=0;i<15;i++)
for(j=0;j<15-i;j++)
if(a[j]<a[j+1])
{
q=a[j];
a[j]=a[j+1];
a[j+1]=q;
}
for(i=0;i<15;i++)
printf("排列后的数为%d\n",a[i]);
}
6):
你能把这个题说详细点吗?
三:
1):变量就是在内存中划出一个片段用来保存我需要保存的数据。
2):数组名用来标示我在数组中保存的数据在内存上的位置。
3):表达式是对对象进行运算并进行判断,然后返回1或0 ,1为真 0为假
4):指针就是数据存储在内存的内存位置。
5):函数的语法结构为 {成员 、 方法 、返回值}
6): (1?2 :3) ,条件运算符,先判断1的值,如果为真则输出2的值,否则输出3的值。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-04-03
D C C A A A C B C A
先把选择题给你做了
太麻烦了
第2个回答  2010-04-03
同学你也太懒了吧!!!!!!!!!!
第3个回答  2010-04-03
孩子你也太强了吧
比我当年还强啊··
第4个回答  2010-04-03
不会吧,还能这样搞........