当前位置:首页 » 编程语言 » c语言程序题及思考
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言程序题及思考

发布时间: 2022-10-11 09:43:35

c语言 程序分析题 求详解

这个程序应该是把
十进制数
转换成
二进制数
输出
#include
//
头文件
void
main()
{
int
a,b[10],c,i=0;
//
a存储待转换的十进制数,b[10]存储转换后的二进制位,
//
c
是存储
余数

printf("输入一个整数\n");
scanf("%d",&a);
//
输入需转换的十进制数
while(a!=0)
//
只要a不为零,就继续转换
{
c=a%2;
//
把a除以2
的余数赋值给c
a=a/2;
//
把商存入a进行下一次循环
b[i]=c;
//
把余数存到数组中作为二进制中的一位
i++;
}
for(;i>0;i--)
printf("%d",
b[i-1]);
//反向输出余数,即得到二进制
例如输入4
因为4
!=
0
4
/
2
=
2((商=a)...........0(余数=c=b[0])
因为2
!=
0
2
/
2
=
1((商=a)...........0(余数=c=b[1])
因为1
!=
0
1
/
2
=
0((商=a)...........1(余数=c=b[2])
因为
0
=
0
结束循环输出
b[2]
b[1]
b[0]

100,也就是二进制的
4

Ⅱ c语言编程,请问这题如何思考

A while(*t++);将t移到字符串s的末尾, t--; 去掉'\0', t-s 就是字符串长度

Ⅲ c语言。。12题。写程序。。后面思考题,写答案

1 编程
1.1 打印出以下图案
*
* * *
* * * * *
* * * * * * *
* * * * *
* * *
*

#include<stdio.h>
intmain()
{
inti=0,j;
for(;i<3;i++){
j=0;
for(;j<i*2+1;j++)printf("*");
printf(" ");
}
for(;i>=0;i--){
j=0;
for(;j<i*2+1;j++)printf("*");
printf(" ");
}
return0
}

1.2编写程序实现输入整数n,输出如下所示由数字组成的菱形。(图中n=5)

1
1 2 1
1 2 3 2 1
1 2 3 4 3 2 1
1 2 3 4 5 4 3 2 1
1 2 3 4 3 2 1
1 2 3 2 1
1 2 1
1

#include<stdio.h>
intmain()
{
inti=0,j,n,k;
scanf("%d",&n);//输入
for(;i<n-1;i++){
j=0;k=1;
for(;j<=n+i;j++){
if(j<n-i)
printf("");
elseif(j<n)
{
printf("%d",k++);

}
else{
printf("%d",k--);
}
}
printf(" ");
}
for(;i>=0;i--){
j=0;k=1;
for(;j<=n+i;j++){
if(j<n-i)
printf("");
elseif(j<n)
{
printf("%d",k++);
}
else{
printf("%d",k--);
}
}
printf(" ");
}
return0;
}

2 思考题
1.以下不是死循环的语句是 。
A)for (y=1,x=9;x>++y ; x=i++) i=x ;
B)for ( ; ; x++=i ) ;
C)while (1) { x++ ; }
D)for (i=10 ; ; i--) sum+=i ;

A,思路:排除法;


2. 下面程序段的运行结果是 。
x=y=0;
while (x<15) y++,x+=++y ;
printf(“%d,%d”,y,x);
A)20,7 B)6,12 C)20,8 D)8,20

D;运行一下就知道了


3. 以下for循环的执行次数是 。
for (x=0,y=0; (y=123) && (x<4) ; x++) ;
A)无限循环 B)循环次数不定 C)4次 D)3次

C;


4.写出下面程序运行的结果。
main ( )
{ int i,b,k=0 ;
for (i=1; i<=5 ; i++) {
b=i%2;
while (b--==0) k++ ;
}
printf(“%d,%d”,k,b);
}

答:2,0;


5. 写出下面程序运行的结果。
main ( )
{ int a,b;
for (a=1,b=1 ; a<=100 ; a++) {
if (b>=20) break;
if (b%3==1) { b+=3 ; continue ; }
b-=5;
}
printf(“%d ”,a);
}

答:8


6. 写出下面程序运行的结果。
main ( )
{ int k=1,n=263 ;
do { k*= n%10 ; n/=10 ; } while (n) ;
printf(“%d ”,k);
}

答:36

Ⅳ c语言程序题,给出答案及思考过程

首先,程序有点小错误,改成这样就能执行了:
#include<stdio.h>
int fun(char p[][10],char ch)
{int i,n=0;
for(i=0;i<7;i++)
if(p[i][0]==ch)
n++;
return n;}
void main()
{char str[][10]={"Mon","Tue","Wed","Thu","Fri","Sat","Sun"};
printf("The result is:\n");
printf("%3d\n",fun(str,'T'));
printf("%3d\n",fun(str,'S'));
printf("%3d\n",fun(str,'F'));
printf("%3d\n",fun(str,'W'));
printf("%3d\n",fun(str,'B'));}

然后,运行结果如下:
The result is:
2
2
1
1
0

最后,我们来分析一下思路,
int fun(char p[][10],char ch)这个函数(楼主多了一个‘)’)
需要两个参数,一个是二维数组,一个是一个char变量,
它是用来判断该char变量在前面这个二维数组中作为开头的次数,
也就是说,对于printf("%3d\n",fun(str,'T'));这句话,就是用来判断T在str这个二维数组中作为开头的次数,显然,答案是2
以此类推

Ⅳ C语言程序设计思考题。救急!!!!

  1. 如何实验验证实参数组元素和形参数组元素共享同一内存?

可以将实参数组元素的内存地址和形参数组元素的内存地址比较,相同则为同以内存

比如: int x ; x = &FC[0];可以得到第一个元素的内存地址。


2. Average函数内查找最大值和最小值时需要更新pmax和pmin的值还是*pmax和*pmin的值?为什么?这两种做法有何区别、对main的影响如何


两者都可以;因为*pmax和*pmin是数值,pmax和pmin只是指针,指向数据的地址。两者修改都可以达到效果。对main的没有影响!

Ⅵ 计算机c语言编程思考题

  1. 根据IEEE754标准,阶码:float=8-bit,double=11-bit。尾数:float:23-bit,double=52-bit。

  2. 与具体的体系结构有关,个人PC常用的X86体系是小端模式。MIPS大小端都支持,可以自行配置。

  3. 字符串数据类型占用一块连续的内存空间,首地址对应第一个字符的地址。可以用(基址+偏移量)的方式访问字符串里的字符。

  4. 这个与具体的标准和编译器有关,具体的可以用sizeof关键字计算。例如,在C17标准下的gcc编译器中,short int占2字节,int占4字节,long int占4字节。

  5. 数据都是以二进制的形式存储的。计算机不管是中文还是英文,它看到的只是二进制串,至于区分中文还是英文,这就是解析存储的二进制串了。查表就行了,这个表就是字符集。每个字符都规定了一个整数与之对应,查表就能区分出是中文还是英文,前提是在同一个字符集的环境下,因为同一个字符在不同的字符集里可能会有不同的整数与之对应。

  6. 可以加我的群 9362之后是50734,代做课程设计和毕业论文。

Ⅶ c语言程序分析题

f中第一个参数是传值,编译器会复制一份a传递给函数f,复制的临时变量与a是两个不同的变量,它们的地址不同,此后f中的x与main中的变量a不再有任务关联
f的第二个参数是传地值,f中的y与b的地址在内存中是相同的,操作的是同一个地址

Ⅷ c语言程序设计题,帮忙解决一下思考题,急!!!!

1、在定义二维数组时就已经给数组分配好了地址,不需要初始化也可以显示地址

2、根据显示地址可以看出每个元素占4字节

Ⅸ C语言程序设计程序编写题目应该怎么怎样去解,一般的分析方法是什么,如下题,请写出结果及分析过程,谢谢

这个其实也没什么好去分析的,按照题目的要求去做就可以了。
比如说这个题目,题干已经很明确的告诉你要去你写一个函数完成两个字符串的连接(不使用库函数strcat),即把p2所指的字符串连接到p1所指的字符串后。

那么你按要求写就好了
给个例子
void fun(char p1[], char p2[])
{
int i=0,j=0;
while(p1[i]!='\0')
{
i++;
}/*因为是p2所指的字符串连接到p1所指的字符串后。所以找到p1字符串的结尾*/
while(p2[j]!='\0')
{
p1[i]=p2[j];
i++;
j++;
}/*从p1字符串结尾开始依次用p2的字符填充直到p2中的内容为'\0'*/

p1[i]='\0';
/*要注意给p1[]字符串结束标志,这个地方很容易忘记。因为当p2[j]是'\0'时已经退出循环了,所以p1[]是没有结束标志的,可能会导致程序崩溃哦。*/
}

2级C是很基础的 考来考去就那么几个上机题 说实话 你那几种题型一样写几个就OK了 呵呵 但是要细心 2级C考的就是你细不细心的问题 加油 祝你考试顺利