文档库 最新最全的文档下载
当前位置:文档库 › c语言练习3

c语言练习3

c语言练习3
c语言练习3

练习3

1.在C语言中,引用数组元素时,其允许的数组元素下标的数据类型是(C)。

A、实型常量

B、字符型常量

C、整形常量或整形表达式

D、任何类型的表达式

2.以下对一维整型数组a的正确说明形式是(D)。

A、int arry(10) ;

B、int n=10;

int arry[n];

C、int n;

scanf(“%d”,&n);

int arry[n];

D、#define N 10

int a[N];

3.若有定义:int a[10],则对数组a元素的正确引用形式是(D)。

A、a[10]

B、a[4.5]

C、a(0)

D、a[10-10]

4.以下不能对一维数组a进行正确初始化的语句是(D)。

A、int a[5]={1,2,3,4,5};

B、int a[5]={1,2,3} ;

C、int a[] = {1,2,3,4,5} ;

D、int a[5]={1,2,3,4,5,6} ;

5.以下对二维数组a的正确说明形式是(C)。

A、int a[5][ ];

B、float a[][3];

C、long a[5][3];

D、float a(3)(5);

6.若有定义:int a[3][4],则对数组a元素的正确引用是(C)。

A、a[2][4]

B、a[1,3]

C、a[2][3]

D、a[3][1]

7.以下能对二维数组a进行正确初始化的语句是(B)。

A、int a[2][]={{1,3,1},{2,4,6}} ;

B、int a[][3]={{1,2,3},{4,5,6}} ;

C、int a[2][4]={{1,2,3},{4,5},{6}} ;

D、int a[][]={{3,4,1},{1,2,3},{1,1}} ;

8.若有二维数组初始化语句int a[3][4]={0};则下面正确的叙述是。( D)

A、只有元素a[0][0]可得到初值0

B、此说明语句不正确

C、数组a中各元素都可得到初值,但其值不一定为0

D、数组a中每个元素均可得到初值0

9.若二维数组a有n列,则计算任一元素a[i][j]是数组中位置的公式为(D)。

(注:a[0][0]在数组中的位置为1)

A、i*n+j

B、j*n+i

C、i*n+j-1

D、i*n+j+1

10.若有说明:int a[][3]={1,2,3,4,5,6,7,8,9,10};则数组a第一维大小是(D)。

A、2

B、3

C、4

D、无法确定

11.若有定义char str[ ]= “china”;则该字符串的长度是(A),字符数组str所占的存储空间字节数

是(B)。

A、5

B、6

C、7

D、8

12.下面程序段的输出结果是(A)。

int k,a[3][3]={1,2,3,4,5,6,7,8,9};

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

printf(“%d”,a[k][2-k]);

A、3 5 7

B、3 6 9

C、1 5 9

D、1 4 7

13.下面是对字符数组str的初始化语句,其中不正确的是(D)。

A、char str[5]={“abcd”};

B、char str[5]={…a?,?b?,?c?,?d?};

C、char str[]=”abcd”;

D、char str[5];str=”abcdef”;

14.下面程序段的输出结果是(B)。

char str[10]={…C?,?H?,?I?,?\0? ,?N?,?A? ,?\0?}

printf(“%s”,str);

A、…C?,?H?,?I?

B、CHI

C、CHINA

D、CHI NA

15.有两个字符数组str1,str2,则以下正确的输入语句是(B)。

A、gets(str1,str2);

B、scanf(“%s%s”,str1,str2);

C、scanf(“%s%s”,&str1,&str2);

D、gets(“str1”);gets(“str2”);

16.下面程序段的输出结果是(B)。

char str1[10]=”Chongqing”;

char str2[10]=”Beijing”;

strcpy(str1,str2);

printf(“%c”,str1[7]);

A、i

B、\0

C、n

D、g

17.下面程序段的输出结果是(A)。

char c[ ]=”china\0\t\?\\”;

printf(“%d”,strlen(c));

A、5

B、9

C、10

D、13

18.判断字符串a是否大于b,应当使用(D)。

A、if (a>b)

B、if (strcmp(a,b)<0)

C、if (strcmp(b,a)>0)

D、if (strcmp(a,b)>0)

19.设已定义了字符数组s1、s2和s3,其中s2和s3已存储了字符串,则下面函数调用的功能是(C)。

strcat(strcpy(s1,s2),s3);

A、将s1中字符串复制到s2中后再连接到s3中的字符串后

B、将s1中字符串连接到s2中的字符串后再复制到s3中

C、将s2中字符串复制到s1中后,再将s3中的字符串连接到s1中的字符串后

D、将s2中字符串连接到s1中的字符串后,再将s1中的字符串复制到s3中

20.以下对二维数组a的正确说明形式是(C)。

A、int a[5][ ];

B、float a[][3];

C、long a[5][3];

D、float a(3)(5);

21.下面函数的功能是:(A)

int fun(char *x)

{

char *y=x;

while(*y++){};

return y-x-1;

}

A、求字符串的长度

B、求字符串存放位置

C、比较两个字符串的大小

D、将字符串x连接到字符串y后面

22.若有以下说明和语句,且0

int a[ ]={1,2,3,4,5,6,7,8,9,0},*p,i;

p=a;

A、*(a+i)

B、a[p-a]

C、p+i

D、*(&a[i])

23.下面程序的输出是:(A)

#include

void main( )

{

int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;

printf("%d", *(p+2));

}

A、3

B、4

C、1

D、2

24.若有以下语句,且0<=k<6,则正确表示数组元素地址的语句是(C)

int x[]={1,9,10,7,32,4},*ptr=x,k=1;

A、x++

B、&ptr

C、&ptr[k]

D、&(x+1)

25.若有说明:int i,j=7,*p; p=&i;则与i=j等价的语句是(B)

A、i=*p;

B、*p=*&j;

C、i=&j

D、i=**p;

26.设p1和p2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是(B)

A、k=*p1+*p2;

B、p2=k;

C、p1=p2;

D、k=*p1*(*p2);

二、填空题

1.C语言中定义数组后,构成数组的各个数组元素具有相同的数据类型,不同的下标。

2.若有数组定义int a[10],则引用数组a的数组元素时,下标最小值为0,下标最大值为9。

3.在C语言中,定义二维数组后,系统为其数组元素在内存中分配连续的内存空间,各个数组元素

在内存中的存放顺序是按行存放。

4.若有定义double x[3][5],则引用x数组元素时,行标的最小值为0,列标的最小值为0,

该数组共有15个数组元素。

5.若有数组初始化语句int a[3][4]={{1,2},{0},{3,4,5,6}},则该数组初始化后,数组元素a[1][2]的值为

0 ,a[2][1]的值为 4 。

6.如有字符数组初始化语句:char a[]=”Chong\0qing”,则字符数组a的长度是11。

7.如果有字符数组定义语句char str[10],使用gets(str); 语句键盘输入一个字符串存储在字符数组str

中,则作为函数参数的字符数组名str表示该字符串的首地址。

8.下面程序段的运行结果是741。

void main()

{

int i,x[10];

for(i=9;i>=0;i--)

x[i]=10-i

printf(“%d%d%d\n”,x[3],x[6],x[9]);

}

9.如果要在字符数组s1中存储键盘输入的字符串”Hello World!”,其语句是gets(s1);。

10.如果要将字符数组s1中存储的字符串连接到字符数组s2中存储的字符串后,然后再将连接后的

字符串复制到到字符数组s3中,其语句是strcpy(s3,strcat(s2,s1)); 。

11.C语言中定义函数时如果未指定函数类型,则默认的函数类型是int。

12.C语言中没有返回值的函数类型应指定为void。

13.下面函数返回值的类型是float。

float fun(float a,double b)

{return a*b;}

14.发生函数调用时,实参和形参间的数据传递有两种方式:传值和传地址。

15.在一个函数内部调用另一个函数的调用方式称为嵌套调用,在一个函数内部直接或间接调用

该函数本身的调用方式称为函数的递归调用。

16.如果被调函数在主调函数后定义,一般应该在主调函数中或主调函数前对被调函数进行声明。

17.C语言中的变量按其作用域分为局部变量和全局变量,按其生存期分为静态存储变量和

动态存储变量。

18.已知如下函数定义,其函数声明的两种写法为double fun(long m,double n); ,double

fun(long,double); 。

double fun(long m,double n)

{return (m+n);}

19.C语言中变量的存储类别包括auto,static,extern,和register。

20.在一个多文件的C程序中,若要定义一个只允许本源文件中函数使用而不允许其它源文件中函数

使用的全局整型变量a,则变量a的定义语句应写为static int a;(static float a;)。

三、阅读程序,写出程序运行结果。

1.#include

#define N 10

void main()

{

int num[N];

int c1,c2,s1,s2,v1,v2,i;

c1=c2=s1=s2=0;

for(i=0;i

scanf(“%d”,&num[i]);

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

if(num[i]>=0) {s1+=num[i];c1++;}

else {s2+=num[i];c2++;}

v1=s1/c1;v2=s2/c2;

printf(“v1=%d,v2=%d\n”,v1,v2);

}

如果程序运行时键盘输入:1 -2 3 -4 5 -6 7 -8 9 10↙

答案:v1=5,v2=-5

2.#include

#define N 4

void main()

{

int arry[N][N],i,j,n=1;

for(i=0;i

for(j=0;j

{ arry[i][j]=n; n+=2;}

for(i=0;i

{

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

printf(“%5d”,arry[i][j]);

printf(“\n”);

}

}

答案:

1

9 11

17 19 21

25 27 29 31

3.#include

void main ( )

{

int i=0;

char s1[ ]=”ABD”, s2[ ]=”ADCF”, s3[10];

while (s1[i]!=?\0?&&s2[i]!=?\0?)

{

if (s1[i]>=s2[i]) s3[i]=s1[i]+32 ;

else s3[i]=s2[i]+32 ;

i++;

}

s3[i]=?\0?;

puts(s3);

}

答案:add

4.#include

void main ( )

{

char str[]={“cde345ab”};

int i,m=0;

for (i=0; str[i]>=?a? && str[i]<=?z?; i+=2)

m = 10*m + str[i] - …a?;

printf(“%d\n”,m);

}

答案:24

5.#include

void main ( )

{

char s1[10]=”ABCDEFG”,s2[10]=”ABCDGFE”;

int i=0,n;

while((s1[i]==s2[i])&&(s1[i]!=?\0?))

i++;

n=s1[i]-s2[i];

printf(“%d\n”,n);

}

答案:-2

6.int fun(int a,int b)

{

return a>b?a+b:a-b;

}

void main()

{

int x=3,y=5;

printf(“%d\n”,fun(x,y));

}

答案:-2

7.void fun(int x,int y,int z)

{

x=2*x;

y=2*y;

z=2*z;

}

void main()

{

int x=3,y=6,z=9;

fun(x,y,z) ;

printf(“%d,%d,%d\n”,x,y,z);

}

答案:3,6,9

8.void fun();

void main()

{

int i=1,j=2;

fun();

printf(“i=%d,j=%d\n”,i++,j++);

}

void fun()

{

int i=3,j=5;

{

int i=4,j=6;

printf(“i=%d,j=%d\n”,i++,j++);

}

printf(“i=%d,j=%d\n”,i++,j++);

}

答案:i=4,j=6

i=3,j=5

i=1,j=2

9.int x=0;

fun(int n)

{

int x=8;

x-=n;

printf(“%d\n”,x);

}

void main()

{

int y=6;

fun(y);

x+=y;

printf(“%d\n”,x);

}

答案:2

6

10.fun (int a,int b)

{

static int m=0,i=2;

i+=m+1;

m=i+a+b;

return (m);

}

void main ( )

{

int x=5,y=2,p1,p2;

p1=fun(x,y) ;

p2=fun(x,y) ;

printf(“%d,%d\n”,p1,p2) ;

}

答案:10,21

11.#include

int fun(int n)

{

auto int p=1;

p*=n;

return p;

}

void main()

{

int i;mul;

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

mul=fun(i);

printf(“mul=%d\n”,mul);

}

答案:mul=5

12.int fac(int n)

{

static int f=1;

f=f*n;

return (f);

}

void main()

{

int i;

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

printf(“%d!=%d\n”,i,fac(i));

}

答案:

1!=1

2!=2

3!=6

4!=24

5!=120

13.long xn(int x,int n)

{

long f=0;

if (n<0) printf("n<0,data error!\n");

else if (n==0) f=1;

else f=x*xn(x,n-1);

return (f);

}

void main( )

{

int x=2,n=10; long y;

y=xn(x,n);

printf("%ld\n",y);

}

答案:1024

14.void fun(int *x)

{

printf("%d\n",++*x);

}

void main()

{

int a=25;

fun(&a);

}

答案:26

15.#include

void main( )

{

int a[ ]={1,2,3,4,5};

int x, y, *p;

p=&a[0];

x=*(p+2);

y=*(p+4);

printf("*p=%d,x=%d,y=%d\n",*p,x,y);

return;

}

答案:*p=1,x=3,y=5

四、程序设计题

1、键盘输入n个整数(n值由键盘输入),统计n个整数中奇数的个数及输出这些奇数。

#include

void main ( )

{

int a[20],n,I,count=0;

printf(“请输入整数个数:”);

scanf(“%d”, &n);

printf(“请输入%d个整数:”,n);

for(i=0;i

scanf(“%d”, &a[i]);

printf(“奇数有:”);

for(i=0;i

if(a[i]%2!=0)

{

printf(“%d\t”,a[i]);

count++;

}

printf(“\n奇数个数为:% d \n”, count);

}

2、键盘输入一个班n个学生的C语言成绩,求超过平均成绩(含平均成绩)的学生人数和低于平均成绩的学生人数。

#include

void main ( )

{

int a[20],n,I,count=0,sum=0;

float ave;

printf(“请输入学生的个数:”);

scanf(“%d”, &n);

printf(“请输入%d个学生的C语言成绩:”,n);

{

scanf(“%d”, &a[i]);

sum=sum+a[i];

}

ave=(float)sum/n;

for(i=0;i

if(a[i]>=ave)count++;

printf(“超过平均成绩好的有%d个,低于平均值的有%d个\n”, count,n-count);

}

3、键盘输入9个整数保存在一维整型数组中,对该数组按照从大到小的顺序进行排序,然后键盘输入1个整数,将该整数插入到数组中,插入后该数组依然保持有序。

#include

void main ( )

{

int a[10],n,i,j,temp;

printf("请输入9个整数:");

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

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

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

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

if(a[i]

{t=a[i];a[i]=a[i+1];a[i+1]=t; }

printf("请输入要插入的整数:");

scanf("%d", &n);

for(i=8;i>=0;i--)

if(a[i]

else break;

a[i+1]=n;

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

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

printf("\n");

}

4、定义二维数组保存一个4行4列的方阵,方阵中各元素的值由键盘输入,要求将方阵的除主对角线外的上三角部分的每个元素的值加2,下三角部分的每个元素的值减2,然后输出改变后的方阵。

#include

void main ( )

{

int a[4][4],i,j;

printf("请输入4*4行矩阵的数据:\n");

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

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

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

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

if(i

else if(i>j)a[i][j]=a[i][j]-2;

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

{

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

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

printf("\n");

}

}

5、如果一个班有5个学生,每个学生本学期学习了语文、数学、英语和政治四门课程,要求键盘输入每个学生各门课程的成绩,然后求出每个学生的平均成绩和每门课程的平均成绩。

#include

void main ( )

{

int a[5][4],i,j,sum;

printf("请输入5个学生的语文、数学、英语和政治成绩据:\n");

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

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

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

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

{

sum=0;

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

sum=sum+a[i][j];

printf("第%d个学生的平均成绩%.2f\n", i+1,sum/4.0);

}

printf("\n");

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

{

sum=0;

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

sum=sum+a[i][j];

printf(“第%d门课的平均成绩%.2f\n", j+1,sum/5.0);

}

}

6、编写程序实现将一个字符数组中存放的字符串复制到另一个字符数组中,要求不能使用strcpy函数。#include

void Strcpy(char s1[],char s2[ ])

{

int i;

for(i=0;s2[i]!='\0';i++)

s1[i]=s2[i];

s1[i]='\0';

}

void main()

{

char s1[20],s2[20];

printf("请输入字符串1:") ;

gets(s1);

printf("请输入字符串2:") ;

gets(s2);

Strcpy(s1,s2);

printf("请输出赋值后的字符串1:") ;

puts(s1);

}

7、编写程序实现从键盘输入一行包含英文字母、数字、空格和其他字符的字符串,将该字符串中的英文字母复制生成新的字符串并输出。

#include

void main()

{

char s1[20],s2[20];

int i,j;

printf("请输入字符串:") ;

gets(s);

for(i=0,j=0;s1[i]!='\0';i++)

{

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

{

s2[j]=s1[i];

j++;

}

}

s2[j]='\0';

printf("新字符串:") ;

puts(s2);

}

8、编写程序,搜索一个指定字符在字符串中的位置(例如:字符?u?在字符串”student”中的位置为3)。如果找到则输出该字符在字符串中的位置,如果没找到,则输出“没找到!”。

#include

void Findchar(char s1[],char c)

{

int i;

for(i=0;s1[i]!='\0';i++)

if(s1[i]==c)

{

printf("字符\'%c\' 在字符串\"%s\"中的位置为%d\n",c,s1,i+1) ;

return;

}

printf("没找到!\n")

}

void main()

{

char s1[20],c;

printf("请输入字符串:") ;

gets(s1);

printf("请输入搜索的字符:") ;

c=getchar();

Findchar(s1,c);

}

9、从键盘输入一任意字符串,然后,输入所要查找字符。存在则返回它第一次在字符串中出现的位置;否则,输出"在字符串中查找不到!" 。并实现对同一字符串,能连续输入所要查找的字符。

#include

void Findchar(char s1[],char c)

{

int i;

for(i=0;s1[i]!='\0';i++)

if(s1[i]==c)

{

printf("字符\'%c\'在字符串\"%s \"中第一次位置:%d\n",c,s1,i+1) ;

return;

}

printf("在字符串中查找不到!\n")

}

void main()

{

char s1[20],c;

printf("请输入字符串:") ;

gets(s1);

do

{

printf("请输入搜索的字符:") ;

c=getchar();

Findchar(s1,c);

printf("还要搜索字符吗(Y/N)?") ;

ch=getchar();

}while(ch!='N'||ch!='n');

}

10、从字符串中删除子字符串。从键盘输入一字符串,然后,输入要删除的子字符串。最后输出删除子串后的新字符串。

#include

void StrDel(char s1[],char s2[ ])

{

int i,j,k,k1,k2;

for(i=0;s1[i]!='\0';i++)

{

k=i;

for(j=0;s2[j]!='\0';j++,k++)

if(s2[j]==s1[k])continue;

else break;

if(s2[j]=='\0')

{

for(k1=i,k2=k;s1[k2]!=…\0?;k1++,k2++)

s1[k1]=s1[k2];

s1[k1]=0;

i=i-1;

}

}

}

void main()

{

char s1[20],s2[10];

printf("请输入字符串:") ;

gets(s1);

printf("请输入子字符串:") ;

gets(s2);

StrDel(s1,s2);

printf("请输出删除子串后的字符串:") ;

puts(s1);

}

c语言复习题(有答案)●

思考题 不仅要会做这些题,更重要的是要掌握其相关知识点一、一般填空题 1-1、调用fopen函数打开一文本文件,在“打开模式”这一项中,为输出(写)而打开需填入【1】. 1-2、调用fopen函数打开一文本文件,在“打开模式”这一项中,为追加而打开需填入【1】. 1-3、fopen函数的原形在头文件【1】中. 1-4、getchar函数的原形在头文件【1】中. 1-5、sqrt函数的原形在头文件【1】中. 1-6、如果函数不要求带回值,可用【1】来定义函数返回值为空. 答案:w或w+;a或a+;stdio.h ; stdio.h ; math.h ;void . 2-1、字符串“\1011234\\at”的长度(字符数)是【1】. 2-2、字符串“abc\103\\bcd”的长度(字符数)是【1】. 2-3、字符串“1\\t\x43\abx44”的长度(字符数)是【1】. 2-4、“a“在内存中占【1】个字节. 2-5、‘a’在内存中占【1】个字节. 2-6、“\71“在内存中占【1】个字节. 2-7、一维数组下标的最小值是【1】;数组char a[]=“china” ;在内存应占【1】个字节。 答案:8; 8; 9; 2;1;2 ;0;6. 3-1、设x=(5>1)+2, x的植为【1】. 3-2、表达式‘B’+15+‘\x41’+011+0x10的值是【1】. 3-3、表达式‘b’+5+‘\x42’+011+0x10的值是【1】. 答案:3;171;194; 4-1、假设所有变量都为整型,表达式(a=2,b=5,a>b?a++:b++,a+b)的值是【1】. 4-2、if(!a)中的表达式!a等价于【1】. 4_3、已知a=1,b=2,c=3,执行if(a>b>c) b=a;else b=c;a=4;b=8;后,b的值是【1】. 答案:8;a==0;8; 5-1、若所用变量都已定义,下列程序段的执行结果是【1】. for(i=1;i<=5;i++);printf(“OK\n”); 5-2、执行语句char s[3]=”ab”,*p;p=s;后,*(p+2)的值是【1】. 5-3、若有以下定义和语句:int a[4]={0,1,2,3},*p; p=&a[2]; ,则*--p的值是【1】. 5-4、下列程序的输出结果是【1】,main(){int a=011;printf(“%d\n”,++a);} 答案:OK;’\0’;1;10 6-1、若宏定义为:#define y(x) 2+x, 则表达式a=3*y(3)的值为【1】. 6-2、若宏定义为:#define y(x) 2+x, 则表达式a=4*y(2)的值为【1】. 6-3、若宏定义为:#define y(x) 2/x, 则表达式a=4+3*y(3)的值为【1】. 答案:9;10;6 . 二、单项选择题 1-1、若以"a+"方式打开一个已存在的文件,则以下叙述正确的是()。 A:文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可作添加和读操作 B:文件打开时,原有文件内容不被删除,位置指针移到文件开头,可作重写和读操作 C:文件打开时,原有文件内容被删除,只可作写操作 D:以上各种说法皆不正确 1-2、若执行fopen函数时发生错误,则函数的返回值是()。

C语言练习题(带答案)

一、单项选择题 1.(A)是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 2.C语言程序从C开始执行。 A) 程序中第一条可执行语句B) 程序中第一个函数 C) 程序中的main函数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。 A)2.5 B)2 C)1 D)3 11.如果int a=3,b=4;则条件表达式"a

C语言试题与答案

大学C语言考试题库 第1章 C语言概述习题 1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. A B. B C. D D. E (2) 在 C 语言中,每个语句必须以 D 结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (3) 标识符和关键字间,要用 C 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 (4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件 (5) 下列说法中正确的是( B )。 A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入 B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行 D. 由于 C 程序是高级语言程序,因此它由命令组成 (6) 下列说法中正确的是( A )。 A. C 语言程序由主函数和 0 个或多个函数组成 B. C 语言程序由主程序和子程序组成 C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7) 下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2. 填空题 (1) C 语言只有 32 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系

C语言思考题

1、机器语言:机器语言及其指令是计算机能够直接识别的执行的一组二进制代码。一条机器指令通常由操作码和操作数两部分构成。 2、汇编指令:是机器语言的符号化表示MOV 3、汇编语言:由汇编指令、汇编伪指令及汇编语言的语法规则组成。 4、汇编语言源程序:用汇编语言编写的程序 5、汇编程序:把汇编语言源程序翻译成目标程序的加工程序MASM 6、二、十、十六进制转换(掌握<256)练习1:117=(1110101)B练习2:1000 1011 B=(139)D练习3:1011 1000 0000 0101 B=(B805)H 7、机器数:是指计算机中的数据,可以分为无符号数和有符号数字长为N位时无符号数表示范围0≤N≤2N-1 当N=8时0≤N≤255 8、原码(8位):最高位为符号位(正数用0表示,负数用1表示),其他位为数值位 如X=+45=+0010 1101B [X]原=0010 1101B 如X=-45=-0010 1101B [X]原=1010 1101B 9、补码(8位):正数的补码与原码相同,负数的补码是将符号位取1,数值位逐位取反,未位加1。如X=+45=+0010 1101B [X]补=0010 1101B 如X=-45=-0010 1101B [X]补=1101 0011B 10、补码运算:是指对一个补码表示的数按位求反后再在末尾加1,可以得到与此数相应的符号相反的数的补码。例、已知[117]补=0111 0101B,[-117]补=1000 1011B,对[117]补作补码运算。解:因为[117]补=0111 0101B,按位求反后得1000 1010B,末尾加1得1000 1011B=[-117]补。[X+Y]补=[X]补+[Y]补[X-Y]补=[X]补+[-Y]补 12、BCD码:BCD码用4位二进制数表示1位十进制数。常用8421BCD码例:写出十进制314所对应的BCD码 13、8086/8088CPU:16位微处理器和16位数据总线,20位地址总线(寻址空间为1MB)。8088微处理器内部16位数据,外部8位数据,也称准16位机。8086/8088CPU的组成(功能方面):运算器、控制器、寄存器组 14、寄存器是CPU内部临时存放数据的部件,速度比内存快。(1)数据寄存器4个16位寄存器AX,BX,CX,DX,每个寄存器还可以拆成2个8位寄存器使用。 AX累加器:算术运算寄存器,用于存放操作数或运算结果。I/O指令中通过AX与外部交换数据。在乘除运算中指定存放被乘数与被除数,系统功能调用号。AX累加器可以分为AH、AL分别使用。 BX基址寄存器:可作为通用寄存器使用。在计算内存地址是,常作基址寄存器,作为通用寄存器还可以分为BH、BL分别使用。 CX数据寄存器:可作为通用寄存器使用。在循环和串操作指令中作隐含计数器。作为通用寄存器还可以分为CH、CL分别使用。 DX数据寄存器:可作为通用寄存器使用。在I/O操作中,DX用来存放I/O端品地址。在乘除法运算中与AX组合一起存放双字型数据。作为通用寄存器还可以分为DH、DL 分别使用。 (2)变址寄存器(2 个16位):SI 源变址寄存器.DI 目的变址寄存器 BP基址寄存器:用于存放栈中的操作数的偏移地址。SP堆栈指针寄存器:用来指示栈顶的当前位置(偏移地址)。 IP 指令指针寄存器(程序计数器):用于存放下一条指令所在偏移地址。与CS配合,用来确定程序中下一条指令的物理地址。 15、PSW程序状态字寄存器(标志寄存器):8088微处理器使用16位中的9位设置了9个标志。标志位SF、OF、CF、ZF的含义0010 1001B+1110 1000B=1 0001 0001B CF=1 OF=0 SF=0 ZF=0 16、段地址寄存器:段表示一块内存空间(大小可变),最大为64K字节,最小为16字

C语言练习题(带答案)-绝对经典题目不看后悔

1单选题 1.(A)是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 2.C语言程序从C开始执行。 A) 程序中第一条可执行语句B) 程序中第一个函数 C) 程序中的main函数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 5~8题为相同类型题 考点:标识符的命名规则 (1)只能由字母、数字、下划线构成 (2)数字不能作为标识符的开头 (3)关键字不能作为标识符 选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3) 6.下列C语言用户标识符中合法的是(B)。 A)3ax B)x C)case D)-e2 E)union 选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1); 7.下列四组选项中,正确的C语言标识符是(C)。 A)%x B)a+b C)a123 D)123 选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2) 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 选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键

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语言第1章练习题答案

第一章 C语言概述练习题 一、选择题 1.C语言是一种( )。 A) 机器语言B) 汇编语言C) 高级语言 D) 低级语言 2.下列各项中,不是C语言的特点是( )。 A) 语言简洁、紧凑,使用方便B) 数据类型丰富,可移植性好 C) 能实现汇编语言的大部分功能D) 有较强的网络操作功能 3.下列叙述正确的是( )。 A) C语言源程序可以直接在DOS环境中运行 B) 编译C语言源程序得到的目标程序可以直接在DOS环境中运行 C) C语言源程序经过编译、连接得到的可执行程序可以直接在DOS环境中运行 D) Turbo C系统不提供编译和连接C程序的功能 4.下列叙述错误的是()。 A) C程序中的每条语句都用一个分号作为结束符 B) C程序中的每条命令都用一个分号作为结束符 C) C程序中的变量必须先定义,后使用 D) C语言以小写字母作为基本书写形式,并且C语言要区分字母的大小写 5.一个C程序的执行是从()。 A) 本程序的main函数开始,到main函数结束 B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C) 本程序文件的第一个函数开始,到本程序main函数结束 D) 本程序的main函数开始,到本程序文件的最后一个函数结束 6.以下叙述不正确的是()。 A) 一个C源程序必须包含一个main函数 B) 一个C源程序可由一个或多个函数组成 C) C程序的基本组成单位是函数 D) 在C程序中,注释说明只能位于一条语句的后面 7.C语言规定:在一个源程序中,main函数的位置( )。 A)必须在程序的开头B)必须在系统调用的库函数的后面 C)可以在程序的任意位置D)必须在程序的最后 8.一个C语言程序是由( )。 A)一个主程序和若干个子程序组成B) 函数组成 C) 若干过程组成D) 若干子程序组成 9.以下有4组用户标识符,其中合法的一组是()。 A) For B) 4d C) f2_G3 D) WORD -sub DO IF void Case Size abc define 10. 一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是 ()。

C语言试题库(完整版)

C语言试题库 一、单项选择 第一章 C语言概述 (1)一个C程序的执行是从 A、本程序的MAIN函数开始,到MAIN 函数结束。 B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。 C、本程序的MAIN函数开始,到本程序的最后一个函数结束。 D、本程序文件的第一个函数开始,到本程序的MAIN函数结束。(2)以下叙述正确的是 A、在C程序中,MAIN函数必须位于程序的最前面。 B、 C程序的每行中只能写一条语句。 C、 C语言本身没有输入输出语句。 D、在对一个C程序进行编译的过程中,可发现注释中的拼写错误。(3) C语言规定,在一个源程序中,MAIN主函数的位置是在: A、必须在最前面。 B、必须在系统调用的库函数的后面 C、可以在任意位置。

D、必须在最后面 (4)一个C程序是由: A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 (5)以下叙述不正确的是: A、一个C源程序可由一个或多个函数组成 B、一个C源程序必须包含一个MAIN函数 C、 C程序的基本组成单位是函数 D、在C程序中,注释说明只能位于一条语句的后面 第二章数据类型、运算符与表达式 (1)若x, i, j, k都是int型变量,则计算下面表达式后,x的值为x=( i=4, j=16, k=32) A、4 B、16 C、32

D、52 (2)下列四组选项中,均不是C语言键字的选项是 A、define , IF, type B、getc, char, printf C、include, scanf, case E、 if, struct, type (3)下面四个选项中,均是不合法的用户标识符的选项是A、A,P_0,do B、float,1a0, _A C、b-a, goto, int D、_123, temp, INT (4)若有代数式3ae/bc,则正确的C语言表达式是A、a/b/c*e*3 B、3*a*e/bc C、3*a*e/b*c D、a*e/c/b*3 (5)已知各变量的类型说明如下:

C语言试题库(带详细讲解答案)

一单项选择题 1.(A)是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 2.C语言程序从C开始执行。 A) 程序中第一条可执行语句B) 程序中第一个函数 C) 程序中的main函数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 5~8题为相同类型题 考点:标识符的命名规则 (1)只能由字母、数字、下划线构成 (2)数字不能作为标识符的开头 (3)关键字不能作为标识符 选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3)

6.下列C语言用户标识符中合法的是(B)。 A)3ax B)x C)case D)-e2 E)union 选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D 中的“-”不满足(1); 7.下列四组选项中,正确的C语言标识符是(C)。 A)%x B)a+b C)a123 D)123 选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2) 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 选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键字,不满足(3) 9.C语言中的简单数据类型包括(D)。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是C。 A)2.5 B)2 C)1 D)3 详见教材P52~53. %为求余运算符,该运算符只能对整型数据进行运算。且符号与被模数相同。5%2=1;5%(-2)=1;(-5)%2=-1;(-5)%(-2)=-1; /为求商运算符,该运算符能够对整型、字符、浮点等类型的数据进行运算,5/2=2 11.如果int a=3,b=4;则条件表达式"a

C语言试题及答案

第1章C语言概述习题 1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (2) 在 C 语言中,每个语句必须以 D 结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (3) 标识符和关键字间,要用 C 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 (4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件 (5) 下列说法中正确的是( B )。 A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入 B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行 D. 由于 C 程序是高级语言程序,因此它由命令组成 (6) 下列说法中正确的是( A )。

A. C 语言程序由主函数和 0 个或多个函数组成 B. C 语言程序由主程序和子程序组成 C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7) 下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2. 填空题 (1) C 语言只有 37 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。 (3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。 (4) 在 C 语言程序中允许出现的字符集是 ASCII码字符集。 (5) C 语言的程序中有特殊含义的英语单词称为保留字。 (6) C 语言标识符的长度是前 8 位有效。 (7) C 语言中,标识符的定义规则是以字母或下划线为开头。

C语言习题及答案

习题一 【习题1-1】C语言源程序最多可能由________________部分组成? A) 预处理部分B)变量说明部分 C) 函数原型声明部分D)函数定义部分 【习题1-2】一个完整的C语言源程序最少必须有_______。 A)若干个主函数B)若干个函数 C)且只能有一个主函数D)一个函数 【习题1-3】C语言以函数为源程序的基本单位最主要有利于_______。 A)程序设计结构化B)程序设计模块化 C)程序设计简单化D提高程序设计有效性 【习题1-4】要使得C语言编写的程序能够在计算机上运行并得出正确结果,必须要先经过_______________________________________。 A)编辑和链接B)编译和链接 C)修改和运行D运行并输入数据 【习题1-5】选择一个C语言集成开发环境并启动它,然后分别输入【例1-1】、【例1-2】、【例1-3】的源程序,依次编译、链接、运行,看看能否达到预想的结果?从中了解程序的开发过程。 习题二 一、单项选择题 【习题2-1】已知’A’的ASCII代码是65,以下程序的输出结果是( ) #include "stdio.h" main( ) { int c1=65,c2=66; printf("%c, %c",c1,c2); } A. 因输出格式不合法,输出错误信息 B. 65,66 C. A,B D. 65,66 【习题2-2】若变量已正确定义,要将a和b中的数进行交换,下面不正确的语句组是( ) A. a=a+b,b=a-b,a=a-b; B. t=a,a=b,b=t; C. a=t,t=b,b=a; D. t=b;b=a;a=t; 【习题2-3】若k是整型变量,则以下程序段的输出是( ) k=-8567; printf (“|%d|\n”,k); A. 输出格式不正确 B. 输出为|008567|

C语言习题及答案

C语言习题及答案 习题一 【习题1-1】C语言源程序最多可能由________________部分组成, A) 预处理部分 B)变量说明部分 C) 函数原型声明部分 D)函数定义部分 【习题1-2】一个完整的C语言源程序最少必须有_______。 A)若干个主函数 B)若干个函数 C)且只能有一个主函数 D)一个函数 【习题1-3】C语言以函数为源程序的基本单位最主要有利于_______。 A)程序设计结构化 B)程序设计模块化 C)程序设计简单化 D提高程序设计有效性 【习题1-4】要使得C语言编写的程序能够在计算机上运行并得出正确结果,必 须要先经过_______________________________________。 A)编辑和链接 B)编译和链接 C)修改和运行 D运行并输入数据 【习题1-5】选择一个C语言集成开发环境并启动它,然后分别输入【例1-1】、【例1-2】、【例1-3】的源程序,依次编译、链接、运行,看看能否达到预想的结果,从中了解程序的开发过程。 习题二 一、单项选择题 【习题2-1】已知’A’的ASCII代码是65,以下程序的输出结果是( ) #include "stdio.h"

main( ) { int c1=65,c2=66; printf("%c, %c",c1,c2); } ,66 A. 因输出格式不合法,输出错误信息 B. 65 C. A,B D. 65,66 【习题2-2】若变量已正确定义,要将a和b中的数进行交换,下面不正确的 语句组是( ) A. a=a+b,b=a-b,a=a-b; B. t=a,a=b,b=t; C. a=t,t=b,b=a; D. t=b;b=a;a=t; 【习题2-3】若k是整型变量,则以下程序段的输出是( ) k=-8567; printf (“|%d|\n”,k); A. 输出格式不正确 B. 输出为|008567| C. 输出为|8567| D. 输出为|-8567| 【习题2-4】下列可作变量的标识符是( ) A. 3rt B. je_c C.$89 D. a+6 【习题2-5】C语言中的标识符只能由字母、 数字和下划线三种字符组成, 且第一个字符( ) A.必须为字母或下划线 B.必须为下划线 C.必须为字母 D.可以是字母、数字和下划线中的任一种字符 【习题2-6】 C语言并不是非常严谨的算法语言,在以下关于C语言的不 严谨的叙述中,错误的说法是( ) A. 大写字母和小写字符的意义相同

c语言习题及答案

【习题1】 一、判断并改错 1.1 C程序执行的入口是main()函数,所以main函数必须放在程序的开头。 错误:main函数可以放在程序的任何位置。并不限定在程序的开头。 定义一个函数包括数据说明部分和执行语句部分,两者可以交叉出现。 错误:不可以交叉出现,数据说明部分在执行语句部分的前面。 scanf("%d,%d",&x,&y);的正确输入格式:3,4<回车>。 正确 注释内容太多会影响程序的执行效率。 错误:不会影响程序的执行效率。因为在编译时,编译系统将注释内容删除或用空格代替,所以注释内容不会编译到目标程序中。 二、编程题 输入圆的半径,求圆的周长,并将结果保留两位小数输出到屏幕上。 提示:定义圆的半径r,圆的周长:2**r,输出结果保留2位小数可以用%.2f 输入两个整数,输出其中最大者。 提示:模仿例 【习题2】 一、单项选择题 下面四个选项中,均是不合法的用户标识符的选项是(C)。 A)BA 、x_0、do B)float、1a0、_Y C)x-y、goto、123 D)_123、tmp、CHAR 下列选项中不正确的常数的选项是(D)。 A)0x12F B)C)D)0388 下面正确的字符常量是(B)。 A)"a" B)'\\' C)"\n" D)"\376" 下面正确的字符串常量是(C)。

A)'a' B)'376' C)"\\n" D)376 表达式'A'+4*'b'的正确结果是(B )。 A)67 B) C)不确定 D)67L 执行printf("%x",100);后的输出结果是(C )。 A)100 B)0x100 C)0X64 D)64 存储字符串"\\\'abc\376"需要的字节数是(D )。 A)11 B)13 C)6 D)7 【习题3】 一、计算题 +7%3*11%2/4 (答案: 5/2+2+7%6 (答案: 3.3 a=12,a*=2+3 (答案:a=60) 3.4 a=3,b=4,c=5,a+b>c&&b= =c (答案:0) 3>53:5<825:40 (答案:25) 设a=1,b=2,c=3,d=4,m=n=1,有表达式(m=a>b)&&(n=c>d),计算表达式后m,n 的值 (答案:m=0,n=1) 设int b=7;float a=,c=;求下面表达式的值。 a+(int)(b/2*(int)(a+c)/2)%4 (答案: 二、单项选择题 若有代数式bc xy 8 ,则不正确的C 语言表达式是(C )。 A )x/b/c*y*8 B )8*x*y/b/c C )8*x*y/b*c D )x*y/c/b*8 有如下类型说明: int k,a,b; unsigned long w=8; double x= 则以下不符合C 语言语法的表达式是(A )。 A)x%(-3) B)w*=-2

C语言竞赛练习题40题

C语言竞赛练习题 1.求最大数 问555555的约数中最大的三位数是多少? 2.高次方数的尾数 求13的13次方的最后三位数。 3.借书方案知多少 小明有五本新书,要借给A,B,C三位小朋友,若每人每次只能借一本,则可以有多少种不同的借法? 4.数制转换 将任一整数转换为二进制形式。 5.打鱼还是晒网 中国有句俗语叫“三天打鱼两天晒网”。某人从1990年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”。 6.抓交通肇事犯 一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号刚好是一个整数的平方。请根据以上线索求出车号。 7.该存多少钱 假设银行一年整存零取的月息为0.63%。现在某人手中有一笔钱,他打算在今后的五年中的年底取出1000元,到第五年时刚好取完,请算出他存钱时应存入多少。 8.怎样存钱利最大 假设银行整存整取存款不同期限的月息利率分别为: 0.63% 期限=1年 0.66% 期限=2年 0.69% 期限=3年 0.75% 期限=5年 0.84% 期限=8年 利息=本金*月息利率*12*存款年限。 现在某人手中有2000元钱,请通过计算选择一种存钱方案,使得钱存入银行20年后得到的利息最多(假定银行对超过存款期限的那一部分时间不付利息)。 9.捕鱼和分鱼

A、B、C、D、E五个人在某天夜里合伙去捕鱼,到第二天凌晨时都疲惫不堪,于是各自找地方睡觉。日上三杆,A第一个醒来,他将鱼分为五份,把多余的一条鱼扔掉,拿走自己的一份。B第二个醒来,也将鱼分为五份,把多余的一条鱼扔掉,保持走自己的一份。C、D、E依次醒来,也按同样的方法拿走鱼。问他们合伙至少捕了多少条鱼? 10.出售金鱼 买卖提将养的一缸金鱼分五次出售系统上一次卖出全部的一半加二分之一条;第二次卖出余下的三分之一加三分之一条;第三次卖出余下的四分之一加四分之一条;第四次卖出余下的五分之一加五分之一条;最后卖出余下的11条。问原来的鱼缸中共有几条金鱼? 11.分数四则运算 对输入的两个分数进行+、-、*、/四则运算,输出分数结果。 算法分析如下: 对分数b/a与d/c,不管哪一种运算,其运算结果均为y/x形式。对结果y/x进行化简,约去分子分母的公因数:试用i(i=1,...,y)对y,x进行试商,若能同时整除y,x,则y,x同时约去公因数i,最后打印约简的分数。 12.平分七筐鱼 甲、乙、丙三位鱼夫出海打鱼,他们随船带了21只箩筐。当晚返航时,他们发现有七筐装满了鱼,还有七筐装了半筐鱼,另外七筐则是空的,由于他们没有秤,只好通过目测认为七个满筐鱼的重量是相等的,7个半筐鱼的重量是相等的。在不将鱼倒出来的前提下,怎样将鱼和筐平分为三份? *思考题 晏会上数学家出了一道难题:假定桌子上有三瓶啤酒,癣瓶子中的酒分给几个人喝,但喝各瓶酒的人数是不一样的。不过其中有一个人喝了每一瓶中的酒,且加起来刚好是一瓶,请问喝这三瓶酒的各有多少人? (答案:喝三瓶酒的人数分别是2人、3人和6人) 13.有限5位数 个位数为6且能被3整除的五位数共有多少? 14.除不尽的数 一个自然数被8除余1,所得的商被8除也余1,再将第二次的商被8除后余7,最后得到一个商为a。又知这个自然数被17除余4,所得的商被17除余15,最后得到一个商是a的2倍。求这个自然数。 15.一个奇异的三位数 一个自然数的七进制表达式是一个三位数,而这个自然数的九进制表示也是一个三位数,且这两个三位数的数码正好相反,求这个三位数。 16.位反序数 设N是一个四位数,它的9倍恰好是其反序数,求N。反序数就是将整数的数字倒过来形成的整数。例如:1234的反序数是4321。

C语言程序设计作业与思考题答案

《C语言程序设计》作业与思考题解答 作业一 1.合法的标识符: a12 A21 sum2 _fun C_program 不合法的标识符: f(x) $a21 21a while 2. main( ) { int i, j, s; i=2; j=3; s=i*j; printf(” %d×%d=%d”,i,j,s) } 作业二 1.指出下列哪些为C语言正确的整型(int)常量、实型(float) 常量、字符型(char)常量? 正确的整型( int) 常量:0 -325 128 03456 正确的实型( float) 常量: 0.0 2. 1.2e-3 5e2 正确的字符型( char) 常量: ‘b’‘\108’ ‘\n’ ‘8’

2.表示式的结果 (1) 1 (2) 0 (3) 0 (4) 9.5 (5) ‘A’ (6) 2 (7) 4.5 3. Y=sin(2*x)+(a+b)/(a*b)/(1+a/b)+a*a/2 4.设m为整数, 用逻辑表示式表示: 能同时被3与7整除或者被5除余2且小于100的整数。 m%3= =0 && m%7= =0 || m%5= =2 && m<100 作业三 1.华氏温度经过公式C=5/9(f-32)转换成摄氏温度。试编程并上机调试运行: 从键盘上输入华氏温度, 利用公式计算后输出摄氏温度( 要求: 保留一位小数; 记录调试过程中遇到的问题及解决方法) 。 #include main( ) { float f,c;

scanf(”%f”,&f); c=5.0/9*(f-32); printf(”c=%.1f”,c); } 2. 用IF语句: #include #include main( ) { float x,y; scanf(”%f”,&x); if (x<0) y=fabs(x); else if (x<10) y=x; else if (x<20) y=3-x/5; else if (x<40) y=3*x-10; else y=0; p rintf(”y=%f’,y); } 用switch 语句: #include

c语言课后题答案

1.编写程序,实现从键盘输入学生的3门课成绩,计算并输出其总成绩sum,平均成绩ave 和总成绩除3的余数rem。 程序如下: #include"stdio.h" main() { int score1,score2,score3,sum,ave,rem; printf("Please input 3 scores:"); scanf("%d%d%d",&score1,&score2,&score3); sum=score1+score2+score3; ave=sum/3; rem=sum%3; printf("sum=%d,ave=%d,rem=%d",sum,ave,rem); } 2.输入三角形的三边长,求三角形的面积。已知三角形的三边长求三角形的面识公式为: area= ) )( )( (c s b s a s s- - - ,其中a、b、c为三角形三边,s=(a+b+c)/2。 程序如下: #include"stdio.h" #include"math.h" main() { float s,a,b,c,area; printf("Please input a,b,c:"); scanf("%f%f%f",&a,&b,&c); s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c)); printf("area=%f",area); } 3.用格式控制符打印以下图形。

* *** ***** ******* 程序如下: #include"stdio.h" main() { printf("*\n"); printf("***\n"); printf("*****\n"); printf("*******"); } 4. 编程从键盘上输入一行字符,依次读入字符并同时显示在屏幕上。#include"stdio.h" main() { char ch; printf("please input string:"); do { scanf("%c",&ch); printf("%c",ch); }while(ch!=10); } 5.打印出如下图案: * *** ****** ********

c语言试题及答案

第1章C语言概述习题1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (2) 在C 语言中,每个语句必须以 D 结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (3) 标识符和关键字间,要用 C 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 (4) 用C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件 (5) 下列说法中正确的是( B )。 A. 由于C 源程序是高级语言程序,因此一定要在TC 软件中输入 B. 由C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行

D. 由于C 程序是高级语言程序,因此它由命令组成 (6) 下列说法中正确的是( A )。 A. C 语言程序由主函数和0 个或多个函数组成 B. C 语言程序由主程序和子程序组成 C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7) 下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2. 填空题 (1) C 语言只有37 个关键字和9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。 (3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。 (4) 在C 语言程序中允许出现的字符集是ASCII码字符集。

相关文档