您的位置:

c语言题目解说,c语言初学者题目

本文目录一览:

c语言题目(详解)

第一题:

1 2 9

3 4 8

5 6 7

对角线加和为30=1+4+7+5+9+4

第二题:

由于if(b%3 != 0)break;表示如果b不能整除3则结束循环,所以b=2,和b=3情况不存在。

m++;永远不会被执行,故结果为0。

急求一道C语言题的讲解

void main()

{

int i=10,j=1,atob=0,btoa=0; atob是陌生人给富人的钱数,单位:万元

btoa是富人给陌生人的钱数,单位分

int t;

for (int k=1;k=30;k++) 从第一天到第30天

{

atob+=10; 每天陌生人给富人10万

if (k==1) 如果是第一天

t=1; 富人给陌生人1分

else 如果不是第一天

t=2*t; 富人给的钱是前一天的两倍

btoa+=t; 加到总数里面

}

cout"穷人给富人"atob"万元"endl; 输出陌生人给富人的钱数

cout"富人给穷人"btoa"分,折合"btoa/1000000"万元"endl;

输出富人给陌生人的钱数,主要,单位从分变成万元,要除以1000000

}

简单的c语言题目解释,求每句的作用

这个程序的作用是把输入的十个数中最大的与第一个交换,最小的与最后一个交换,然后输出排序结果。

#include stdio.h

//预编译,载入头文件

void Deal(int *p)

{

int i,m;

int max,min;

//定义需要用到的局部变量

max=min=0;

for(i=0;i10;i++)

{

if(*(p+i)*(p+max)) max=i;

if(*(p+i)*(p+min)) min=i;

}

//找出最大和最小的数在数组中的编号

m=p[0]; p[0]=p[max]; p[max]=m;

m=p[9]; p[9]=p[min]; p[min]=m;

}

//将最大的与第一个交换,最小的与最后一个交换

void Show(int *p)

{

int i=0;

printf("交换后结果如下:\n");

while(i10)

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

printf("\n");

}

//将其他函数写在主函数前可避免在主函数中声明

void main()

{

int data[10];

int i=0;

printf("请输入十个数:\n");

while(i10)

scanf("%d",data+i++);

Deal(data);

//用指针传递数组

Show(data);

}

C语言 选择题及其详细解释(最好能对每一个结果进行分析)

第一题应该选D,ABC三个选项均是如果a非零,则执行语句s1,否则执行语句s2。第二题选B,因为a=1,在switch(b)的循环中输出**0**,之后break仅仅跳出了swith(b)而没有跳出switch(a),因此程序往下执行,从而有输出**2**因此输出为**0****2**选B

求下列C语言题目详解

1。13个元素,hello\nworld\n这是12个元素,最后字符串结束标志是'\0',所以又13个

2. 首先int *p =a[0]+1 ,这聚会等价于p指向了a[1],即p= a[1],所以*p= a[1] = 3

3.首先8非0,所以!8=0,那么!!8=1

4.答案是15(绝对是15!!),应为define是简单的文本替换

所以10*MIN(10,15)等价于

10*1015?10*10 : 15

所以是15

5.a=-264,

a+=a-=a*a等价于

1).a=a-a*a = 12-12*12= -132;

2).a= a+a = -132+(-132) = -264

6.首先算的是54?3:2 值是3,所以变为87?6:3,因为87所以值为6

求解C语言题目,最好有解释,谢谢:

1.*p1和*p2都是指向float类型的指针。它们的值只能是地址。

A B C 中p1或p2的值都是地址,只有D中a[0]+1结果为float类型的数字,不是地址,所以应该选D

2.A 错误,函数的返回值又函数自身定义决定

B正确

C 错误 main函数可以放在程序的后面,前面可以放全局变量和函数等

D 错误 C语言程序总是从main函数开始执行