建材秒知道
登录
建材号 > 设计 > 正文

c语言程序设计习题

听话的鸵鸟
忧心的钢铁侠
2023-01-01 10:08:06

c语言程序设计习题

最佳答案
笑点低的啤酒
敏感的大炮
2025-12-05 11:54:23

您好,这是因为'\184'两边有单引号。

在输出字符时,可以有四种写法:

(1)printf("%c", 184)     

(2)printf("%c", 0x184)   

(3)printf("%c", '\174')  

(4)printf("%c", 'A')     

对照这几种写法,你可以看出数字前面加了反斜杠,又用单引号引起来时,就是代表里面写的是一个八进制数,这是一种约定的书写方式。

题目中的8显然超过了八进制的表示范围,所以是八进制的错误表达形式。

您的采纳是我们的动力(⊙v⊙)

最新回答
玩命的香氛
贤惠的芝麻
2025-12-05 11:54:23

1、编写程序:输入一矩形的长和宽,计算该矩形的面积。

#include <stdio.h>

int main() {

int a,b,s

printf("输入矩形的长和宽:")

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

s = a*b

printf("面积为:%d\n",s)

return 0

}

2、编程:输入求的半径R ,计算并输出球的体积。

#include <stdio.h>

#define pi 3.14159265358979

int main() {

int r,s

printf("输入圆的半径:")

scanf("%d",&r)

s = pi*r*r

printf("面积为:%lf\n",s)

return 0

}

3、编程:输入三个数,求出这三个数的和以及平均值,并在屏幕上输出。

#include <stdio.h>

int main() {

int a,b,c,sum

float avr

printf("输入三个整数:")

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

sum = a + b + c

avr = sum/3.0

printf("面积为:%d,平均值为%.2lf\n",sum,avr)

return 0

}

4、编程:输入一个三位整数x(999=>x>=100),将其分解出百位、十位、各位,并求出各位之和以及各位之积

#include <stdio.h>

int main() {

int num,gw,sw,bw,sum,mult

printf("输入一个三位整数:")

scanf("%d",&num)

gw = num%10

num /= 10

sw = (num)%10

num /= 10

bw = (num)%10

sum = bw + sw + ge

mult = bw * sw * gw

printf("和为:%d,积为:%d\n",sum,mult)

return 0

}

5、编程:已知三角形的三边a=3,b=4,c=5,求其面积s 。(提示:假设有一个三角形,边长分别为a 、b 、c ,

三角形的面积S 可由以下公式求得: S=sqrt(p(p-a)(p-b)(p-c)),而公式里的p 为半周长: p=(a+b+c)/2。

#include <stdio.h>

#include <math.h> //for sqrt()

int main() {

float a,b,c

double p,s

printf("输入三角形的三条边:")

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

p = (a + b + c)/2

s = sqrt(p*(p - a)*(p - b)*(p - c))

printf("%.2lf\n",s)

return 0

}

6、编写一个C 程序, 输出以下信息:

**************************

Very Good!

**************************

#include <stdio.h>

int main() {

printf("**************************\n")

printf("Very Good!\n")

printf("**************************\n")

return 0

}

7、编写一个程序, 输入a 、b 、c 三个值, 输出其中最大值.

#include <stdio.h>

int main() {

int a,b,c,m

printf("输入三个整数:")

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

m = a

if(b > m) m = b

if(c > m) m = c

printf("最大值为:%d\n",m)

return 0

}

8、写出程序运行的结果:

main() {

int i,j,m,n

i = 8

j = 10

m = ++i//执行本句后,i是9,m是9

n = j++//执行完本句后,n是10,j是11

printf("%d,%d,%d,%d",i,j,m,n)//输出为9,11,9,10

}

9、写出程序运行的结果:

main() {

char a,b,c1,c2

float x,y

a = 3

b = 7

x = 8.5

y = 71.82

c1 = 'A' 

c2 = 'a'

printf("a = %d b = %d/n",a,b)// a = 3 b = 7

printf("x = %f y = %f",x,y)  // x = 8.5 y = 71.820000

printf("c1 = %c,c2 = %c",c1,c2)// c1 = 'A' c2 = 'a'

}

10、求ax2+bx+c=0方程的根,a,b,c 由键盘输入,假设b2-4ac>0。

#include <stdio.h>

#include <math.h> //for sqrt()

int main() {

float a,b,c,delta

float x1,x2

printf("输入二次函数系数:")

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

delta = b * b - 4 * a *c

x1 = (-b + sqrt(delta))/2/a

x2 = (-b - sqrt(delta))/2/a

printf("函数的根为:x1 = %.2lf,x2 = %.2lf\n",x1,x2)

return 0

}

寒冷的老师
土豪的小松鼠
2025-12-05 11:54:23
一、选择题

1、C语言规定,在一个源程序中,main()函数的位置(C )。

A) 必须在最开始 B)必须在最后

C) 可以任意 D) 必须在系统调用的库函数后面

这题你死记就行,你看看这个

任何一个C++程序都必须定义一个main函数,它的返回类型总是int类型。这个函数由操作系统来调用,在main函

数执行完以后,程序也就终止了。 main也可以使用return向操作系统返回一个值,使用操作系统的命令可以检测

main的返回值。一般约定在main返回0时,表示程序运行过程中没有出现错误,其它非零值表示程序出现异常情况。

若没有为main指定返回值,这样返回值是任意的。

2、若x和y都是int 型变量,x=100,y=200,且有以下程序段,printf(“%d”,(x,y))则其输出结果是( A)。

A) 200 B) 100 C) 100 200 D) 输出不确定值

(x,y)这是个逗号表达式,表达式的值为最后一个逗号后面表达式的值,因为前面有一个%d,所以输出 的是y的

3、合法的C语法字符常量是(C )。

A) “A” B) 65 C) ‘\t’ D) A

字符都是由两个单引号括起来的,死记,a)为字符串

4、表达式“3!=4”的值是(A )。

A) 1 B) 0 C) T D) F

!=是c语言的逻辑运算符,3!=4为真,多以得1, 3=4为假,值为0

5、 int a=1,b=2,c=3,d=4,执行下列程序后x的值为( C)。

if(a>b) x=1else if (c>d) x=2else x=3

A) 1 B) 2 C) 3 D) 4

如果a>b,1>2为假,不执行x=1,执行else if(c>d),判断:3>4为假,不执行x=2,执行=3,完

6、以下程序的输出结果是(D)。

Int x=10,y=3,zprintf(“%d\n”,z=(x%y,x/y))

A)1 B) 0 C) 4 D) 3

逗号表达式,x%y,10%3,商3余1,模取余数1,x/y,10/3,商3余1,除法取商3,逗号表达式,表达式的值为最后一

个逗号后面表达式的值

7、为表示x≥y≥z,应使用C语言表达式(A )。

A) (x>=y)&&(y>=z) B) (x>=y) AND (y>=z)

C) (x>=y>=z) D) (x>=y) &(y>=z)

关系运算符,x>=y与y>=z必须是同时成立的,因此要用逻辑运算符&&,&&与的意思

8、合法的数组定义是( a )。

A) int a[ ]=”string”B) int a[5]={0,1,2,3,4,5}

C) char a=”string”D) char a[ ]={“01234”}

a不指定数组长度定义,正确

b数组长度为5,就是里面有5个数组元素,多了一个数组元素

c定义a不是数组而是一个变量,素组应该是a[]

d是错的,字符串是这样定义的:char a[ ]={'0','1','2','3','4','\0'}

[4]中数字是数组长度,说明里面有几个元素

9、设x和y均为int型变量,则语句“x+=yy=x-yx-=y;”的功能是(D)。

A) 把x和y按从小到大排列 B)把x和y按从大到小排列

C)无确定结果 D)交换x和y中的值

x+=y等同于x=x+y,把x加y的值赋给x,x现在存的是x与y的和

y=x-y把x减y的值赋给y,x现在存的是x与y的和 (x+y)-y=x,把x的值给y,y存x的值

x-=y等同于x=x-y,把x减y的值赋给x,(x+y)-y=x,现在的后面的y存的是x的值,做完后x里存的值是y,完成交换

10、若已定义x和y为double类型,则表达式“x=1,y=x+3/2”的值是(C)。

A) 1 B)2 C) 2.0 D) 1.0

逗号表达式,先让x=1在算y=x+3/2,得2,因为是double类型,所以有小数点

11、下列条件语句中,功能与其他语句不同的是 (D)

A) if(a) printf("%d\n",x)else printf("%d\n",y)

B) if(a==0) printf("%d\n",y)else printf("%d\n",x)

C) if (a!=0) printf("%d\n",x)else printf("%d\n",y)

D) if(a==0) printf("%d\n",x)else printf("%d\n",y)

a 如果a为真输出x,如果a为假输出y

b 如果a==0,也就是为假,输出y,a为真输出x,同a

c 如果a!=0为真,输出x,a为假输出y同上

d 如果a为假输出x,如果a为真输出y,与以上的都不同

12、以下能正确定义二维数组的是 (C)

A) int a[][3]B) int a[][3]=2{2*3}

C) int a[][3]={0}D) int a[2][3]={{1},{2},{3,4}}

a 没有给数组赋初值

b {}里不能有*

c 正确,记住第一个[]中可以为空,第二个[]不能为空,死记

d a[2][3] 的意思是有两个一维数组,每个一维数组里有3个元素,{{1},{2},{3,4}}她的意思是三个数组,{}中的每一个{}代表一个数组,里边的数为数组元素

13、用C语言编写的代码程序 (B)

A)可立即执行 B)是一个源程序

C)经过编译即可执行 D)经过编译解释才能执行

死记

沉静的羊
糊涂的人生
2025-12-05 11:54:23
题目1

#include "stdio.h"

void main(void)

{

int n=5,m=10,i=1

long sum=1

for(i<=ni++)

{

sum*=i

}

printf("\n5!=%d",sum)

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

{

sum*=i

}

printf("\n10!=%d",sum)

}

题目2

#include "stdio.h"

#include "string.h"

struct Student

{

char s_Name[25]

long n_Code

int n_English

int n_Math

int n_Computer

}student_1,student_2

void main(void)

{

printf("\nStudent1:\nName:")

scanf("%s",&student_1.s_Name)

printf("StudentNum:")

scanf("%d",&student_1.n_Code)

printf("English Score:")

scanf("%d",&student_1.n_English)

printf("Math Score:")

scanf("%d",&student_1.n_Math)

printf("Computer Score:")

scanf("%d",&student_1.n_Computer)

printf("\nStudent2:\nName:")

scanf("%s",&student_2.s_Name)

printf("StudentNum:")

scanf("%d",&student_2.n_Code)

printf("English Score:")

scanf("%d",&student_2.n_English)

printf("Math Score:")

scanf("%d",&student_2.n_Math)

printf("Computer Score:")

scanf("%d",&student_2.n_Computer)

printf("\nStudent1:\nName:%s\nStudent Number:%d\nEnglish Score:%d\nMath Score:%d\nComputer Score:%d\n",student_1.s_Name,student_1.n_Code,student_1.n_English,student_1.n_Math,student_1.n_Computer)

printf("\nStudent2:\nName:%s\nStudent Number:%d\nEnglish Score:%d\nMath Score:%d\nComputer Score:%d\n",student_2.s_Name,student_2.n_Code,student_2.n_English,student_2.n_Math,student_2.n_Computer)

}

孤独的大雁
孝顺的大地
2025-12-05 11:54:23
1.第一题的程序如下,答案是2.500000。

#include <stdio.h>

void main()

{int a=7

float x=2.5,y=4.7

float s

s=x+a%3*(int)(x+y)%2/4

printf("%f",s)

}

2.第二题的整个程序如下:

#include <stdio.h>

void main()

{int a

float f

printf("Input number:")

scanf("%f,%d",&f,&a)

printf("f=%f,a= %d\n" ,f,a)

}

3.答案:2 1

4.答案:1

5.答案:2

6.你的程序有些小错误,应该如下:答案为 :-1

#include <stdio.h>

void main()

{int a=100,x =10,y=20,okl=5,ok2=0

if (x<y)

if(y!=10)

if(!okl) a=1

else

if(ok2) a=10

a=-1

printf( "%d\n",a )

}

7.答案:2

8.答案:0

9.答案:1

10.答案:a=2,b=1,c=1

舒适的店员
时尚的毛巾
2025-12-05 11:54:23
1. 在C程序中,只能用于整型变量的运算符是___ 求余(%)___。

2. 在C语言中,char类型变量占 2 个字节。

3. 若a已定义为double类型,请写出从键盘给a输入数据的语句 scanf("%lf",&a) 。

4. 为使以下程序能正确运行,请填空。

#include<stdio.h>

#include<math.h>

main()

{ double x, y

scanf("%lf%lf",&x,&y)

printf("y=%f\n", pow(x,y))}

5. 以下程序执行后的输出结果是 -2。

main()

{ int m=3,n=4,x

x=-m++

x=x+8/++n

printf("%d\n",x) }

6. 以下程序的输出结果是 10 20 0 。

main()

{ int a,b,c

a=10b=20c=(a%b<1)||(a/b>1)

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

7. 以下程序中调用fun函数,对主函数x和y中的值进行对调。请填空。

void fun( double *a, double *b)

{ double x

x=*a *a=*b *b=x }

main()

{ double x,y

printf(“Enter x, y : “)scanf(“%lf%lf”,&x,&y)

fun( x,y)

printf(“x=%f y=%f\n”,x,y )}

8. C语言规定:字符串以 '\0' 作为结束标志。

9. 以下程序的输出结果是3。

long fun( int n)

{ long t

if ( n==1 || n==2 ) t=1

else t=fun(n-1) + fun(n-2)

return ( t )

}

main( )

{ printf(“%d\n”,fun(4) )}

10. 设有定义:

struct date

{ int year, month, day } d1

请写出利用输入语句,为变量d1中的year成员从键盘输入数值的语句 scanf ("%d",&(d1.year)) 。

自信的果汁
洁净的自行车
2025-12-05 11:54:23
1. D. 顺序、选择、循环

2. C. 在C程序中,程序的执行总是从本程序的main函数开始

3. C. 主函数

4. D. (c>= 'a')&&(c<= 'z')

5. A. 12353514

忧郁的含羞草
单身的魔镜
2025-12-05 11:54:23
1. C. 在C程序中,程序的执行总是从本程序的main函数开始

2. B. L-1

3. D. 顺序、选择、循环

4. A. 12353514

5. C. 0

6. B. scanf("%d%s",&b, c)

7. A. !

8. B. 5

9. C. 1 -2

10. B. *pa=*pb

明亮的小兔子
冷酷的黑猫
2025-12-05 11:54:23
1.代码文件 :包含指令不仅仅限于.h头文件,可以包含任何编译器能识别的C/C++代码文件,包括.c,.hpp,.cpp,.hxx,.cxx等,甚至.txt,.abc等等都可以.

2. 赋值

3. x++

4. p[4] 因为sizeof(int) 的值为4,实际上是定义了一个整形数组

5. if

6. DataType

7. 实参变量

8. weirong18

9. float

10. 33 因为++运算符优先级高于* ,故先计算++y,然后将y的值与3相乘得到33

11. (1) ch>='a' &&ch<='z'

(2) (x==0 || x==1) &&(y>=1.0 &&y<=6.0)

12. (1) int array[10] = {9,4,7,49,32,-5}

(2)0 到 9

(3)scanf("%d",&array[1])

(4)array[0] = 39

(5)array[0] = array[5]+array[3]

风趣的红酒
糊涂的黄豆
2025-12-05 11:54:23

1.

#include "stdio.h"

void input(int d[][100],int m)

{

 int r,c

 for(r=0r<mr++)

 {

  printf("输入第%d行%d个数:",r+1,m)

  for(c=0c<mc++)

  {

   scanf("%d",&d[r][c])

  }

 }

}

void fun(int d[][100],int m,int *r,int *c)

{

 int i,j

 *r=0*c=0

 for(i=0i<mi++)

 {

  for(j=0j<mj++)

  {

   if(d[*r][*c]<d[i][j])

   {

    *r=i*c=j

   }

  }

 }

}

int main()

{

 int d[100][100]

 int m

 int i,j,r,c

 printf("输入阶数:")

 scanf("%d",&m)

 input(d,m)

 fun(d,m,&r,&c)

 printf("最大元素位于(%d,%d),值为:%d\n",r+1,c+1,d[r][c])

}

2.

#include "stdio.h"

void  fun(char *p, char *q)

{

 int i,j

 i=0j=0

 while(*(p+i)!='\0')

 {

  *(q+j)=*(p+i)

  if((i+1)%3==0)

  {

   j+=1

   *(q+j)=' '

  }

  i++

  j++

 }

 *(q+j)='\0'

}

int main()

{

 FILE *fp1,*fp2

 char p[100],q[100]

 if((fp1=fopen("form.txt","r"))==NULL)

  printf("form.txt")

 if((fp2=fopen("to.txt","w"))==NULL)

  printf("to.txt")

 fscanf(fp1,"%s",p)

 fun(p,q)

 fprintf(fp2,"%s",q)

}