当前位置:文档之家› C语言习题1_10参考答案

C语言习题1_10参考答案

C语言习题1_10参考答案
C语言习题1_10参考答案

一、选择题

CCCBB

二、填空题

1、 1 、main() 、main()

2、源可执行(目标)

习题2参考答案

1: …\101?0x1e “ab\n”(2+3)e(4-2)

2: (1) 缺#include aver有精度的误差

(2) 缺#include 初始化有错

(2) 3, 0, 0, 0

5:

(1)0

(2)0

(3)9.500000

(4)90

(5)10

(6)10

(7)65

(8) 2

(9) 6.500000

(10)0

(11)20

(12)0

6:

(1) (3) (5) (6)

7: 求x的绝对值

8: max=(a>b)?(a>c?a:c) : (b>c?b:c)

9: (1)计算图2-6:h=((fabs(x)-2)* (fabs(x)-2)+ (fabs(y)-2)* (fabs(y)-2)<=1)?10:0;

(2)计算图2-7:h=(fabs(x)<=2&&fabs(y)<=2)?10:0

一、选择题CCDCDA

二、填空题

1、 1

2、 1

3、 2.500000

4、8

三、编程题

(1)

#include

void main()

{

float a=0.11,v0=0.0,v;

int t=50;

v=v0+a*t;

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

}

(2)

#include

#include

void main()

{

float a,b,c,s1,s;

printf("Please input a,b,c:");

scanf("%f,%f,%f",&a,&b,&c);

s1=(a+b+c)/2.0;

s=sqrt(s1*(s1-a)*(s1-b)*(s1-c));

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

} (3)

#include

void main()

{

char c;

printf("Please input a char:");

scanf("%c",&c);

c=c+32;

printf("%c\n",c);

}

(4)

#include

void main()

{

int a,b;

printf("Please input two numbers:");

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

printf("%d*%d=%d\n",a,b,a*b);

printf("%d/%d=%d\n",a,b,a/b);

printf("%d%%%d=%d\n",a,b,a%b); }

一、选择题

DCCAD AABDD

二、填空题

1、score/10 c prinft(…D?) prinft(…C?) prinft(…B?) prinft(…A?)

2、1, 2

3、(a+b)>c&&(b+c)>a&&(a+c)>b

三、编程题

(1)

#include

void main()

{

int a;

printf("Please input a numbers:");

scanf("%d",&a);

if(a%2==0&&a%4==0&&a%6==0)

printf("%d\n",a);

else

printf("%d is no a asked number!\n",a);

}

(2)

#include

void main()

{

int a;

printf("Please input a numbers:");

scanf("%d",&a);

switch(a)

{

case 97:printf("%c\n",a);break;

case 98:printf("%c\n",a);break;

case 67:printf("%c\n",a);break;

default :printf("ERROR\n");

}

}

(3)

#include

void main()

{

int a,b,c,d,t;

printf("Please input four numbers:");

scanf("%d,%d,%d,%d",&a,&b,&c,&d);

if(a

{t=a;a=b;b=t;}

if(a

{t=a;a=c;c=t;}

if(a

{t=a;a=d;d=t;}

if(b

{t=b;b=c;c=t;}

if(b

{t=b;b=d;d=t;}

if(c

{t=d;d=c;c=t;}

printf("%d,%d,%d,%d\n",a,b,c,d);

}

(4)

#include

void main()

{

int year;

printf("Please input a year:");

scanf("%d",&year);

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

printf("The year is a leap year.\n");

else

printf("The year is not a leap year. \n");

}

(5*)

#include

void main()

{

int a=13,b=17,i,j;

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

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

if(a*i+b*j==411)

printf("a=%d,b=%d\n",a*i,b*j);

}

一、选择题

ACCBD DADBC

二、程序填空

1、f = -f m

2、x<0

3、2

4、f=f1+f2 i%5==0 f2=f

三、编程题

1、

#include "stdio.h"

void main()

{

int a,b,n1,n2,r;

printf("input 2 numbers:\n");

scanf("%d,%d",&n1,&n2);

if(n1n1*/

{ r=n1; n1=n2; n2=r; }

a=n1; /*保存原始数据*/

b=n2;

while(b!=0) /*采用碾转除法*/

{

r=a%b;

a=b;

b=r;

}

printf("最小公倍数:%d\n",n1*n2/a); }

2、

#include "stdio.h"

void main()

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

for(n=2;n<=1000;n++)

{ sum=0;

for(i=1;i

if(n%i==0)

sum=sum+i;

if(sum==n)

{ printf("%d its factors:",n);

for(k=1;k

if(n%k==0)

printf("%d\t",k);

printf("\b\n");

}

}

}

3、

#include "stdio.h"

void main()

{

int x,y,n=1;

printf("Please input an integer:");

scanf("%d",&x);

y=x; /*保存x的值*/

while(y>10) /*计算x的位数*/

{

y=y/10;

n++;

}

printf("digit=%d\n",n);

do

{

printf("%d\t",x%10);

n--;

x=x/10;

}while(n>=1);

}

4、

#include "stdio.h"

void main()

{

int x,y,z;

for(x=1;x<33;x++)

for( y=1;y<50;y++)

for(z=2;z<100;z=z+2)

if((3*x+2*y+z/2==100)&&(x+y+z==100) )

{ printf("大马数量为%d,\t",x);

printf("中马数量为%d,\t:",y);

printf("小马数量为%d\n",z);

}

}

5、

方法一:

#include "stdio.h"

#include "math.h"

main()

{

int x,y,r,temp,result=0,count=0;

printf("enter x,r:\n");

scanf("%d,%d",&x,&r);

y=x;

do{

temp=y%r;

result=result+temp*pow(10,count++);

y=y/r;

}while(y);

if(r==16)printf("%d转成%d进制为%x:\n",x,r,x);

else

printf("十进制整数%d转换成%d进制数为%d:\n",x,r,result);

}

方法二:

#include

void dto2(int n,int r)

{

if(n>1)

dto2(n/r,r);

printf("%d",n%r);

}

void dto8(int n,int r)

{

if(n>7)

dto8(n/r,r);

printf("%d",n%r);

}

void dto16(int n,int r)

{

if(n>15)

dto16(n/r,r);

printf("%x",n%r);

}

void main()

{

int n,r;

printf("请输入整数和进制数n,r: ");

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

if(r==2)

dto2(n,r);

else if(r==8)

dto8(n,r);

else

dto16(n,r);

printf("\n");

}

第6章习题参考答案

一、选择题

BBAAC C BBBB AABCD B 说明第5小题要改为“说法正确”

二、填空题

1、2,5,1,2,3,-2

2、2468

3、12

4、9.000000

5、n=1 s

三、编程题

1、

#include

int f(int x)

{ int i, s=0;

for(i=1;i

if(x%i==0) s=s+i;

if(s==x) return 1;

else return 0;

}

void main()

{ int i, flag;

for(i=2;i<=1000;i++)

{ flag=f(i);

if(flag==1)

printf("i=%d\n", i); } }

2、

#include

#include

void f(int x)

{

double y;

int i;

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

{ y=sin(i*3.1415926/180);

printf("i=%d, y=%lf\n", i, y);

}

}

void main()

{

int i=360;

f(i);

}

3、#include

int f(int x)

{ int i;

for(i=2; i

if(x%i==0)

break;

if(i==x)return 1;

else return 0;

}

void main()

{ int x;

scanf("%d", &x);

if(f(x))

printf("%d是一个素数!\n", x);

else

printf("%d不是一个素数!\n", x); }

4、

#include

int f(int x)

{

int i;

for(i=2; i

if(x%i==0)

break;

if(i==x)return 1;

else return 0;

}

void main()

{

int x, c=0;

for(x=1000;x>=0;x--)

if(f(x))

{ printf("%d是一个素数!\n", x);

c++;

if(c==5)break;

}

}

5、

#include

int f1(int x, int y)

{

if(y==0)

return x;

else

return f1(y, x%y);

}

int f2(int x, int y)

{

int r;

r=f1(x, y);

return x*y/r;

}

void main()

{

int x, y, t;

printf("请输入两个正整数x, y: ");

scanf("%d, %d", &x, &y);

if(x

{ t=x; x=y; y=t;}

printf("两个正整数%d, %d的最大公约数是%d\n",x,y,f1(x, y));

printf("两个正整数%d, %d的最小公倍数是%d\n",x,y,f2(x, y));

}

6、

#include

void f(int x,int r)

{/*利用函数的递归调用*/

if(x)

{ f(x/r, r);

if(r<10)

printf("%d", x%r);

else

printf("%x", x%r);

}

}

void main() {

int x, r;

printf("请输入1个十进制正整数x: ");

scanf("%d", &x);

printf("请输入要转换的进制数r: ");

scanf("%d", &r);

printf("十进制正整数%d转换成%d进制后的数值为: ",x, r);

f(x, r);

printf("\n");

}

7、

#include

int f(int m, int n)

{

int s;

if(m==n)

s=n;

else

s=n+f(m,n+1);

return s;

}

void main()

{

int m, n, t, s=0;

printf("请输入两个正整数m, n: ");

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

if(m

{ t=m; m=n; n=t;}

s=f(m, n);

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

}

8、

#include

long f(int m)

{

long s=1;

if(m==1||m==0)

s=1;

else

s=m*f(m-1);

return s;

}

void main()

{

int m, n, t;

long cnm;

printf("请输入两个正整数m, n: ");

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

if(m

{ t=m; m=n; n=t;}

cnm=f(m)/f(n)/f(m-n);

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

}

9、

#include

int f(int m)

{

int i, j, s=0;

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

for(j=0;j<=20;j=j+2)

if( i + j ==20)

{

s++;

printf("走法%d: 单步走%d,双步走%d\n",s,i,j/2);

}

return s;

}

void main()

{

int count=0, m=20;

count=f(m);

printf("count=%d\n", count);

}

第7章习题参考答案

一、选择题

ABCCB DADDA ACCAC D

二、填空题

1、标识符

2、常量常量表达式

3、m-1 n-1

4、字符数组

5、数组名

6、s[j++]=s[i]

7、c2= = ?…

三、阅读程序,写出结果

1、1, 2, 3,

2、2, 3, 4,

3、f

4、-4 0 4 4

5、

1 0 0 0 0

0 1 0 0 0

0 0 1 0 0

0 0 0 1 0

0 0 0 0 1

四、编程题

1、

#include

void main()

{

int a[100],i,j,k=0;

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

a[i]=i+2;

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

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

if(a[i]%j==0)

a[i]=0;

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

if(a[i]!=0)

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

printf("\n");

}

2、

#include

void main()

{

int a[5]={8,6,5,4,1},i,t;

for(i=0;i<=5/2;i++)

{

t=a[i];a[i]=a[4-i];a[4-i]=t;} for(i=0;i<5;i++)

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

printf("\n");

}

3、

#include "stdio.h"

void main()

{ int a[11]={1,3,5,7,9,34,36,67,89,100}; int i,j,x;

scanf("%d",&x);

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

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

printf("\n");

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

if(x

for(j=10;j>=i;j--)

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

a[i]=x;

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

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

printf("\n");

}

4、

#include "stdio.h"

#define size 5

void main()

{

int a[size][size];

int i,j,s=0;

for(i=0;i

for(j=0;j

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

for(i=0;i

{

for(j=0;j

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

printf("\n");

}

for(i=0;i

s=s+a[i][i];

for(i=0;i

s=s+a[i][size-i-1];

s=s-a[size/2][size/2];

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

}

5、

#include "stdio.h"

#define n 4

#define m 3

void main()

{

int a[n][m],b[n];

int i,j,num=0;

for(i=0;i

for(j=0;j

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

for(i=0;i

{

printf("%d:",i+1);

for(j=0;j

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

printf("\n");

}

for(i=0;i

{

num=0;

for(j=1;j

if(a[j][i]>a[num][i])

num=j;

b[i]=num;

}

for(i=0;i

printf("The %dth lesson:the highest score:%d,Num:%d\n",i+1,a[b[i]][i],b[i]+1);

}

6、#include

void main()

{

int a[3][4],i,j,max,t,c;

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

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

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

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

{

max=a[i][0];t=0;

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

{

if(a[i][j]>max)

{

max=a[i][j];

t=j;

}

}

c=1;

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

if(max>a[i][t])

c=0;break;

}

if(c==0)printf("No");

if(c==1)printf("max=%d",max);

}

7、

#include "stdio.h"

#include "string.h"

void main()

{

int a=0,b=0,c=0,d=0,n;

char str[255];

gets(str);

n=0;

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

{

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

else if(str[n]==' ')b++;

else

if(str[n]>='0'&&str[n]<='9')c++;

else d++;

n++;

}

printf("English

letter:%d,Blank:%d,Digital letter:%d,the other letter:%d\n",a,b,c,d);

}

8、

#include "stdio.h"

int slen(char ss[])

{

int len=0;

while(ss[len]!='\0')

len++;

return len;

}

void main()

{

char s[255];

gets(s);

printf("The string lenght is:%d\n",slen(s)); }

9、

#include "stdio.h"

#include "string.h"

void fun(char ss[],char ch)

{

int i,j,len;

len=strlen(ss);

for(i=0;i

{

if(ss[i]==ch)

{

for(j=i;j

ss[j]=ss[j+1];

len--;

}

ss[len]='\0';

}

}

void main()

{

char s[255],ch;

gets(s);

scanf("%c",&ch);

printf("\n");

puts(s);

fun(s,ch);

puts(s);

}

10、

#include "stdio.h"

#include "string.h"

void fun(char ss1[],char ss2[]) {

int i,j=0,len;

len=strlen(ss1);

for(i=0;i

{

if(i%2==0)

{

ss2[j]=ss1[i];

j++;

}

i++;

}

ss2[j]='\0';

}

void main()

{

char s1[255],s2[255];

gets(s1);

puts(s1);

fun(s1,s2);

puts(s2);

}

第8章习题参考答案

一、选择题

CCCBD DDDBA

二、填空题

1、First: This is FUN!

Scond: FUN

2、全局性

3、#include

4、文件包含条件编译

第9章习题参考答案

一、选择题

DDDDD AADCB

二、填空题

1、指向二维数组的行指针变量函数名(该函数返回一个指针!)

2、(本题有错,请删除“请指出….定义中q是____。”)p=a;

3、7 1

4、指针变量

5、6 980

6、15 4 12

7、a teacher

8、原程序错误,需要修改其main()中的第1和第2条语句,如下:

char pp1[10]=”two”,pp2[10]=”three”,str[80]=”one”,*p1,*p2;

p1=pp1;p2=pp2;

之后的运行结果为:onworee

9、6,6

三、编程题

1、

#include "stdio.h"

void main()

{

int a[5]={2,4,6,8,10},*p,i,mul=1;

p=a;

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

mul=mul*(*p++);

printf("%d\n",mul);

}

2、

#include "stdio.h"

void fun(int *p,int n)

{

int t,i,j;

for(i=0;i

{

for(j=i+1;j

if(p[i]>p[j])

{

t=p[i];

p[i]=p[j];

p[j]=t;

}

}

}

void main()

{

int a[10],*pa=a,i;

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

scanf("%d",pa++);

pa=a;

fun(pa,10);

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

printf("%4d",*pa++);

}

3、

#include "stdio.h"

void fun(int *p,int n)

{

int t,i,max=p[0],min=p[0],m1=0,n1=0;

for(i=1;i

{

if(p[i]>max)

{

max=p[i];

m1=i;

}

if(p[i]

{

min=p[i];

n1=i;

}

}

t=p[m1];p[m1]=p[n1];p[n1]=t;

}

void main()

{

int a[10],*pa=a,i;

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

scanf("%d",pa++);

pa=a;

fun(pa,10);

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

printf("%4d",*pa++);

}

4、

#include "stdio.h"

#include "string.h"

void fun(char *p1)

{

char t;

int i,len=strlen(p1);

for(i=0;i

{

t=p1[i];p1[i]=p1[len-i-1];p1[len-i-1]=t;

}

}

void main()

{

char c[30],*p=c;

gets(p);

fun(p);

puts(p);

}

5、

#include "stdio.h"

#include "string.h"

void main()

{

int w=1,n;

char str[255];

gets(str);

n=0;

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

{

if(str[n]==' '&&str[n+1]!=' ')w++;

n++;

}

printf("The words is :%d\n",w);

}

6、

#include "string.h"

void fun(char *ss1,char *ss2,int w)

{

char p[80],q[80];

int i;

for(i=0;i

p[i]=ss1[i];

p[i]='\0';

for(i=w;i

q[i-w]=ss1[i];

q[i-w]='\0';

strcat(p,ss2);

strcat(p,q);

strcpy(ss1,p);

}

void main()

{

int w;

char s1[255],s2[80];

printf("Please input a first string:");

gets(s1);

printf("Please input a second string:");

gets(s2);

printf("Please insert position:");

scanf("%d",&w);

fun(s1,s2,w);

printf("%s\n",s1);

}

7、

#include "stdio.h"

int fun1(int (*s)[3],int a,int b)

{

int i,j,s1=0;

for(i=0;i

for(j=0;j

if(j>i)s1=s1+*(*(s+i)+j);

return s1;

}

int fun2(int (*s)[3],int a,int b)

{

int i,j,s2=0;

for(i=0;i

for(j=0;j

if(j

return s2;

}

void main()

{

int a[3][3],i,j,sum1=0,sum2=0;

printf("Please input a 3*3 array:");

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

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

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

sum1=fun1(a,3,3);

sum2=fun2(a,3,3);

printf("sum1=%d\n",sum1);

printf("sum2=%d\n",sum2);

} 8、

#include "stdio.h"

void fun(char *s,int a)

{

int i,j;

char temp;

for(i=1;i

for(j=i+1;j

if(s[i]>s[j])

{

temp=s[i];

s[i]=s[j];

s[j]=temp;

}

}

void main()

{

char a[8];

printf("Please input a string:");

gets(a);

fun(a,7);

printf("%s\n",a);

}

第10章习题参考答案

一、选择题

BDDBD BABCA AAAAC

二、填空题

1、&p.ID

2、p=p->next;

3、52

4、4,3

5、原数(不变)

三、读程序写结果

1、1001,ChangRong,1098.0

2、269

3、12345678 ffffffcc

4、51

60

11

5、a, d

abc, def

ghi, mno

hi, no

四、编程题

1、

#include

#include

struct tem

{

char name[20];

int no;

char sex;

char tname[20];

}t[30];

void input(struct tem *p,int n)

{

int i;

for(i=0;i

{

printf("\nno: ");

scanf("%d",&p->no);

getchar(); /*吸收回车键*/

printf("\nname:");

gets(p->name);

printf("\nsex: ");

scanf("%c",&p->sex);

getchar(); /*吸收回车键*/

printf("\ntems:");

gets(p->tname);

p++;

}

}

void print(struct tem *p,int n)

{

int i;

for(i=0;i

{

printf("%6d",p->no);

printf("%20s",p->name);

printf("%4c",p->sex);

printf("%20s\n",p->tname);

p++;

}

}

void main()

{

int n;

printf("Please input a integer (1~30):");

scanf("%d",&n);

input(t,n);

print(t,n);

}

2、

#include

#include

struct book

{

char name[20];

int price;

}b[10];

void input(struct book *p,int n)

{

int i;

for(i=0;i

{

printf("\nbook name:");

gets(p->name);

printf(" price : ");

scanf("%d",&p->price);

getchar(); /*吸收回车键*/

p++;

}

}

void sort(struct book *p,int n)

{

int i,j,t;

char nn[20];

for(i=0;i

for(j=i+1;j

if(p[i].price>p[j].price)

{

t=p[i].price;

p[i].price=p[j].price;

p[j].price=t;

strcpy(nn,p[i].name);

strcpy(p[i].name,p[j].name);

strcpy(p[j].name,nn);

}

}

void print(struct book *p,int n)

{

int i;

for(i=0;i

{

printf("%20s",p->name);

printf("%8d\n",p->price);

p++;

}

}

void main()

{

input(b,10);

sort(b,10);

print(b,10);

}

3、

#include

#include

struct student

{

char name[20];

int s[6];

double aver;

}stu[40]; void input(struct student *p,int n)

{

int i;

for(i=0;i

{

printf("\nname:");

gets(p->name);

printf(" score1 : ");

scanf("%d",&p->s[0]);

printf(" score2 : ");

scanf("%d",&p->s[1]);

printf(" score3 : ");

scanf("%d",&p->s[2]);

printf(" score4 : ");

scanf("%d",&p->s[3]);

printf(" score5 : ");

scanf("%d",&p->s[4]);

printf(" score6 : ");

scanf("%d",&p->s[5]);

p->aver=1.0*(p->s[1]+p->s[2]+p->s[3]+p ->s[4]+p->s[5]+p->s[0])/6.0;

getchar();

p++;

}

}

void sort(struct student *p,int n)

{

int i,j,t;

char nn[20];

for(i=0;i

for(j=i+1;j

if(p[i].aver>p[j].aver)

{

t=p[i].aver;p[i].aver=p[j].aver;p[j].aver=t;

t=p[i].s[0];p[i].s[0]=p[j].s[0];p[j].s[0]=t;

t=p[i].s[1];p[i].s[1]=p[j].s[1];p[j].s[1]=t;

t=p[i].s[2];p[i].s[2]=p[j].s[2];p[j].s[2]=t;

t=p[i].s[3];p[i].s[3]=p[j].s[3];p[j].s[3]=t;

t=p[i].s[4];p[i].s[4]=p[j].s[4];p[j].s[4]=t;

t=p[i].s[5];p[i].s[5]=p[j].s[5];p[j].s[5]=t;

strcpy(nn,p[i].name);

strcpy(p[i].name,p[j].name);

strcpy(p[j].name,nn);

}

}

void print(struct student *p,int n)

{

int i;

for(i=0;i

{

printf("%20s",p->name);

printf("%8d%8d%8d%8d%8d%8d",p->s[ 0],p->s[1],p->s[2],p->s[3],p->s[4],p->s[5]);

printf("%6.2f\n",p->aver);

p++;

}

}

void main()

{

input(stu,10);

sort(stu,10);

print(stu,10);

}

C语言题库及答案

C语言题库及答案

姓名成绩 温馨提示:同学们,经过培训学习,你一定积累了很多知识,现在请认真、仔细地完成这张试题吧。加油! 一单项选择题 1. 在C语言中,以 D 作为字符串结束标志 A)’\n’ B)’’ C) ’0’ D)’\0’ 2.下列数据中属于“字符串常量”的是( A )。 A.“a” B.{ABC} C.‘abc\0’ D.‘a’ 若干个字符构成字符串 在C语言中,用单引号标识字符;用双引号标识字符串 选项B,C,分别用{}和’’标识字符串 选项D,标识字符。 3、以下说法中正确的是( C )。 A、C语言程序总是从第一个定义的函数开始执行

B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是( B )。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C )。 A.-a1 B.a[i] C.a2_i D.int t 6.下列C语言用户标识符中合法的是( B )。 A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是( C )。 A) %x B) a+b C) a123 D) 123 8、下列四组字符串中都可以用作C语言程序中的标识符的是( A )。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 9.C语言中的简单数据类型包括(D )。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是 C 。

C语言 数组 实验题目及答案

实验六数组程序设计 【实验目的】 1、掌握使用一维数组编程方法 2、掌握使用二维数组进行程序设计 【实验内容】 一、上机验证程序,并分析结果 要求:读懂程序,写出分析结果;上机运行程序,得到运行结果,比较之。1、#include int main() { int a[ ]={1,2,3,4,5} , i, j, s=0 ; j = 1; for ( i = 4 ; i>=0 ; i--) { s = s+ a[i] * j ; j = j * 10 ; } printf(" s= %d \n" , s ); return 0; } 二、程序改错题 1.下面程序的功能,是从键盘输入一个数组(数组长度为10),查找数组中正数的个数。源代码如下,程序中存在错误,请将其改正。 #include int main()

{ int a(10);/*定义数组*/ int count,i;/* i循环变量 count 正数个数*/ for(i=0;i<=10;i++) {/*循环输入*/ scanf("%d",a[i]); } count=1; for(i=0;i<=10;i++) {/*查找正数*/ if(a(i)>0) count++; } printf("数组中正数有:%d个\n",count); return 0; } 三编写程序 1.编写程序要求输入30个学生的单科成绩,输出高于平均分的成绩。#include #define N 30 int main() { float score[N],sum=0,aver; int i; for(i=0;i<30;i++) { scanf("%f",&score[i]); sum=sum+score[i]; } aver=sum/30; printf("平均分为:%.2f\n",aver); for(i=0;iaver) printf("%.2f ",score[i]); printf("\n");

C语言课后习题答案(最终)

第0章习题 1. 将下列十进制数分别转化为二进制数、八进制数和十六进制数: (1)128 (2)511 (3)1024 (4)65535 (5)1048575 答: (1)10000000、200、80 (2)111111111、777、1FF (3)10000000000、2000、400 (4)1111111111111111、177777、FFFF (5)11111111111111111111、3777777、FFFFF 2. 将下列二进制数转化为十进制数和十六进制数: (1)1100110101B (2)101101.1011B 答: (1)821、335 (2)45.6875、2D.B 3. 写出下列数的原码、反码、补码:15、-20、-27/32 答: (1)00001111、00000000、00001111 (2)10010100、11101011、11101100 (3)1.1101100、1.0010011、1.0010100 4. 16位无符号定点整数的数值表示范围为多少?8位补码的表示范围是多少?16位补码的表示范围是多少? 答: 0~65535、-128~127、-32768~32767 5.1968年Dijkstra提出结构化程序设计的思想的原因是什么?简要回答结构化程序设计的经典定义。 答: 结构化程序设计概念的提出主要是源于程序结构的层次性与模块化使得构造出来的软件具有良好的可理解性和可维护性,随着软件规模的扩大与复杂性的提高,程序的可维护性成为程序设计者们关注的重要问题之一。 如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。 6.C程序在内存中存储在哪儿?计算机的内存空间是如何分区的?分区存放不同类型的数据的目的是什么? 答:

c语言实验答案

c语言实验答案

//1.1编写一程序,在屏幕上输出如下内容:// X | X | X //---+---+--- // | | //---+---+--- // 0 | 0 | 0 #include void main() { printf(" X | X | X\n"); //注意转义字符\n的用法 printf("---+---+---\n "); printf(" | |\n"); printf("---+---+---\n "); printf(" 0 | 0 | 0\n"); } //1.2输出"Hello world!"语句 #include void main() { printf("Hello world!\n"); } //2.1编写一程序,接受用户输入的两个整数,并计算它们的和、差、积、商,程序运行结果应如下所示。 //注意,尖括号部分表示用户输入数据或要被替换的输出内容,尖括号本身并不需要输入或输出。 //多使用几组整数尝试一下,你发现了什么?//The program gets two integers,and

computes their sum,difference,produc t and quotient. //The first number:<第一个整数在此输入> //The second number:<第二个整数在此输入> //Results as follows: //<第一个整数>+<第二个整数>=<和> //<第一个整数>-<第二个整数>=<差> //<第一个整数>*<第二个整数>=<积> //<第一个整数>/<第二个整数>=<商> #include void main() { int a,b; printf("The program gets two integers,and computes their sum,difference,produc t and quotient.\n"); printf("The first number:"); scanf("%d",&a); printf("The second number"); scanf("%d",&b); printf("Results as follows:\n"); printf("%d+%d=% d\n",a,b,a+b); printf("%d-%d=% d\n",a,b,a-b); printf("%d*%d=% d\n",a,b,a*b); printf("%d+%d=% f\n",a,b,1.0*a/b); //做除法时要注意,除得的

大学c语言考试题库含答案

================================================== 题号:1482 执行以下程序段后,输出结果和a的值是()。int a=10; printf("%d",a++); A、11 和10 B、11 和11 C、10 和11 D、10 和10 答案: C 题号:2100 已知字符'A'的ASCⅡ代码值是65,字符变量c1的值是'A',c2的值是'D'.执行语句printf("%d,%d",c1,c2-2);后,输出结果是 A、65,66 B、A,B C、65,68 D、A,68 答案: A 题号:5055 相同结构体类型的变量之间,可以()。 A、比较大小 B、地址相同 C、赋值 D、相加 答案: C 题号:3217 int a[10];合法的数组元素的最小下标值为()。 A、1 B、0 C、10 D、9 答案: B

能正确表示逻辑关系:" a≥10或a≤0 "的C语言表达式是 A、a>=0 | a<=10 B、a>=10 or a<=0 C、a>=10 && a<=0 D、a>=10 || a<=0 答案: D 题号:157 main() {int x=1,a=0,b=0; switch (x) { case 0: b++; case 1: a++; case 2: a++;b++;} printf("a=%d,b=%d",a,b); }该程序的输出结果是( ) A、2,2 B、2,1 C、1,1 D、1,0 答案: B 题号:4784 设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的 数据类型为()。 A、不确定 B、double C、int D、float 答案: B 题号:1647 以下程序中,while循环的循环次数是______ main() { int i=0;

C语言程序设计实验与习题答案

2.程序填空 (1)以下程序的功能是计算1~50之间能被7整除的整数之和。 #include void main() {int i,sum=0; for(i=1;50;i++) if(i%7==0) sum+=i; printf("sum=%d\n",sum); } (2) 下面程序接收来自键盘的输入,直到输入+Z(值为-1)键为止。这些字符被原样输出,但若有连续一个以上的空格时只输出一个空格。请填空。 #include void main() {char cx; char front=’’; while ((cx=getchar())!=’\n’) {if (cx!=’’) putchar(cx); if (cx= =’’) if (front!=’’) putchar(cx);

front=cx; } } 3.程序改错 (1)下列程序的功能是求1+3+5+…99的和。 #include void main( ) { int s,i; ★//int s=0,i; i=1; while(i<=99)s=s+i;★//{s=s+i;i++;} printf("1+3+5+…99的和是:%d\n",s); } (2)下面程序的功能是输入一个正整数,判断是否是素数,若为素数输出1,否则输出0。 #include void main() { int i,x,y=0; ★//y=1 scanf("%d",&x); for(i=2;i<=x/2&&y;i++)

if ((x%i)!=0) y=0; ★//x%i==0 printf("%d\n",y); } 4.设计性实验 (1)题 /* 方法(1)精度控制*/ #include #include main() {int s; float n,t,pi; t=1;pi=0;n=1.0;s=1; while((fabs(t))>=1e-6) {pi=pi+t; n=n+2; s=-s; t=s/n; }

C语言实验报告参考答案

《C语言程序设计》 实 验 手 册

《C语言程序设计》实验课程简介 课程名称:C语言程序设计实验 课程性质:专业必修课 课程属性:专业必修课 学时学分:学时32 学分1 开课实验室:软件实验室 面向专业:网络工程、软件工程、计算机科学与技术 一、课程的任务和基本要求 C语言程序设计实验是面向计算机相关专业学生开设的《C语言程序设计》实验课,是配合《C语言程序设计》课程而开设的实验性教育环节。本课程的主要任务是让学生充分掌握C 语言程序设计的基本概念、各种数据类型的使用技巧、模块化程序设计的方法等。C语言程序设计实验对课程中所涉及的知识进行验证,同时也是学生很好地学习课程的辅助手段。通过C语言上机实验的教学活动,使学生真正全面掌握C语言的基础知识,培养和提高学生的程序开发能力。 二、实验项目 【实验一】最简单的C程序---顺序程序设计 【实验二】逻辑运算和判断选取控制 【实验三】循环结构程序设计(一) 【实验四】循环结构程序设计(二) 【实验五】函数 【实验六】数组(一) 【实验七】数组(二) 【实验八】指针 【实验九】结构体、共用体和文件 【实验十】C程序综合性实验 三、有关说明 1、与其它课程和教学环节的联系: 先修课程:计算机文化 后续课程:面向对象程序设计、Java程序设计、数据结构、软件工程 2、教材和主要参考书目: (1)教材: 《C程序设计习题解答与上机指导》,谭浩强吴伟民著,北京:清华大学出版社,2003年。(2)主要参考书目: 《C语言程序设计》谭浩强主编,清华大学出版社,2003年。

三、实验内容 实验一最简单的C程序---顺序程序设计 (验证性实验 2学时) (一)、实验目的 1.熟悉win-tc程序运行环境 2.掌握运行一个C程序的步骤,理解并学会C程序的编辑、编译、链接方法 3.掌握C语言中使用最多的一种语句——赋值语句 4.掌握数据的输入输出方法,能正确使用各种格式控制符 (二)、实验内容 1.写出下列程序的运行结果 (1)#include void main() { printf(“*****************\n”); printf(“This is a c program. \n”); printf(“****************\n”); } 运行结果及分析:运行结果为: Printf函数语句表示输出引号内的字符串,最后的\n表示换行, 将程序中的\n去掉后,运行结果及分析:运行结果为: 去掉\n后不换行连续显示 (2)#include void main() { int a=100,b=20,sum,sb; sum=a+b; sb=a/b; printf("sum=%d,sb=%d",sum,sb); } 运行结果及分析: sum=100+20=120;sb=100/20=5. (3)#include void main( )

C语言程序设计_上机实验指导与习题_第三版_(陈湘骥_编著_著)_华南农业大学_参考答案

C语言程序设计上机实验指导与习题 参考答案 (仅供教师内部参考) 华南农业大学

目录 上机实验 (1) 实验 1 C语言程序初步 (1) 一、实验目的 (1) 二、实验内容 (1) 实验2基本数据类型、运算和表达式 (3) 一、实验目的 (3) 二、实验内容 (3) 实验3基本输入与输出 (5) 一、实验目的 (5) 二、实验内容 (5) 实验4选择结构程序设计 (4) 一、实验目的 (4) 二、实验内容 (4) 实验5循环结构程序设计(一) (9) 一、实验目的 (9) 二、实验内容 (9) 实验6循环结构程序设计(二) (15) 一、实验目的 (15) 二、实验内容 (15) 实验7数组 (17) 一、实验目的 (17) 二、实验内容 (17) 实验8字符数组的应用 (22) 一、实验目的 (22) 二、实验内容 (22) 实验9函数的基本应用 (24) 一、实验目的 (24) 二、实验内容 (24) 实验10指针与结构体 (26) 一、实验目的 (26) 二、实验内容 (26) *实验11链表 (29) 一、实验目的 (29) 二、实验内容 (29) *实验12文件 (32) 一、实验目的 (32) 二、实验内容 (32)

上机实验 实验 1 C语言程序初步 一、实验目的 (1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。 (2)了解在该系统上如何编辑、编译、连接和运行一个C程序。 (3)通过运行简单的C程序,初步了解C程序的特点。 (4)在教师的指导下,学会使用JudgeOnline实验系统。 二、实验内容 1. 运行第一个 C 程序 [题目:The first C Program] 将下列程序输入 TC(或 VC++),编译、连接和运行该程序。 void main() { printf("The first C Program\n"); } [具体操作步骤] 以 Turbo C 上的操作为例 (1)Windows 进入后,按照第一章中介绍的方法,进入 Turbo C。 (2)在编辑窗口中输入程序。 (3)保存程序,取名为 a1.c。 (4)按照第一章中介绍的方法,编译、连接和运行程序。 2.在JudgeOnline系统中提交实现了计算a+b功能的程序 [题目 1001:计算 a+b] 由键盘输入两个整数,计算并输出两个整数的和。实现该功能的程序如下, void main() { int a, b; scanf("%d%d", &a, &b); 1

C语言习题及参考答案

C语言习题集 习题一 一.填空题 1.C程序是由(函数)构成的,一个C程序中至少包含(main函数)。因此,( 函数) 是C程序的基本单位。 2.C程序注释是由( /*) 和( */ ) 所界定的文字信息组成的。3.函数体一般包括( 变量声明) 和( 语句) 。 二.判断题 1.一个C程序的执行总是从该程序的main函数开始,在main函数最后结束。【错】 2.main函数必须写在一个C程序的最前面。【错】 3.一个C程序可以包含若干的函数。【对】 4.C程序的注释部分可以出现在程序的任何位置,它对程序的编译和运行不起任何作用。但是可以增加程序的可读性。【对】 5.C程序的注释只能是一行。【错】 6.C程序的注释不能是中文文字信息。【错】 8.可以使用Visual C++ 6.来编译和连接一个C程序。【对】 9.可以使用Visual C++ 6.来运行一个C程序。【对】 10.可以使用Visual C++ 6.来实时调试(即动态调试)一个C程序。【对】三.简答题 1.写出一个C程序的基本结构。 2.简要叙述使用Visual C++ 6.0编译和运行一个程序的步骤。 四.编程题 1.提高题:参照课本例1.1,试编写一个C程序,输出如下信息。(提示:使用键盘上的一些符号)。 2.提高题:试编写一个C程序,输出如下信息。 ********************** *** @ @ *** *** @ *** ********************** 试试看,可以输出其他组合图案吗?

习题二 一.选择题 1、合法的字符常量是(ACD)。 A)…\t?B) “A” C)…a?D)?\x32? 2、合法的字符常量是( D) 。 A)…\084?B) …\84? C)…ab?D)?\x43? 3、(B)是C语言提供的合法的数据类型关键字。 A)Float B)signed C)integer D)Char 4、在以下各组标识符中,合法的标识符是((4))。 (1)A)B01 B)table_1 C)0_t D)k% (2)A)Fast_ B)void C)pbl D) (3)A)xy_ B)longdouble C)*p D)CHAR ( 4 ) A) sj B) Int C)_xy D)w_y23 5、属于合法的C语言长整型常量的是(BD)。 A)5876273 B)0L C)2E10 D)(long)5876273 6、下面选项中,不是合法整型常量的是(B )。 A)160 B)-0xcdg C)-01 D)-0x48a 7、判断int x = 0xaffbc;x的结果是(D)。 A)赋值非法B)溢出C)为affb D)为affbc 8、下面选项中,均是合法浮点数的是(B)。 A)+1e+1 B)-.60 C)123e D)-e3 A)5e-9.4 B)12e-4 C)1.2e-.4 D).8e-4 A)03e2 B)-8e5 C)+2e-1 D)5.e-0 9、在C语言中,要求参加运算的数必须时整数的运算符是(C)。 A)/ B)* C)% D) = 10、在C语言中,字符型数据在内存中以(D)形式存放。 A)原码B)BCD码C)反码D)ASCII码 11、下列语句中,符合语法的赋值语句是(C)。 A)a=7+b+c=a+7;B)a=7+b++=a+7; C)a=(7+b,b++,a+7);D)a=7+b,c=a+7; 12、是非法的C语言转义字符(B )。 A)…\b?B)…\0xf? C)…\037? D)… \?? 13、对于语句:f=(3.0,4.0,5.0),(2.0,1.0,0.0);的判断中,( B )是正确的。A)语法错误B)f为5.0 C)f为0.0 D)f为2.0 14、与代数式(x*y)/(u*v) 不等价的C语言表达式是(A )。 A)x*y/u*v B)x*y/u/v C)x*y/(u*v) D)x/(u*v)*y 15、在C语言中,数字029是一个(D)。

C语言实验报告参考答案原

C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述 四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include<> main() { printf("The dress is long\n"); printf("The shoes are big\n"); printf("The trousers are black\n"); } 2.编写程序: (1) a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。 (2)a=160,b=46,c=18,d=170, 编写求(a+b)/(b-c)*(c-d)的程序。 答案: (1) #include<> main() {

int a,b,c,x,y; a=150; b=20; c=45; x=a/b; y=a/c; printf("a/b的商=%d\n",x); printf("a/c的商=%d\n",y); x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y); } (2) #include<> main() { int a,b,c,d; float x; a=160; b=46; c=18;

d=170; x=(a+b)/(b-c)*(c-d); printf("(a+b)/(b-c)*(c-d)=%f\n",x); } 3. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b 时,将0赋给c。(提示:用条件运算符) 答案: #include<> main() { int a,b,c; a=0; b=-10; c= (a>b) b:a; printf("c = %d\n",c); } 五、调试和测试结果 1.编译、连接无错,运行后屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 2、(1) 编译、连接无错,运行后屏幕上显示以下结果: a/b的商=7

C语言程序设计实验与习题答案

2. 程序填空 (1) 以下程序的功能是计算1?50之间能被7整除的整数之和。 #in clude<> void mai n() {int i,sum= _____ 0______ ; for(i=1; 50 ______ ;i++) if( i%7==0 ) sum+=i; pri ntf("sum=%d\n",sum); } (2) 下面程序接收来自键盘的输入,直到输入+Z值直为-1) 键为止。这些字符被原样输出,但若有连续一个以上的空格时只输出一个空格。请填空。 #in clude <> void mai n() {char cx; char front=' '; while ((cx=getchar())!=' \n' ) {if (cx!=‘') putchar(cx); if (cx=—') if (front!='') putchar(cx); front=cx; } } 3. 程序改错 (1)下列程序的功能是求1+3+5+…99的和。

#in clude <> void main( ) { int s,i; ★ 10.6f10.6f10.6f10.6f 代表个数*/ for(i=1;i<=9;i++) for(j=0;j<=9;j++) for(k=0;k<=9;k++) if(i*i*i+j*j*j+k*k*k==1099) /* 在所有组合中找出满足指定条件的*/ { printf("%4d",100*i+10*j+k); n++; if(n%5==0) printf("\n"); /* 表示每行输出5 个数*/ } } #include<> #include<> main() { int i,j,k; for(i=1;i<=4;i++) /* 上三角形有4 行,每循环1 次输出1 行*/ { for(k=1;k<8-((2*i-1)/2);k++) /* 该循环输出每行的空格.8 用于调节偏离位置,可换成别的数( >=8) */ printf(" "); for(j=1;j<=2*i-1;j++) /* 该循环输出每行的 '*字'符*/ printf("*"); putchar( n''); /* 换行*/

C语言全部章节习题集(参考答案)

第一章 C语言概述 一、选择题: 1、一个C程序的执行是从( A )。 A本程序的main函数开始,到main函数结束 B本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C本程序的main函数开始,到本程序文件的最后一个函数结束 D本程序文件的第一个函数开始,到本程序main函数结束 [ 2、在 C 语言中,每个语句必须以( D )结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 3、C 语言规定:在一个源程序中,main函数的位置( C )。 A. 必须在最开始 B. 必须在系统调用的库函数的后面 C. 可以任意 D. 必须在最后 4、一个C 语言程序是由( B )。 ~ A. 一个主程序和若干子程序组成 B. 函数组成 C. 若干过程组成 D. 若干子程序组成 5、下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 》 6、用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( C )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D. 自动保存源文件 二、填空题: 1、C 语言只有 32 个关键字和 9 种控制语句。 ~ 2、每个源程序有且只有一个 main 函数,系统总是从该函数开始执行C语言程序。 3、C 语言程序的注释可以出现在程序中的任何地方,它总是以 \* 符号作为开始标记,以 */ 符号作为结束标记。 4、C 语言中,输入操作是由库函数 scanf 完成的,输出操作是由库函 数 printf 完成的。 5、系统默认的C 语言源程序文件的扩展名是 .c ,经过编译后生成的目标文件的扩展名是 .obj ,经过连接后生成的可执行文件的扩展名是 .exe 。 6、C 语言的标识符只能由字母、数字和下划线三种字符组成。

c语言实验习题及答案详解

1.数据类型 a.输入一个小数点后有多位数字的小数,实现将其保留三位小数,并输出;, #include<> main() {double b,d; printf("请输入一个小数:"); scanf("%lf",&b); printf("输出原来的数:%f\n",b); b*=1000; b+=; b=(int)b; d=b/1000; printf("输出现在的数:%.3lf\n0",d); } b.输入一个4位整数,求其得各位数字的平方和;(1234 1+4+9+16=30) #include<> main() {int n,sum=0,i,t; printf("请输入一个四位整数:\n"); scanf("%d",&n); for(i=0;i<4;i++) {t=n%10; n/=10; sum+=t*t; } printf("%d\n",sum);

} c.定义字符型变量ch,写出六种给ch赋值字符’A’的代码; #include<> main() {char ch; ch='A'; ch=65; ch=0x41; ch=0101; ch='\101'; ch='\x41'; } d.编写程序输出26组大小写字母;(AaBbCc……….XxYyZz) #include<> main() {int i; for(i=65;i<91;i++) {printf("%c",i); printf("%c",i+32); } printf("\n"); } e.定义浮点型变量f1、f2,为f1赋值10的-30次,为f2赋值10的30次 #include<> main() { double f1,f2; f1=10e-30;

C语言函数题库及答案

C语言函数题库及答案 Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998

第六部分函数 一、单项选择题 1.C语言中的函数返回值的类型是由(D)决定 A.return语句中的表达式B.调用函数的主调函数 C.调用函数时临时D.定义函数时所指定的函数类型 2.下面不正确的描述是(B)。 A.调用函数时,实参可以是表达式 B.调用函数时,实参和形参可以共用内存单元 C.调用函数时,将形参分配内存单元 D.调用函数时,实参与形参的类型必须一致 3.在C语言中,调用一个函数时,实参变量和形参变量之间的数据传递是 (D) A.地址传递B.值传递 C.由实参传递给形参,并由形参传回给实参D.由用户指定传递方式 4.下面的函数调用语句中含有(A)个实参 inta,b,c; intsum(intx1,intx2); …… total=sum((a,b),c); A.2B.3C.4 D.5 5.在C语言中(C) A.函数的定义可以嵌套,但函数的调用不可以嵌套

B.函数的定义和调用均不可以嵌套 C.函数的定义不可以嵌套,但是函数的调用可以嵌套 D.函数的定义和调用均可以嵌套 6.关于C语言中的return语句正确的是(C) A.只能在主函数中出现 B.在每个函数中都必须出现 C.可以在一个函数中出现多次 D.只能在除主函数之外的函数中出现 7.两个形参中,第一个形参为指针类型、第二个形参为整型,则对函数形参的说明有错误的是(D) (floatx[],intn) (float*x,intn) (floatx[10],intn) (floatx,intn) 8.在C语言中,函数的数据类型是指(A) A.函数返回值的数据类型 B.函数形参的数据类型 C.调用该函数时的实参的数据类型 D.任意指定的数据类型 9.已知如下定义的函数: fun1(a) {printf("\n%d",a); } 则该函数的数据类型是(C)

C语言程序设计练习题(含程序及参考答案)

1、定义一个函数int fun(int a,int b,int c) ,它的功能是:若a,b,c能构成等边三角形函数返回3,若能构成等腰返回2, —般三角形返回1,若不能构成三角形返回0。 #include int fun(int a,int b,int c) { if(a+b>c && b+c>a && a+c>b) { if(a==b && b==c ) return 3; else if(a==b||b==c||a==c) return 2; else return 1; } else return 0; } void main() { int a,b,c,shape; printf("\nl 叩ut a,b,c:"); scanf("%d%d%d", &a,&b,&c); printf("\na=%d, b=%d, c=%d\n",a,b,c); shape =fun(a,b,c); printf("\n\nThe shape : %d\n",shape); }

2、编写一个程序,将两个变量的值交换,例如变量a中的值原为 3 , b中的值原为8,程序运行后a中的值为8, b中的值为3。 #include void fun(int *x,int *y) { int t; t=*x;*x=*y;*y=t } void main() { int a=3,b=8; printf("%d %d\n",a,b); fun(&a,b); printf("%d %d\n",a,b); } 3、从键盘输入3个数,将最大值放在变量a中,最小值放在变量c 中。 例如,输入的数为:55 12 34 , 输出结果应当是:a=55.0,b=34.0,c=12.0 。 #include void fun(float *p,float *q,float *s) { float k; if (*p<*q) { k=*p;*p=*q;*q=k;} if (*q<*s) { k=*s;*s=*p;*p=k;}

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. 函数可以带参数,也可以不带参数。

2019二级C语言题库参考答案解析

2019年C语言考题答案 1、程序填空题 给定的程序的功能是调用fun 函数建立班级通讯录。通讯录中记录每位学生的编号、姓名和电话号码班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为myfile5.dat 的二进制中。 填空:( 1) STYPE(2)FILE(3)fp 改错:(1) for(i=0;i<=sl;i++)(2)t[2*sl]= 0“ 或t[sl+sl]= 0“ 编程: *c=(a/10)*1000+(b/10)*100+(a%10)*10+(b% 10); 2、程序填空题给定程序的功能是:从键盘输入若干文本 (每行不超过80 个字符),写到文件myfile4.txt 中,用-1 作为字符串输出输入的标志。然后将文件的内容读出显示在屏幕上。文件的读写分别由自定义函数ReadText 和Writetext 实现。 填空:(1)*fw(2)str (3) str 改错:(1)voidfun(longs,long*t)(2) s1=s1*10; 编程:int i,j=0,min=a[0].s; for(i=0;i

else if(min==a[i].s) b[j++]=a[i]; } return j; 3、程序填空题 给定程序中,函数fun 的功能是:讲自 然数1~10 以及它们的平方根写到名为myfile3.txt 的文本中,然后再按顺序读出显示在屏幕上。 填空:( 1) fp( 2)fclose(fp)(3)myfile3.txt 改错:( 1)for(i=j+1;i

C语言综合习题及答案

C语言练习题 一、选择题 1. 一个完整的C源程序是【B 】。 A)要由一个主函数或一个以上的非主函数构成 B)由一个且仅由一个主函数和零个以上的非主函数构成 C)要由一个主函数和一个以上的非主函数构成 D)由一个且只有一个主函数或多个非主函数构成2. 以下关于函数的叙述中正确的是【C】。 A)C语言程序将从源程序中第一个函数开始执行B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行 C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束 D)main可作为用户标识符,用以定义任意一个函数 3. 以下关于函数的叙述中不正确的是【B】。 A)C程序是函数的集合,包括标准库函数和用户自定义函数 B)在C语言程序中,被调用的函数必须在main 函数中定义 C)在C语言程序中,函数的定义不能嵌套

D)在C语言程序中,函数的调用可以嵌套 4. 在一个C程序中,【B 】。 A)main函数必须出现在所有函数之前 B)main函数可以在任何地方出现 C)main函数必须出现在所有函数之后 D)main函数必须出现在固定位置 5.C程序的执行是从【A 】开始的。 A)主函数 B)子函数 C)从程序第一行 D)printf()函数 6.以下选项中不合法的标识符是【C 】 A)print B)FOR C)&a D)_00 7.以下选项中可作为C语言合法常量的是【A】 A)-80 B)-080 C)-8e1.0 D)-80.0e 8.以下选项中不属于字符常量的是【B】 A)′C′ B)"C" C)′\xCC′ D) ′\072′ 9. 若在C语言中未说明函数的类型,则系统默认该函数的数据类型是【C】 A)float B)long C)int D)double 10. 以下关于函数叙述中,错误的是【D】。 A)函数未被调用时,系统将不为形参分配内存单元 B)实参与形参的个数应相等,且实参与形参的类型必须对应一致 C)当形参是变量时,实参可以是常量、变量或表达式 D)形参可以是常量、变量或表达式 11. C程序中各函数之间可以通过多种方式传递数据,下列不能用于实现数据传递的方式是 【D】。 A)参数的形实(哑实)结合 B)函数返回值 C)全局变量 D)同名的局部变量 12.若有定义:int a[2][3];,以下选项中对a数组元素正确引用的是【C】 A)a[2][!1] B)a[2][3] C)a[1>2][!1] D) a[0][3] 13.若有说明: int a[][4]={0,0};则下面不正确的叙述是【D】 A)数组a的每个元素都可得到初值0 B)二维数组a的第一维大小为1 C)因为二维数组a中第二维大小的值除经初值个数的商为1,故数组a的行数为1 D)有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0 14.下列选项中错误的说明语句是【D】 A)char a[]={′t′,′o′,′y′,′o′,′u′,′\0′}; B)char a[]={"toyou\0"}; C)char a[]="toyou\0"; D)c har a[]=′toyou\0′; 15.char a1[]="abc",a2[80]="1234";将a1串连接到a2串后面的语句是 A)strcat(a2,a1); B)strcpy(a2,a1); C)strcat(a1,a2); D)strcpy(a1,a2);

相关主题
文本预览
相关文档 最新文档