C语言程序设计教程课后习题答案

C语言程序设计教程课后习题答案
C语言程序设计教程课后习题答案

第1章

1-3 CAB

4 .c .obj .exe

5 /* */

6 ;

7 算法

8 ①中级语言:C语言具有高级语言的先进思想又能直接对存储器进行操作,能进行位运算,能实现汇编语言的大部分功能,生成目标代码质量高,程序执行效率高。

②结构化语言:C语言用函数作为程序模块,以实现程序的模块化,语言简洁、紧凑,具有结构化的特点。

③可移植性好:C语言不包含依赖硬件的输入输出机制,使C语言本身不依赖于硬件系统,可移植性好。

9 #include<>

main( ) { ; }

10 #include “”

main()

{

printf(“This is my first C Program!”);

}

第2章

1.yes

2.-3

3.2,1

4.1)a!=b||a<=c 2)x>=4||x<=-4

5.x>20&&x<30||x<-100

6.#include <>

main()

{

int x;

printf(“please input an integar:”);

scanf("%d",&x);

if(x%5==0&&x%7==0) printf("yes\n");

else printf("no\n");

}

7.

#include <>

main()

{

int year,month;

printf("please input the year and month:");

scanf("%d%d",&year,&month);

switch(month)

{

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:printf("this month have 31 days.");

break;

case 4:

case 6:

case 9:

case 11:printf("this month have 30 days.");

break;

case 2:if(year%4==0&&year%100!=0||year%400==0)

{

printf("this month have 29 days.");

break;

}

else

{

printf("this month have 28 days.");

break;

}

}

}

8.

#include <>

main()

{

float money;

int year;

printf("\nplease input the money and the year:");

scanf("%f%d",&money,&year);

if(year==1) money+=money**12*year;

if(year==2) money+=money**12*year;

if(year==3||year==4) money+=money**12*year;

if(year>=5&&year<=7) money+=money**12*year;

if(year>=8) money+=money**12*year;

printf("the money is:%f",money);

}

第3章

1

#include ""

main()

{ float x[10],sum=0;

int i=0;

printf("please input 10 numbers(-10e6

while(i<10)

{ scanf("%f",&x[i]);

sum=sum+1/x[i];

i=i+1;

}

printf("the sum of 10 numbers is %.2f\n",sum);

}

2

#include ""

main()

{ int x[100],sum=0,aver,i=0;

printf("please input numbers until 0\n");

scanf("%d",&x[i]);

while(x[i]!=0)

{ sum=sum+x[i];

i=i+1;

scanf("%d",&x[i]);

}

printf("the sum is %d\n",sum);

printf("the average is %.2f\n",float(sum)/i);

}

3

#include ""

#include ""

main()

{ int i=1,j,f;

long int s=0;

while(i<=10)

{ for(f=1,j=1;j<=i;j++)

f=f*j;

s=s+pow(-1,i-1)*f;

i=i+1;

}

printf("s= %ld\n",s);

}

4

#include ""

#include ""

main()

{ int i=0;

float s=;

while(2*i+1<=101)

{ s=s+pow(-1,i)/float(2*i+1);

i=i+1;

}

printf("s= %f\n",s);

}

5

#include ""

#include""

main()

{ int i,j,k,n=0;

for(i=1;i<=9;i++)

for(j=0;j<=9;j++)

for(k=0;k<=9;k++)

if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)

printf("the %d:%d\n",++n,i*100+j*10+k);

printf("the all is %d.\n",n--);

}

6

#include ""

main()

{ int n,i,j;

printf("please input n:");

scanf("%d",&n);

for(i=0;i

{ for(j=0;j

printf("*");

printf("\n");

}

}

7

#include ""

main()

{ char a[81];

int i,j=0,k=0,m=0;

printf("please input a $(length<=80)\n");

for(i=0;(a[i]=getchar())!='\n';i++)

{ if(a[i]>=65&&a[i]<=90)

j++;

else if(a[i]==32)

k++;

else m++;

}

printf("the upper letter is %d\n",j);

printf("the blank is %d\n",k);

printf("the other is %d\n",m);

}

8

#include ""

main()

{ int i,j,k,m=0;

for(i=0;i<=20;i++)

{ for(j=0;j<=50;j++)

for(k=0;k<=100;k++)

if(i*5+j*2+k==100)

printf("the %d wag is 1:%d,2:%d,5:%d\n",++m,k,j,i);

}

printf("the wags is %d\n",m--);

}

9

#include ""

main()

{ int i,j,k,m=0;

for(i=0;i<=3;i++)

{ for(j=0;j<=3;j++)

for(k=0;k<=6;k++)

if(i+j+k==8)

printf("the %d wag is white:%d,red:%d,black:%d\n",++m,i,j,k);

}

printf("the wags is %d\n",m--);

}

10

#include ""

main()

{ long int n;

int i,j,k;

printf("please inpur n:");

scanf("%ld",&n);

if(n%2==1||n<=1)

{ printf("the input is error.\n");

return(1);

}

for(i=2;i<=n/2;i++)

{ for(j=2;j

if(i/j*j==i)

break;

if(j==i)

{for(k=2;k

if((n-i)/k*k==(n-i))

break;

if(k==n-i)

printf("%ld=%d+%d\n",n,i,n-i);

}

}

}

11

#include ""

main()

{int i,j,k,m;

for(i=1;i<=9;i++)

for(j=0;j<=9;j++)

for(k=0;k<=9;k++)

for(m=0;m<=9;m++)

if((i*1000+j*100+k*10+m)*9==(i+j*10+k*100+m*1000))

printf("the number is:%d\n",i*1000+j*100+k*10+m);

}

第4章

1-5 ABDCB 6-10 BCBCA 11-13 ABA

14

#include ""

main()

{

float a1,b1,a2,b2,re1,im1,re2,im2,re3,im3;

printf("Please input the first number:");

scanf("%f %f",&a1,&b1);

printf("Please input the second number:");

scanf("%f %f",&a2,&b2);

re1=a1+a2;

im1=b1+b2;

printf("(%f+j%f)+(%f+j%f)=%f+j%f\n",a1,b1,a2,b2,re1,im1);

re2=a1-a2;

im2=b1-b2;

printf("(%f+j%f)-(%f+j%f)=%f+j%f\n",a1,b1,a2,b2,re2,im2);

re3=a1*a2-b1*b2;

im3=a1*b2+a2*b1;

printf("(%f+j%f)*(%f+j%f)=%f+j%f\n",a1,b1,a2,b2,re3,im3);

}

第5章

1-5 CACCD 6-7 DA

8

#include ""

main()

{

char str[100];

int num1=0,num2=0,i=0;

scanf("%s",str);

while(str[i]!='\0')

{

if(str[i]>='A'&&str[i]<='Z'||str[i]>='a'&&str[i]<='z')

num1++;

else if(str[i]>='0'&&str[i]<='9')

num2++;

i++;

}

printf("num1=%d,num2=%d",num1,num2);

}

9笔者在程序中直接给数组元素赋了值,读者可以修改为用scanf函数读入数值;另外,还可以用第7章宏定义的方法设定数组的长度,从而实现对元素个数不同的数组进行排序。#include ""

main()

{

int a[5]={2,4,1,3,0},i,j,temp;

for(i=0;i<=4;i++)

printf("%d,",a[i]);

printf("\n");

for(j=1;j<=4;j++)

for(i=j;i<=4;i++)

if(a[i]

{

temp=a[j-1];

a[j-1]=a[i];

a[i]=temp;

}

for(i=0;i<=4;i++)

printf("%d,",a[i]);

}

第6章

1-5 AADBA 6 C

7 0 2 4 6 8 10 12 14 16 18

0 2 4 6 8 10 12 14 16 18

8 a+b=9

9 5+4+1=10

10+4+2=16

20+4+3=27

10

加密:

#include ""

main()

{

char string[100],i=0,number=0;

scanf("%s",string);

while(string[i++]!='\0')

number++;

fun1(string,number);

printf("%s",string);

}

fun1(char str[],int num)

{

int i;

for(i=0;i<=num;i++)

if(str[i]>='A'&&str[i]<='V'||str[i]>='a'&&str[i]<='v'||str[i]>='0'&&str[i]<='5') str[i]+=4;

else if(str[i]>'V'&&str[i]<='Z')

str[i]-=22;

else if(str[i]>'v'&&str[i]<='z')

str[i]-=22;

else if(str[i]>'5'&&str[i]<='9')

str[i]-=6;

}

解密

#include ""

main()

{

char string[100],i=0,number=0;

scanf("%s",string);

while(string[i++]!='\0')

number++;

fun2(string,number);

printf("%s",string);

}

fun2(char str[],int num)

{

int i;

for(i=0;i<=num;i++)

if(str[i]>='E'&&str[i]<='Z'||str[i]>='e'&&str[i]<='z'||str[i]>='4'&&str[i]<='9')

str[i]-=4;

else if(str[i]>='A'&&str[i]<'E')

str[i]+=22;

else if(str[i]>='a'&&str[i]<'e')

str[i]+=22;

else if(str[i]>='0'&&str[i]<'4')

str[i]+=6;

}

第8章

一、下列语句是否合法

语句:int *p = &x, x = 13;

点评:不合法,因为x变量没有定义。在执行int *p = &x 时,x变量的定义在后面。

参考:int x = 13, *p = &x;

语句:int *p = &x = 13;

点评:不合法,因为x变量没有定义。在执行int *p = &x = 13 时,x变量没有定义。

参考:int x = 13, *p; p = &x;

语句:int x = 13,*p = x;

点评:不合法,不能把x变量的值赋给指针p。应该把变量x的地址值赋给指针p。

参考:int x = 13, *p; p = &x;

语句:int y[5] = {1,2,3,4,5},*p = y[3];

点评:不合法,不能把数组元素y[3]的值赋给指针p,应该把数组元素y[3]的地址值赋给指针p。

参考:int y[5] = {1,2,3,4,5},*p ; p = &y[3];

语句:int *p = y,y[5] = {1,2,3,4,5};

点评:不合法,因为数组y没有定义。

参考:int y[5] = {1,2,3,4,5},*p; p = y;

语句:int y[5] = {1,2,3,4,5},*p = &y;

点评:不合法,不能把数组y的地址值赋给指针p。数组名y本身是数组y的地址常量值。

参考:int y[5] = {1,2,3,4,5},*p; p = y;或int y[5] = {1,2,3,4,5},*p; p = &y[0];

语句:int *c = &ch,ch = "Hello World";

点评:不合法,ch变量没有定义,字符串"Hello World"不能赋给变量ch。

参考:char *ch = "Hello World!";或char *ch;ch = "Hello World";

语句:char ch[12] = "Hello World",*c = ch;

点评:合法。

思考:char ch[12] = "Hello World!!!",*c = ch;该语句错误,字符个数超出数组ch定义的宽度。

语句:char *c = ch[12] = "Hello World"

点评:不合法,数组ch没有定义。数组ch没有第12个元素。

参考:char *c,ch[12] = "Hello World";c = ch;

语句:char *c,c = 'X',c = &c;

点评:不合法,不能把常量'X'的值赋给指针,不能把指针c的地址值赋给指针c自己。

参考:char *c,ch; ch = 'X',c = &ch;

二、综合练习题参考答案

1.将一字符串复制到另一字符串中。

#include<>

void main()

{ char str1[128],str2[128] = {"Welcome to C Language"};

char *cp1,*cp2;

cp1 = str1;

cp2 = str2;

while(*cp1++ = *cp2++);

puts(str1);

}

2.将一字符串与另一字符串相连接。

#include<>

void main()

{ char str1[128] = {"Welcome "},str2[128] = {"to C Language"};

char *cp1,*cp2;

int i = 0,n = 0;

while(n++,str1[++i] != 0);

cp1 = str1+n;

cp2 = str2;

while(*cp1++ = *cp2++);

puts(str1);

}

3.将字符数组中大写字符改为小写字符,将小写字符改为大写字符。

#include<>

void main()

{ char str1[128] = {"Welcome to C Language"};

char *cp1 = str1;

while(*cp1)

{ if(*cp1 >= 'A' && *cp1 <= 'Z')

*cp1 = *cp1+32;

else if(*cp1 >= 'a' && *cp1 <= 'z')

*cp1 = *cp1-32;

else

*cp1 = *cp1;

cp1++;

}

puts(str1);

}

4.从一字符串中取出部分字符串复制到另一字符串中。#include<>

void main()

{ char ch[128],*cp,str[128],*sp;

int b,n,l=0,i;

cp=ch;

sp=str;

gets(cp);

scanf("%d%d",&b,&n);

while(l++,*(ch+l)!=0);

if(n

{ for(i=0;i

*(sp+i)=*(cp+b+i);

*(sp+i)='\0';

puts(str);

}

else

printf("无数据可以复制");

}

5.完成一整型数组的排序。

#include<>

#include<>

void main()

{ int x[10],i,j,*p,t;

p = x;

for(i = 0;i<10;i++)

x[i] = rand();

for(i = 0;i<9;i++)

for(j = 0;j<9;j++)

if(*(p+j)>*(p+j+1))

{ t = *(p+j);

*(p+j) = *(p+j+1);

*(p+j+1) = t;

}

for(i = 0;i<10;i++)

printf("%d\t",*p++);

}

6.将一个字符串中的字符反序排列。

#include<>

void main()

{ char ch[128],c,*cp1,*cp2;

int i,n = 0;

gets(ch);

cp1 = ch;

cp2 = ch;

while(*cp2!= 0)

{ n++;

cp2++;

}

cp2--;

n = n/2;

for(i = 0;i

{ c = *cp1;

*cp1 = *cp2;

*cp2 = c;

cp1++;

cp2--;

}

puts(ch);

}

7.编函数完成将一字符串中的字符全部改为大写。#include<>

void cove(char *cp)

{ while(*cp!= 0)

{ if(*cp>= 'a' && *cp<= 'z')

*cp = *cp-32;

cp++;

}

}

void main()

{ char ch[128],*cp;

cp = ch;

gets(cp);

cove(cp);

puts(ch);

8.编函数完成从一字符串左边取若干字符复制到另一字符串中。

#include<>

void lm(char *lcp,char *bcp,int n)

{ int i;

for(i = 0;i

*(bcp+i) = *(lcp+i);

*(bcp+i) = '\0';

}

void main()

{ char ch[128],*cp,str[128];

int n,l =0;

gets(ch);

scanf("%d",&n);

while(l++,*(ch+l)!= 0);

if(n

{ cp = ch;

lm(cp,str,n);

puts(str);

}

else

printf("无数据可以复制");

}

第9章

1

#include ""

struct date

{ int year;

int month;

int day;

};

main()

{ struct date re;

int

day[2][12]={{31,29,31,30,31,30,31,31,30,31,30,31},{31,28,31,30,31,30,31,31,30,31,30,31}};

int i,days=0;

printf("input the day(year:month:day):\n");

scanf("%d:%d:%d",&,&,&;

if(%4==0&&%100!=0)||%400==0)

for(i=1;i<;i++)

days+=day[1][i-1];

else

for(i=1;i<;i++)

days+=day[0][i-1];

days+=;

printf("the days is %d\n",days);

}

2

#include ""

main()

{enum weekday{Sun,Mon,Tue,Wed,Thu,Fri,Sat} day; int data;

printf("input the data:");

scanf("%d",&data);

data+=2;

day=(enum weekday)(data%7);

switch(day)

{ case Mon:printf("It is Monday.\n");break;

case Tue:printf("It is Tuesday.\n");break;

case Wed:printf("It is Wednesday.\n");break;

case Thu:printf("It is Thursday.\n");break;

case Fri:printf("It is Friday.\n");break;

case Sat:printf("It is Saturday.\n");break;

case Sun:printf("It is Sunday.\n");break;

default:printf("error\n");

}

}

3

#include ""

struct result

{ int notpass;

int pass;

int good;

};

main()

{ struct result re, *p=&re;

int i,temp;

void output(struct result *);

=0;

=0;

=0;

printf("input 12 integers;\n");

for(i=0;i<12;i++)

{ scanf("%d",&temp);

if(temp<0||temp>100)

{ printf("error!\n");

return(0);

}

else if(temp<60)

++;

else if(temp>=80)

++;

else ++;

}

output(p);

return(1);

}

void output(struct result *p)

{ printf("the result:\n");

printf(" mark: 0-59 60-79 80-100\n");

printf("number: %d %d %d\n",p->notpass,p->pass,p->good); }

4

#include ""

struct stat

{ int length;

int blank;

int letter;

int number;

};

main()

{ struct stat re[2];

char temp;

int k;

void output(struct stat *);

for(k=0;k<2;k++)

{ re[k].length=0;

re[k].blank=0;

re[k].letter=0;

re[k].number=0;

}

for(k=0;k<2;k++)

{ printf("input the %dst $;\n",k+1);

while((temp=getchar())!='\n')

{ re[k].length++;

if(temp==' ')

re[k].blank++;

else if((temp>=65&&temp<=90)||(temp>=97&&temp<=122))

re[k].letter++;

else if(temp>=48&&temp<=57)

re[k].number++;

}

}

output(re);

return(1);

}

void output(struct stat *p)

{ if(p->length==(p+1)->length)

printf("the length of 2 strings is equal.\n");

else

printf("the length of 2 strings is different.\n");

if(p->blank==(p+1)->blank)

printf("the amounts of blanks in 2 strings is equal.\n");

else

printf("the amounts of blanks in 2 strings is different.\n");

if(p->letter==(p+1)->letter)

printf("the amounts of letters in 2 strings is equal.\n");

else

printf("the amounts of letters in 2 strings is different.\n");

if((*p).number==(p+1)->number)

printf("the amounts of numbers in 2 strings is equal.\n");

else

printf("the amounts of numbers in 2 strings is different.\n");

}

第10章

1、C文件的特点是:C系统在处理文件时,并不区分类型,都看成是字符流,按字节进行处理。输入输出字符流的开始和结束只由程序控制而不受物理符号(如回车符)的控制。因此C语言文件也叫流式文件。流式文件准许对一个字符进行存取, 这增加了数据处理的灵活性。

缓冲文件系统:缓冲文件系统自动在内存区开辟一个确定大小的缓冲区,使数据输入输出都先通过缓冲区。

非缓冲文件系统:非缓冲文件系统不自动开辟确定大小的缓冲区,而是由程序员为每个文件设定一个缓冲区。

2、文件类型指针是缓冲文件系统的一个重要概念。文件类型指针是指向描述文件信息结构体的结构体变量,用于文件操作。在C语言中,对普通数据文件的所有操作都必须依靠文件类型指针来完成。要想对文件进行操作,首先必须将想要操作的数据文件与文件指针建立联系,然后通过这些文件指针来操作相应的文件。

3、打开文件,是建立文件的各种有关信息,并使文件指针指向该文件,以便进行其它操作。

关闭文件则断开指针与文件之间的联系,也就禁止再对该文件进行操作。

4、C语言程序中,文件操作顺序为:打开-读/写-关闭。

5、

#include <>

#define NULL 0

main()

{

FILE *fp;

char ch;

int linenum,chnum,i=0,l=0;

fp=fopen("","r");

if(fp==NULL)

{

printf("File can't be opened.\n");

exit(1);

}

ch=fgetc(fp);

linenum=0;

chnum=0;

while(ch!=EOF)

{

while(ch!='\n')

{

chnum++;

ch=fgetc(fp);

}

linenum++;

if (i

{

i=chnum;

l=linenum;

chnum=0;

}

ch=fgetc(fp);

}

printf("\nthe longest line is the %d line,and there are %d characters.",l,i);

fclose(fp);

}

第11章

1、

#include <>

#include <>

#define NULL 0

typedef int ElemType;

typedef struct LNode{

ElemType data;

struct LNode *next;

}LNode,*LinkList;

LNode* create_LinkList(int n)/*创建链表*/ {

LNode *s,*head,*L;

ElemType x;

int k=0;

L=(LNode *)malloc(sizeof(LNode));

if(L==0)

{

printf("error!");

exit(1);

}

else

{

L->next=NULL;

}

head=L;

while(k

{

scanf("%d",&x);

s=(LNode *)malloc(sizeof(LNode));

if(s==0)

{

printf("error!");

exit(1);

}

s->data=x;

s->next=NULL;

L->next=s;

L=s;

k++;

}

return (head);

}

void print_LinkList(LinkList L)/*输出链表*/ {

LNode *h;

h=L;

while(h->next!=NULL)

{

printf(" %d ",h->next->data);

h=h->next;

}

}

int num_LinkList(LinkList L)

{

int i=0;

while(L->next!=0)

{

i++;

L=L->next;

}

return i;

}

LNode* Insert(LinkList L,ElemType x)

{

int k,i;

LNode *s,*z,*l;

s=L->next;

k=num_LinkList(L);

for(i=0;i

if(s->data

{l=s;

s=s->next;

}

else break;

z=(LNode *)malloc(sizeof(LNode));

if(z==0)

{

printf("error!");

exit(1);

}

z->data=x;

if(s==NULL) {l->next=z;z->next=NULL;}

else

if(i==0)

C语言程序设计第三版习题库答案

C 语言程序设计(第三版)习题库 1、设圆半径r=,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf 输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。 #include<> main(){ floatr,h,C1,Sa,Sb,Va,Vb; scanf(__”%f ”__,&r); scanf(”%d ”,__&h _);; C1=2**r; Sa=*r*r; Sb=4*Sa; Va=4**r*r*r/3; Vb=Sa*h; printf(___”Cl=%.2fSa=%.2fSb=%.2fVa=%.2fVb=%.2f ”,Cl,Sa,Sb,Va,Vb ); } 2、输入一个华氏温度,要求输出摄氏温度。公式为c=5(F-32)/9 输出要求有文字说明,取位2小数。 #include<> main(){ floatF,c; scanf("%f",&F); ____c=5*(F-32)/9______; printf("c=%.2f",c); } 3、有一函数:?? ???≥-<≤-<=10113101121x x x x x x y 写一程序,输入x 值,输出y 值。 #include<> main(){ intx,y; printf("输入x :"); scanf("%d",&x); if(x<1){/*x<1*/ y=x; printf("x=%3d,y=x=%d\n",x,y);

}elseif(____x<10_______){/*1≤x-10*/ _____y=2*x-1_______; printf("x=%3d,y=2*x-1=%d\n",x,y); }else{/*x≥10*/ y=3*x-11; printf("x=%3d,y=3*x-11=%d\n",x#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d\n",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }scanf("%d",&x);

C语言程序设计试题集与答案解析

一.填空 1. 每个C程序都必须有且仅有一个________ 函数。 2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3. 软件是程序,以及______、使用和维护所需要的所有文档。 4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6. C语言是由________组成的。 7. C语言的函数可分为主函数main、标准库函数和_________。 8. 一个函数是由两部分组成的,即:________和函数体。 9. 编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。 10. 程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作 的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对 象,也可以用标号和符号来代替地址、常量和变量。

13. 在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14. C程序的执行均是由执行_________开始。 15. 函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C 语句 组成的执行部分。 16. C语言程序中一条简单语句是以________字符作为结束符的。 17. C语言是结构化、________的程序设计语言。 18. 由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_______程序”,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。 19. 用高级语言编写的程序需翻译成计算机硬件所能识别的机器语言程序方可执行。所以 说,用高级语言进行程序设计,其编程效率高,方便易用,但_______没有低级语言高。 20.

C语言程序设计教程 教学大纲

附件一 C语言程序设计 教学大纲

C语言程序设计 一、本大纲适用专业、层次、总课时 1.适用专业:计算机类 2.层次:大专 3.总课时:64学时 二、课程性质和任务 《C语言程序设计》是计算机应用专业的专业必修课程,主要任务是介绍C语言中的数据类型,运算,语句结构及其程序设计的基本方法。目的是使学生掌握一门高级程序设计语言,学会利用C语言解决一般应用问题,并为后续的专业课程奠定程序设计基础。《C语言程序设计》是一门实践性很强的课程,必须通过上机操作才能掌握所学的知识,所以要特别强调讲授与上机操作相结合,要保证学生有充分的上机条件。 三、课程的基本要求与目标 根据市场对高职网络人才培养规格的需求特点,本课程的总目标是:“以学生为主体,以学生的学习为中心”,通过课程的实施,帮助学生学会学习。使学生的知识、情感、技能得到全面发展,既为今后的专业课程学习打下良好的知识与技能基础,又培养良好的态度,为其将来从事专业活动和未来的职业生涯打下基础。课程内容以“学其所用,用其所学”突出高职教育特点,确保人才培养目标的实现。课程目标如下: (1)知识目标:要求学生掌握基本的程序编写技能。学会利用常见的C程序开发工具的使用,掌握开发环境的配置,掌握常见菜单命令的使用以及整个窗口的布局设置。掌握结构化或模块化程序设计技能,学会数组、函数、三大控制结构、结构体和共用体以及指针的使用。为软件后期维护和管理提供必要的技术支持。 (2)能力目标: C语言程序设计的课程开设是从学生的角度出发,注重培养学生良好的动手实践习惯,注重培养学生严谨的行事风格,尤其注重挖掘学生的潜质,注重培养与社会接轨,培养学生具有踏实工作作风,良好的观察和思考能力强以及团队合作能力。 (3)情感目标:学生提高自己的独立思考和判断能力,通过这种方式能够对工作任务进行有效分析和寻求解决方案;加强自身的程序设计实践能力;培养从事软件研发的职业素养。在学习过程中使学生学会利用网络资源与他人进行交流与

C语言程序设计程序填空题库及答案

程序填空题 导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。 【】下面程序的功能是不用第三个变量,实现两个数的对调操作。#include <> main() { int a,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b); a= ①; b= ②; a= ③; printf("a=%d,b=%d\n",a,b); }

【】下面程序的功能是根据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2,求π值。 #include <> double pi(long n) { double s=; long i; for(i=1;i<=n;i++) s=s+ ①; return( ②); } 【】下面的程序的功能是求一维数组中的最小元素。 findmin(int *s,int t,int *k) { int p; for(p=0,*k=p;p

C语言程序设计试卷及答案

C语言程序设计试卷及 答案 IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】

C语言程序设计 一、单项选择题(共15小题,每题4分,共60分) 1、下列有关C语言的叙述中错误的是()。 A)C语句必须以分号结束B)任何一个C程序中有且只有一个主函数 C)复合语句在语法上可被看作一条语句D)C程序中对数据的任何操作都可由运算符实现 2、以下不能定义为用户标识符的是()。 A)MAINB)_HJC)2ongD)LINE1 3、以下能正确定义一维数组的是()。 A)inta[5]={0,1,2,3,4,5};B)inta[5]=”012345”; C)chara[]=”012345”;D)chara[5]={0,1,2,3,4,5}; 4、以下关于main()函数的说法,正确的是。 A)main()必须是程序的第一行B)main()可以有参数 C)一个程序可以有多个main()D)main()可以被用户自定义的函数调用 5、设charstr1[10]=“ABCDE”,str2[10]=“xyz”; 则执行语句printf(“%d”,strlen(strcpy(str1,str2)));后的输出结果是()。 A)9B)8C)5D)3 6、若用数组名作为函数调用的实参,则传递给形参的是()。 A)数组的首地址B)数组第一个元素的值C)数组中全部元素的值D)数组元素的个数 7、在C程序中,若未在函数定义时说明函数类型,则函数默认的类型为()。 A)void?B)double?C)int?D)char 8、下面不能正确进行字符串赋值操作的语句是()。

c语言程序设计第五版习题答案

习题解析与答案 第1章C语言概述 一.简答题 1.概述C语言的主要特点。 【解答】 (1)语言简洁、紧凑,使用方便、灵活。 (2)数据类型丰富,表达能力强。 (3)运算符多样。C语言中的运算符包含的范围非常广泛。 (4)具有结构化的控制语句。如if…else语句、while语句、do while语句、switch 语句、for语句。 (5)允许直接访问物理地址。C语言中含有的位和指针运算,能够直接对内存地址进行访问操作。 (6)所生成的目标代码质量高,可移植性好。 2.构成C语言程序的基本单位是什么?它由哪几部分组成? 【解答】函数是构成C语言程序的基本单位。一个完整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。 3.C语言程序的运行一般要经过哪几个步骤? 【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。 二.运行程序写结果 1.输入下面程序并运行。 main() { int a1,a2,x; a1=100; a2=50; x=a1-a2; printf(″x=%d\n″,x); } 【解答】运行结果为:x=50 2.输入下面程序并运行。 main() { int a1,a2,x; a1=10; a2=20; x=a1*a2; printf(″a1=%d,a2=%d\n″,a1,a2); printf(″x=%d\n″,x); } 【解答】运行结果为:a1=10,a2=20 x=200 3.输入下面程序并运行。

#include main() { printf("******\n"); printf(" *****\n"); printf(" ****\n"); printf(" ***\n"); printf(" **\n"); printf(" *\n"); } 【解答】运行结果为:****** ***** **** *** ** * 思考:可以修改程序,使之输出平行四边形,等腰三角形等图形。 三.编程题 1.参照本章例题,编写一个C程序,用于显示如下信息: ************************* I love C programs! ************************* 【分析与提示】 ①要有文件包含语句#include 。C语言中没有数据的输入、输出等功能,数据的输入、输出都是通过调用系统提供的库函数scanf和printf等来实现的。这些函数的说明都包括在stdio.h文件中。 ②main是主函数的名称。用{}括起来的内容是函数体,函数体由若干条语句组成,这是计算机要执行的部分,每条语句以分号“;”结束。 ③注意显示的信息有三行,所以要用到换行符“\n”。 参考代码: #include main() { printf("************************\n"); printf(" I love C programs! \n"); printf("************************\n"); }

C语言程序设计 复习题库

一、填空 1. break 语句通常用于switch // 循环中。 2. C 语言对数组下标的引用一般从0 开始。 3. C 语言中,一个函数一般由两个部分组成,它们是函数首部和函数体。 4. C 标准库函数中,字符串的处理函数包含在string.h 头文件中,数学函数包含在 math.h 头文件中。 5. C 程序的运行需要经过编译和链接两步进行。 6. C 程序中用/**/ 括起来的内容是程序的注释语句。 7. C 语言函数是由函数首部和函数体两部分组成。其中,函数首部包括函数类型、函数 名和函数参数。 8. C 语言提供的三种逻辑运算符是& ,// ,!。 9. C 语言源程序经过编译后,生成文件的后缀名是.c 。 10. C 语言源程序经过连接后,生成文件的后缀名是.exe 。 11. C 语言中,关系表达式和逻辑表达式的值是1//0 。 12. C 语言中的标识符只能由三种字符组成,他们是字母,数字,下划线。 13. C 语言中的每条基本语句以;作为结束符,每条复合语句以} 作为结束符。 14. C 语言中函数返回值的类型是由函数类型决定的。 15. C 源程序的基本单位是函数。 16. int a = 2, b = 3; 表达式 a > b ? a ++ : ++ b 的值为 4 。 17. int x=1,y=1,z=1; x+=y+=z; 则表达式xb>c 的值是0 。 19. 定义一个指针p,它指向一个有 6 个整型元素的一维数组,定义语句为int *p=a[6] ; 。 20. 定义一个指针数组p ,它有 4 个元素,每个指针指向一个整型数据,定义语句为int *p[4]; 。 21. 赋值语句是由= 加上一个分号构成。 22. 构成数组的各个元素必须具有相同的类型。 23. 关系表达式x+y>5 的相反表达式为x+y !>5 。 24. 函数strlen("1234\0xy") 的值为:9 。 25. 函数的形参在未被调用前不分配空间,函数形参的数据类型要和实参相同。 26. 函数体用{ 开始,用} 结束。 27. 结构化设计中的三种基本结构是顺序,选择,循环。

C语言程序设计期末考试试题(含答案)

C语言程序设计 期末考试试题及其答案 一、单项选择题(本大题共20题,每题2 分,共40分) 1、以下不是C语言的特点的是( ) A、C语言简洁、紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件进行操作 D、C语言移植性好 2、以下不正确的C语言标识符是( ) A、ABC B、abc C、a_bc D、ab.c 3、一个C语言程序是由( ) A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是( ) A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( ) A、int B、float C、double D、不确定 6、在C语言中,char型数据在内存中的存储形式是( ) A、补码 B、反码 C、源码 D、ASCII码 7、有如下程序,输入数据:12345M678<cR>后(表示回车),x的值是( ) 。 #include main(){ int x; float y; scanf("%3d%f",&x,&y); } A、12345 B、123 C、45 D、345 8、若有以下定义int a,b; float x,则正确的赋值语句是( ) A、a=1,b=2 B、b++; C、a=b=5 D、b=int(x); 9、以下程序的执行结果是( )

#include { int i=10,j=10; printf("%d,%d\n",++i,j--); } A、11,10 B、9,10 C、11,9 D、10,9 10、巳知字母A的ASCII码是65,以下程序的执行结果是( ) #include main() { char c1='A',c2='Y'; printf("%d,%d\n",c1,c2); A、A,Y B、65,65 C、65,90 D、65,89 11、下列运算符中优先级最高的是( ) A、< B、十 C、% D、!= 12、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0是( ) 。 A、’x’&&’y’ B、x<=y C、x||y+z&&y-z D、!((x<y)&&!z ||1) 13、判断char型变量cl是否为小写字母的正确表达式为( ) A、’a’<=c1<=f’z’ B、(c1>=a)&&(c1<=z) C、(‘a’>=c1) (‘z’<=c1) D、(c1>=’a’)&&(c1<=’z’) 14、字符串"a"在内存中占据的字节个数为( ) A、0 B、 1 C、 2 D、 3 15、下面有关for循环的正确描述是( ) A、for循环只能用于循环次数已经确定的情况 B、for循环是先执行循环体语句,后判定表达式 C、在for循环中,不能用break语句跳出循环体 D、for循环体语句中,可以包含多条语句,但要用花括号括起来 16、下面程序的运行结果是( ) #include main() {int num=0; while(num<=2) {num++; printf(“%d ,num); } } A、 1 B、 1 2 C、 1 2 3

(完整版)C语言程序设计练习及答案

《C语言程序设计》练习及答案 得分评卷人复查人 一、单选题,每小题1分,共60分(将正确答案的序号写在题目的括号中)。 1、结构化程序设计的三种基本控制结构是(D )。 A、主程序、子程序、函数 B、输入、处理、输出 C、调用,返回,转移 D、顺序、选择、循环 2、下列关于C程序变量的叙述, ( D )是错误的。 A、变量名必须由字母或下划线开头。 B、程序中的变量必须在被使用之前定义。 C、不同的基本类型的变量之间可以混合运算。 D、变量的数据类型决定变量的"作用域"。 3、能将C语言编写的源程序转换为目标程序的软件是(C )。 A、编辑程序 B、汇编程序 C、编译程序 D、解释程序 4、以下符号中,合法的用户标识符是( D )。 A、-p B、int C、3ab D、_xt_ 5、以下选项中,与m=n++完全等价的表达式是( C )。 A、m=++n B、m+=n+1 C、m=n, n=n+1 D、n=n+1,m=n 6、若有定义:int aa[8];。则以下表达式中不能代表数组元aa[1]的地址的是(C )。 A、&aa[0]+1 B、&aa[1] C、&aa[0]++ D、aa+1 7、表达式!5&(7+3)&&(4+5)的值是(A)。 A、0 B、1 C、5 D、9 8、以下选项中非法的C语言表达式是(A )。 A、x+1=x+1 B、0<=x<100 C、i=j==0 D、(char)(65+3) 9、在TURBO C中, int类型变量所占字节数是(B )。 A、1 B、2 C、4 D、8 10、C语言中基本的数据类型包括(B)。 A、整型,实型,逻辑型 B、整型,实型,字符型

C语言程序设计试题集及其答案

第一章基础知识 一.填空 1. 每个C程序都必须有且仅有一个________ 函数。 2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3. 软件是程序,以及______、使用和维护所需要的所有文档。 4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6. C语言是由________组成的。 7. C语言的函数可分为主函数main、标准库函数和_________。 8. 一个函数是由两部分组成的,即:________和函数体。 9. 编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。 10. 程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作 的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对 象,也可以用标号和符号来代替地址、常量和变量。 13. 在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14. C程序的执行均是由执行_________开始。 15. 函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C 语句 组成的执行部分。 16. C语言程序中一条简单语句是以________字符作为结束符的。 17. C语言是结构化、________的程序设计语言。 18. 由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_______程序”,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。 19. 用高级语言编写的程序需翻译成计算机硬件所能识别的机器语言程序方可执行。所以 说,用高级语言进行程序设计,其编程效率高,方便易用,但_______没有低级语言高。

C语言程序设计课程设计报告

C语言程序设计课程设 计报告 内部编号:(YUUT-TBBY-MMUT-URRUY-UOOY-DBUYI-0128)

《C语言程序设计》课程设计报告 (2013— 2014学年第 3 学期) 题目: C语言课程设计 专业:软件工程 班级:软件工程技术2班 姓名学号: 1 林燕萍 指导教师:吴芸 成绩: 计算机科学与技术系 2014 年6月23日

目录 一、课程设计的目的与要求 (1) 二、方案实现与调试 (3) 2.1 掷骰子游戏 (5) 2.2 射击游戏 (7) 2.3 计算存款本息之和 (8) 2.4肇事逃逸 (10) 2.5 礼炮 (12) 2.6 汽车加油 (14) 2.7 大优惠 (16) 2.8 金币 (19) 三、课程设计分析与总结 (23) 附录程序清单 (25) 一、课程设计的目的与要求(含设计指标) C语言是一种编程灵活,特色鲜明的程序设计语言。C语言除了基知识,如概念,方法和语法规则之外更重要的是进行实训,以提高学习者的动手和编程能力,从应试课程转变为实践工具。这是学习语言的最终目的。结合多年来的教学经验,根据学生的学习情况,为配合教学过程,使“项目教学法”能在本质上促使学生有更大进步,特编写了该《C 语言程序设计任务书》,以在实训过程中给学生提供帮助。达到如下目的: 1.在课程结束之前,让学生进一步了解C程序设计语言的编程功能;

2.让学生扎实掌握C程序设计语言的相关知识; 3.通过一些有实际意义的程序设计,使学生体会到学以致用,并能将程序设计的知识与专业知识有效地结合,更全面系统地了解行业知识。 编写程序要求遵循如下基本要求: ①模块化程序设计 ②锯齿型书写格式 ③必须上机调试通过 二、方案实现与调试 2.1掷骰子游戏 2.1.1 题目内容的描述 1) 两人轮流掷骰子,每次掷两个,每人最多掷10次。 2) 将每人每次的分值累加计分 3) 当两个骰子点数都为6时,计8分;当两个点数相等且不为两个6时,计7分;当两个点数不一样时,计其中点数较小的骰子的点数。4) 结束条件:当双方都掷10次或经过5次后一方累计分数多出另一方的30%及以上。最后显示双方分数并判定优胜者。 2.1.2输入数据类型、格式和内容限制和输出数据的说明 数据类型:整型;内容限制:随机数的产生;输入数据结果:胜利的一方 2.1.3主要模块的算法描述

C语言程序设计第二版习题参考答案

C语言程序设计第二版 习题参考答案 Document serial number【LGGKGB-LGG98YT-LGGT8CB-LGUT-

C语言程序设计习题参考答案 习题 1 一、判断题 1.在计算机中,小数点和正负号都有专用部件来保存和表示。 2.二进制是由0和1两个数字组成的进制方式。 3.二进制数的逻辑运算是按位进行的,位与位之间没有进位和借位的关系。 4.在整数的二进制表示方法中,0的原码、反码都有两种形式。 5.有符号数有三种表示法:原码、反码和补码。 6.常用字符的ASCII码值从小到大的排列规律是:空格、阿拉伯数字、大写英文字母、小写英文字母。 解:1.F2.T 3.T 4.T 5.T 6.T 二、单选题 1.在计算机中,最适合进行数值加减运算的数值编码是。 A. 原码 B. 反码 C. 补码 D. 移码 2.已知英文小写字母m的ASCII码为十进制数109,则英文小写字母y的ASCII 码为十进制数。 A. 112 B. 120 C. 121 D. 122 3.关于ASCII码,在计算机中的表示方法准确地描述是。 A. 使用8位二进制数,最右边一位为1 B. 使用8位二进制数,最左边一位为1 C. 使用8位二进制数,最右边一位为0 D. 使用8位二进制数,最左边一位为0 4.设在机器字长4位,X=0111B,Y=1011B,则下列逻辑运算中,正确的是 ___________。 A. X∧Y=1000 B. X∨Y=1111 C. X⊕Y=0011 D. ˉY=1000 5.下列叙述中正确的是()。 A.高级语言就是机器语言 B.汇编语言程序、高级语言程序都是计算机程序,但只有机器语言程序才是计算机可以直接识别并执行的程序 C.C语言因为具有汇编语言的一些特性,所以是汇编语言的一种 D.C源程序经过编译、连接,若正确,执行后就能得到正确的运行结果6.用C语言编写的源程序经过编译后,若没有产生编译错误,则系统将()。 A.生成可执行文件B.生成目标文件 C.输出运行结果D.自动保存源文件 7.下列叙述中不正确的是()。 A.main函数在C程序中必须有且只有一个 B. C程序的执行从main函数开始,所以main函数必须放在程序最前面 C. 函数可以带参数,也可以不带参数。

C语言程序设计试题与答案D

绝密★启用前学院 学年第二学期期末考试 级专业()《 C语言程序设计》试卷D 一、单项选择题(本大题共15小题,每小题2分,共30分) 1、以下正确的C语言自定义标识符是() A._la B.2a_ C.do D.a.12 2、在C语言中,错误 ..的常数表示是() A.0L B.-0x6aL C.′6′D.1.234E3.5 3、设int a,x=2;执行语句a=x>0?3*x:(x=10);后,变量x的值是() A.1 B.2 C.6 D.10 4、设有以下程序段: int x=2,y=2,z=0,a; a=++x||++y&&z++; printf(″%d,%d,%d\n″,x,y,z); 执行后输出的结果是() A.2,2,0 B.3,3,1 C.3,2,0 D.3,2,1 5、逗号表达式a=2*6,a*3,a+5的值是() A.12 B.17 C.36 D.41 6、设int a[2][3]={{1},{2,3}};,则元素a[1][0]的值是() A.0 B.1 C.2 D.3 7、C语言中,错误 ..的int类型的常数是() A.1E5 B.0 C.037 D.0xaf 8、在C语言中,′a′和″a″存储所占用的字节数分别是() A.1,1 B.1,2 C.2,1 D.2,2 9、设int x;,则以下语句中错误 ..的输入是() A.scanf (″%d″,x); B.scanf (″%d″,&x); C.scanf (″%o″,&x); D.scanf (″%x″,&x); 10、在C语言中,运算符″=″和″==″的功能分别是() A.关系运算和赋值运算B.赋值运算和关系运算 C.都是关系运算D.都是赋值运算 11、设int x[]={1,2,3,4,5},*p=x;,则值为3的表达式是() A.p+=2, *p++ B.p+=2, *++p C.p+=2, p++ D.p+=2, ++*p 12、设for(i=0, j=10; (j>0)&&(i<4); i++, j--);,该语句的循环次数是() A.0 B.3 C.4 D.无限 13、设函数定义如下: float f1 (float a, float b) { return (a+b); } 若有float x=1.1, y=2.2;,则以下语句中正确的函数调用是() A.printf (″%f″, f1(x)); B.printf (″%f″,f1(&x, y)); C.printf (″%f″,f1(*x,*y)); D.printf (″%f″,f1(x, y)); 14、若有说明:int i,j=7,*p=&i;则与i=j;等价的语句是()。 A. i=*p; B. *p=*&j; C. i=&j ; D. i=**p; 15、设char str1[10]=″ABCDE″,str2[10]=″XYZ″;则执行语句: printf(″%d″,strlen(strcpy(str1,str2))); 后的输出是()。 A. 3 B. 5 C. 8 D. 9 二、填空题(本大题共10小题,每小题2分,共20分) 16、一个C语言程序的基本组成单位是___________________。 17、求字符串的有效长度的系统函数名是___________________。 18、设float a [4][5];,则数组a中第一维下标的最大值是___________________。 19、设int a; float b; char c; long d; double e; , 则表达式a/c-b+d-e值的类型是 ______________。 20、设int a=2;,则执行a+=a*=15;后,变量a的值是__________。 21、一个C语言程序的执行起点是__________。 22、设double y[4][5];,则数组y中元素的个数是__________。 23、设int x=7,y=3,则表达式x%y+x/y的值是__________。 24、一个short型变量所占内存的字节数是____________________。

C语言程序设计考试题库

一、判断题 1、所谓常量,就是在程序运行过程中其值可以改变的量。() 2、一个C程序可以由多个源程序文件构成,但其中只能有一个main()函数。() 3、在C语言中do-while 语句和for循环均是先执行循环体语句,再判断表达式。() 4、在函数调用中将变量的地址作为实参传递给对应形参时,实现的是单向的值传递。() 5、C语言中所有字符串都是以‘\0’结束的。() 6、do-while构成的循环语句中的循环体最少执行1次。() 7、数组名在C语言中表示的是数组的首地址。() 8、使用gets()函数输入字符串时可以在字符串中输入空格。() 9、算术运算符中‘/’的优先级高于‘%’。() 10、char a[5];该语句表明数组a中的第五个元素为a[5]。() 11、C语言源程序文件的扩展名均为.c。() 12、char a[5];数组a中有a[1]、a[2]、a[3]、a[4]、a[5]共5个元素。() 13、C语言程序区分大小写,字符常量必须定义为大写。() 14、若int i=10,j=2;则执行i*=j+8;后i的值为28。() 15、若int x=100,y=200;则语句printf("%d",(x,y));输出结果为100。() 16、c语言中的标识符只能由字母,数字和下划线三种字符组成。() 17、函数getchar()的作用是:输出一个字符。() 18、一个C语言程序总是从第一个函数开始执行。() 19、在c语言中,char型数据在内存中是以ASCII码形式存储的。() 20、在C语言中switch语句必须使用break语句。() 二、选择题 1、以下说法正确的是()。 A、C语言程序总是从第一个函数开始执行。 B、C语言程序中要调用的函数必须在main()函数中定义。 C、C语言程序总是从main()函数开始执行。

C语言程序设计试题集及答案

单项选择题 (002) 阅读程序题 (018) 程序填空题 (039) 编写程序题 (070) 一、单项选择题 导读:单项选择题要求从给出的四个备选答案中,选出一个最符合题意的答案。本类习题主要检查对C语言基本概念的掌握情况,读者可根据学习进度选做部分习题。在完成习题的过程中,不但要选出正确的答案,而且要清楚不正确的选项错在何处,以加深对概念的理解。对于掌握不准的问题,应该通过上机实验来检验。 【1.1】以下不正确的C语言标识符是____。 A) int B) a_1_2 C) ab1exe D) _x 【1.2】以下是正确的C语言标识符是____。 A) #define B) _123C) %d D) \n

【1.3】下列四组字符串中都可以用作C语言程序标识符的一组是。 ??? A) print B) i\am C) Pxq D) str_l ??? _3d one_half My->book Cpp ??? oodbs tart$it line# pow ??? aBc 3pai His.age while 【1.4】下面各选项组中,均是C语言关键字的组是。 A) auto,enum,include B) switch,typedef,continue C) signed,union,scanf D) if,struct,type 【1.5】下列不属于C语言关键字的是。 A) default B) register C) enum D) external 【1.6】C语言程序从main()函数开始执行,所以这个函数要写在____。 A) 程序文件的开始B) 程序文件的最后 C) 它所调用的函数的前面D) 程序文件的任何位置 【1.7】下列关于C语言的叙述错误的是____ A) 大写字母和小写字母的意义相同 B) 不同类型的变量可以在一个表达式中 C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型 D) 同一个运算符号在不同的场合可以有不同的含义 【1.8】在C语言中,错误的int类型的常数是。 A) 32768 (超过了范围) B) 0 C) 037 D) 0xAF 【1.9】执行语句printf("%x",-1);屏幕显示____。 A) -1 B) 1 C) –ffff D) ffff 【1.10】已知long i=32768;执行语句printf("%d",i);屏幕显示____。 A) -1 B) -32768C) 1 D) 32768 【1.11】已知long i=65539; 执行语句printf("%d",i);屏幕显示____。 A) 65539 B) -3 C) 3D) 程序不能执行 【1.12】在C语言中,整数-8在内存中的存储形式是。 A) 1111 1111 1111 1000B) 1000 0000 0000 1000 C) 0000 0000 0000 1000 D) 1111 1111 1111 0111 【1.13】C语言中字符型(char)数据在内存中的存储形式是____。

C语言程序设计课程作业

C语言程序设计课程作业_A 一、单选题 1. (4分)设有以下定义int k=7, x=12;,则能使值为3的表达式是() ? A. x%=(k%=5) ? B. x%=(k-k%5) ? C. x%=k ? D. (x%=k)-(k%=5) 答案D 解析C语言程序设计/数据类型与运算/整型算术表达式 2. (4分)以下程序的输出结果是? #include main() { int x=020,y=0x20,z=20; printf('%d,%d,%d ', x,y,z); } ? A. 20,20,20 ? B. 32,16,20 ? C. 16,32,20 ? D. 20,32,20 答案C 解析C语言程序设计/数据类型及运算 3. (4分)C语言中while和do while循环的主要区别是( ) ? A. do-while的循环至少无条件执行一次

? B. while循环控制条件比do-while的循环控制条件严格 ? C. do-while允许从外部转入到循环体内 ? D. do-while的循环体不能是复合语句 答案A 解析C语言程序设计/循环程序设计/while语句与do-while语句 4. (4分)执行语句scanf('%d,%d',&m,&n);使m和n的值分别为1和2,正确输入是( ) ? A. 1 ? B. 1 2 ? C. 1,2 ? D. 12,2 答案C 解析C语言程序设计/顺序程序设计/整型数据的格式输入 5. (4分)sizeof(float)是( ) ? A. 一个双精度型表达式 ? B. 一个整型表达式 ? C. 一种函数调用 ? D. 一个不合法的表达式 答案B 解析C语言程序设计/数据类型与运算/实型变量存储 6.

C语言程序设计习题答案

C 语言程序设计习题答案 习题一 C 语言程序设计概述 一、名词解释 (1)程序P1 (2)程序设计P1 (3)机器语言P1 (4)汇编程序P2 (5)高级语言P2 (6)编译程序P3 (7)解释程序P3 (8)算法P4 (9)结构化的程序设计P9 二、简述题 1. 设计程序时应遵循哪些基本原则?P4 答:正确性、可靠性、简明性、有效性、可维护性、可移植性。 2. 算法的要素是什么?算法具有哪些特点? 答:算法的要素是:操作与控制结构;算法的特点有:有穷性、确定性、有效性、有零个或多个输入、有一个或多个输出。 3. 算法的表示形式有哪几种? 答:算法的表示形式有:自然语言、传统流程图、伪代码、结构化的流程图(N_S 流程图,盒图)。 4. 有哪三种基本结构? 答:三种基本结构是:顺序结构、选择结构和循环结构。 5. 传统流程图与N-S 流程图最大的区别是什么? 答:N-S 流程图去掉了在传统流程图中常用的流程线,使得程序的结构显得更加清晰、简单。 三、用传统流程图、N-S 图分别表示求解以下问题的算法。 1. 有3个数a ,b ,c ,要求按由大到小的顺序把它们输出。 2. 依次将10个数输入,求出其中最大的数 和最小的数并输出。 3. 求1+2+3+…+100的值。

5. 求下列分段函数的值。 6. 求100~200之间的所有素数。 7. 求一元二次方程ax 2+bx+c=0的根。分别考虑d=b 2-4ac 大于0、等于0和小于0三种情况。 四、注释下面C 程序的各个组成部分。 main() /*主函数 */ { /*程序开始 */ int a,k,m; /*定义三个用来存放整数的变量 */ a=10; /*将整数10赋值给变量a */ k=2; /*将整数2赋值给变量k */ m=1; /*将整数1赋值给变量1 */ a=(k+m)*k/(k-m); /*先求出算术表达式的值,并将其赋值给变量a */ printf("%d\n",a); /*在屏幕上打印出变量a 的值 */ } /*程序结束 */ 习题二 数据类型、运算符与表达式 一、选择题 1~10:BCDCB DDBCA 11~20: ADDAA DBADC 21~28: DABAD CDD Y= 3X (X<1) 4X-1 (X=1) 5(X-1)+6 (1

C语言程序设计复习题

《C语言程序设计》复习题 一、判断题(本大题共60个小题) 1.C程序执行的入口是main()函数,所以main函数必须放在程序的开头。 2.定义一个函数包括数据说明部分和执行语句部分,两者可以交叉出现。 3.注释内容太多会影响程序的执行效率。 4.变量要“先定义,后使用”。 5.字符常量'a'与字符串常量"a"没有区别。 6.数学公式y=-6xz+5[2(a-5)+3]写成C语言表达式是y=-6*x*z+5*[2*(a-5)+3]。 7.数学公式y=|x|+ab-c写成C语言表达式是y=fabs(x)+a*b-c。 8.表达式5/2+5.0/2+7%6 的值为5.5。 9.设int b=7;float a=2.5,c=4.7;则表达式a+(int)(b/2*(int)(a+c)/2)%4 的值为:4.5。 10.设int a=12; 则表达式a/=a+a的值是0.5。 11.在C语言中,运算符!比&&的优先级高。 12.在C语言中,运算符的优先级最小的是逗号运算符。 13.scanf("%d,%d",&x,&y);的输入格式:3,4<回车>。 14.以下程序运行结果是:1,7,0 void main() { int x=1,y=1,z=10; if(z< 0) if(y> 0) x=3; else x=5; printf(" %d," ,x); if(z=y< 0) x=3; else if(y==0) x=5; else x=7; printf(" %d,%d" ,x,z); } 15.该程序运行结果是:BCother void main()

{ char x=‘B’; switch(x) { case ‘A’: printf(“A”); case ‘B’: printf(“B”); case ‘C’: printf(“C”); default: printf(“other”); } } 16.下面程序段运行时输出结果是a=2,b=8 void main() { int x=1,y=1,a=2,b=7; switch(x) { case 1: switch(y) { case 0: a++;break; case 1: b++;break; } case 2: a++;b++;break; case 3: a++;b++; } printf("a=%d,b=%d\n",a,b); } 17.下面程序,当输入为:"abc?" 时,执行结果是:abc void main() { char c; c=getchar(); while (c!='?' ) { putchar(c); c=getchar();} }

相关文档
最新文档