‘壹’ 初学问几道c语言数组的练习题
/*1,将一个一位数组a[10]中的元素值按逆序重新存放.假定数组中原来元素顺序为:1,3,5,7,9,8,6,4,2,0,按逆序重新存放后元素的值位:0,2,4,6,8,9,7,5,3,1。要求:在程序中将数组初值初始化,输出逆序重新存放后元素的值。*/
#include "stdafx.h"
int main(int argc,char* argv[])
{
int a[10]={1,3,5,7,9,8,6,4,2,0};//初始化。
int b[10];
printf("顺序的数据:\n");
for(int j=0;j<10;j++)
{
printf("%d",a[j]);
printf(" ");
}
for(int i=0;i<10;i++)
{
b[10-1-i]=a[i];
}
printf("\n逆序后的数据:\n");
for(int n=0;n<10;n++)
{
printf("%d",b[n]);
printf(" ");
}
return 0;
}
/*2,有整型数组a[20],首先输入一组非0整数(少于20个)到该数组中,以输入0值为结束。编写4个函数分别求该数组中元素的1,正数个数,2,正数平均值,3,负数个数,4,负数平均值,最后在主函数中输入4个求出的值。提示:将数组定义为:int a[20],实际只用数组的前若干个元素。
*/
#include "stdafx.h"
int fun1(int *ar,int num)
{
int au=0;
for(int i=0;i<num;i++)
{
if(ar[i]>0)
{
au++;
}
}
printf("正数个数:%d\n",au);
return au;
}
int fun2(int *ar,int num)
{
int au=0;
for(int i=0;i<num;i++)
{
if(ar[i]>0)
{
au+=ar[i];
}
}
au=au/fun1(ar,num);
printf("正数平均值:%d\n",au);
return au;
}
int fun3(int *ar,int num)
{
int au=0;
for(int i=0;i<num;i++)
{
if(ar[i]<0)
{
au++;
}
}
printf("负数个数:%d\n",au);
return au;
}
int fun4(int *ar,int num)
{
int au=0;
for(int i=0;i<num;i++)
{
if(ar[i]<0)
{
au+=ar[i];
}
}
au=au/fun1(ar,num);
printf("负数平均值:%d\n",au);
return au;
}
int main(int argc,char* argv[])
{
int a[20];
int num,date;
printf("请输入数据:\n");
for(num=0;num<20;num++)
{
scanf("%d",&date);
if(date==0)
{
break;
}
a[num]=date;
}
fun2(a,num);
fun4(a,num);
return 0;
}
/*3,任意输入一个4位数,存入变量i,将该数的每一位上的数字,分解到整型数组a[]中,用选择法将a[]数组中的数排成升序,并输入a[]数组的内容。要求选择法排序在函数中完成。
如:int i,a[4];输入i=8362
分解后:a[0]=2,a[1]=6,a[2]=3,a[3]=8
排序后:a[0]=2,a[1]=3,a[2]=6,a[3]=8
运行时,输入8362
输出2368 */
#include "stdafx.h"
void fun(int *a,int num)
{
for(int i=0;i<num-1;i++)
for(int j=i+1;j<num;j++)
{
if(a[i]>a[j])
{
int date=a[i];
a[i]=a[j];
a[j]=date;
}
}
}
int main(int argc,char* argv[])
{
int i=0;
int a[4];
printf("请输入四位整数:\n");
scanf("%d",&i);
for(int s=1000,l=0;l<4;s/=10,l++)
{
a[l]=i/s;
i%=s;
}
fun(a,4);
for(int n=0;n<4;n++)
{
printf("%d",a[n]);
}
return 0;
}
,4,给定2维数组如下,求该数组2条对角线元素之和
a=3 6 4 6
8 3 1 3
4 7 1 2
2 9 5 3
要求:1,在主函数中实现:数组赋初值及求和结果的输出 */
#include "stdafx.h"
int main(int argc,char* argv[])
{
int a[4][4]={{3,6,4,6},{8,3,1,3},{4,7,1,2},{2,9,5,3}};
int num=0;
for(int i=0,j=0;i<4;i++,j++)
{
num+=a[i][j];
}
printf("第一对角线之和:",num);
printf("%d\n",num);
for(i=4-1,j=4-1;i>0;i--,j--)
{
num+=a[i][j];
}
printf("第二对角线之和:",num);
printf("%d\n",num);
return 0;
}
/*6,编写一个函数viod my_strcpy(char s1[],char s2[]),将s2中的字符串拷贝到数组s1中去。要求:
1,不允许使用C语言的库函数strcpy()
2,在主函数中输入2个字符串,调用函数my_strcpy()进行字符串拷贝,并在主函数中输入字符串s1,s2内容。
注意:应该将字符数组s1[]定义足够长,使之能存放连接后的字符串 */
#include "stdafx.h"
void str(char *str1,char *str2)
{
while(*str2)
{
*str1++=*str2++;
}
}
int main(int argc,char* argv[])
{
char st1[]="test str";
char st2[20]="";
str(st2,st1);
printf("%s\n",st2);
return 0;
}
/*7,输入2个字符串,将对应字母交叉组成第三个字符串,最后输入第三个字符串。例如输入的2个字符串分别是“abcd”和“1234”,则合并后的字符串是“a1b2c3d4”。若2个字符串的长度不等,则其中的一个字符串多余的部分放在结果字符串的尾部,如2个字符串分别是“banana”和“12”,则合并后的字符串是“b1a2nana”
要求:第一个字符串的第一个字母总是结果串的第一个字母。
*/
#include "stdafx.h"
void combinstr(char *str1,char *str2,char *str3)
{
for(;*str1||*str2;)
{
if(*str1)
{
*str3++=*str1++;
}
if(*str2)
{
*str3++=*str2++;
}
}
}
int main(int argc,char* argv[])
{
char st1[]="abcdefghi";
char st2[]="1234";
char st3[64]="";
combinstr(st1,st2,st3);
printf("%s\n",st3);
return 0;
}
只有第五个没有了,你想怎么示范?
算了随便弄个可以看效果的了:/*5,已知5个学生的3门成绩
COURSE1 COURSE2 COURSE3 AVER
STUD1 76 80 90
STUD2 90 65 77
STUD3 63 55 70
STUD4 90 92 97
STUD5 73 69 82
要求:1,求出并输入每个学生的平均成绩
2,求出并输入每门课的平均成绩
*/
#include "stdafx.h"
int main(int argc,char* argv[])
{
float stud[5][3]={{76,80,90},{90,65,77},{63,55,70},{90,92,97},{73,69,82}};
float num=0;
for(int i=0;i<5;i++)
{
for(int j=0;j<3;j++)
{
num+=stud[i][j];
}
num/=3;
printf("\n第%d个学生的平均成绩:\n",i+1);
printf("%f\n",num);
num=0;
}
for(i=0;i<3;i++)
{
for(int j=0;j<5;j++)
{
num+=stud[i][j];
}
num/=5;
printf("\n第%d科的平均成绩:\n",i+1);
printf("%f\n",num);
num=0;
}
return 0;
}
‘贰’ C语言基础题目练习(帮忙做一下呗 ,我做了 也不知道那里错了 ……所以需要答案帮我自己改正一下)谢谢啊
看来我真是闲的蛋疼了。。。
1.c 2d 3a 4b 没什么问题
5.应该是4+4+8=16,没有答案。
判断没问题。
函数
1.d
2要是说的是函数的声明的话就是c,定义的话明显都不对
3d 4a 5c 6a 7d 8c
最后一个不会
‘叁’ c语言初学者编程题
#include<stdio.h>
#include<math.h>
int main(void)
{
double a, b, c, area, x, y, z;
printf("please input the triange sides:");
scanf("%lf%lf%lf",&a,&b,&c);
x = pow(a,2) + pow(b,2) - pow(c,2);
y = pow(b,2) + pow(c,2) - pow(a,2);
z = pow(a,2) + pow(c,2) - pow(b,2);
if (x>0&&y>0&&z>0)
{
area = pow((a + b + c)*(b + c)*(a + c)*(a + b),0.5);
printf("%.2f", &area);
}
else
{
printf("data error");
}
return 0;
}
我将你的答案修改了下,可以运行成功了。你试试。
‘肆’ C语言初级测试题
做这些题有什么意思,直接动手编不就得了。
‘伍’ C语言基础的一道选择题,请大侠解释下,谢谢
似乎是D,i=j+1=k,k在这里是个左值,不能放在等号右边。
而C是可以正常运行的,已经通过测试了
左值,就是必须在等号左边的值,典型的就是,赋值的时候,变量必须在左边,例如
i=1不能写成1=i
就这个意思
‘陆’ 一道c语言的练习题
#include "stdio.h"
int Judge(const char *a,const char *b){
int s,n;
for(s=n=0;n<10;s+=a[n]==b[n++]);
return s;
}
int main(int argc,char *argv[]){
const char std[]="ABCDBBCBBC";
char ans[10],i,t;
printf("Please enter your answer(orderly sequence of ABCD)... ");
while(1){
if(scanf("%10s",ans)==1)
for(i=0;i<10;i++)
if(ans[i]!='A' && ans[i]!='B' && ans[i]!='C' && ans[i]!='D')
break;
if(i>=10)
break;
printf("Input error, redo: Please enter your answer(orderly sequence of ABCD)... ");
}
printf(" Correct answer: ");
for(t=Judge(std,ans),i=0;i<10;i++)
if(std[i]==ans[i])
printf("%2d",i+1);
printf(" TOTAL: %d ",10*t);
return 0;
}
代码格式和运行样例图片:
‘柒’ c语言测试题目及答案
B.因为在计算1/2时参与运算的分子分母都是整型,将会得到整型数据0而不是浮点型数据0.5,而其他选项在做除法时,参与计算的分子或分母至少一方是float型,可以得到正确结果
‘捌’ C语言测试题(很容易的!!)(在线等!!!)
1.10化成二进制形式为___
答案:1010
2.二进制的确111是十进制的___
答案:7
3.运行C语言的快捷是__加__
答案:ctrl + F5
4.程序结构有___和___和___
答案:顺序,分支,循环
5.一个int型数据在内存中占__个字节,一个float型数据在内存中占__个字节
答案:2 4
6.编写程序输出
******************
very good
******************
答案:
#include <stdio.h>
int main()
{
printf("******************\nvery good\n******************\n");
return 0;
}
7.编写程序输出圆的半径,输出圆的面积
答案:
#include<stdio.h>
int main()
{
float r,s;
scanf("%f",&r);
printf("%f\n",3.14*r*r);
return 0;
}
‘玖’ C语言考试题
//word编辑,大小写可能有问题
一、填空题
1、一个C语言程序的语句至少应包含一个__函数____。
2、C语言源程序文件的扩展名是__ .C ____,经过编译、连接后,生成文件的扩展名是__编译后为.obj 连接后为.exe ____。
3、结构化程序由 顺序 、___选择___和___循环___三种基本结构组成。
4、C语言的执行是从__main()函数____开始执行的。
5、C源程序的语句分隔符是___;___。
6、在C语言中,用关键字__float____定义单精度实型变量。
7、表达式S=12应当读做“__把12赋值给变量S____”。
8、C语言源程序的基本单位是___函数___。
9、设int x=9,y=8;表达式x-=y+1的结果是___0___。
10、若a为整型变量,a=12,则表达式:a * =2+3的值___60___。
11、调用C语言对输入输出处理的库函数时,在# include命令行中应包含的头文件是__stdio.h___。
12、表达式9%5的结果是_4____。
13、若a为整型变量,a=12,则表达式:a+=4的值___16___。
14、在C语言中,要求运算数必须是整型的运算符是___%___。
15、在C语言中,用___非0___表示逻辑“真”值。
16、表达式10/3的结果是__3____。
17、通常一个字节包含___8___个二进制位。
18、 假设所有变量均为整型,a=2,b=5,b++则表达式a+b的值是___8___。
19、在C语言中,最基本的数据类型只有四种,它们分别是:___int___、___char___、___float___和double。
20、一个C程序有且仅有一个__main()____函数。
21、若a为整型变量,a=12,则表达式:a-=2的值__10____。
22、在C语言中,有三种逻辑运算符,它们分别是:___!___、___&&___、___||___。
23、在C语言中,字符输入函数和字符输出函数分别是:__getchar()____和___putchar()___。
24、C程序开发的四个步骤是___编辑___、___编译___、___链接___和执行。
25、C程序的结构分别是:顺序结构、__选择结构____、__循环结构____。
26、if语句中的表达式可以是关系表达式、__逻辑表达式____、___条件表达式___。
27、__?:____是C语言中惟一一个三元运算符。
28、C语言提供的预处理命令主要包括如下三种:宏定义、__文件包含____、___条件编译___。
二、阅读程序,写出下列程序运行结果。
1、2
2、K
3、a 97
4、无结果
三、编写程序
1、编写一个C程序,输入a、b、c 3个数,输出其中最大的数。
#include<stdio.h>
Void main()
{
Int a,b,c;
Printf("请输入三个数");
Scanf(%d%d%d,&a,&b,&c);
If(a<b)
A=b;
If(a<c)
A=c;
Printf("最大的数:%d",a);
}
求1—50的之和。
#include<stdio.h>
Void mian()
{
Int sum=0,i;
For(i=1;i<=50;i++)
Sum+=i;
Printf("1-50之和为:%d",sum);
}
从键盘输入一个大写字母,要求改用小写字母输出。
#include<stdio.h>
Void mian()
{
Char c;
Printf("请输入一个字母");
Scanf("%c".&c);
Printf("它的小写字母为%c",c+32);
}
利用while语句,计算1+1/2+1/4+…+1/100的值,并显示出来。
#include<stdio.h>
Void mian()
{
Float sum=0,temp;
Int i =1;
While(i<=100)
{
Temp=1/i;
Sum+=temp;
I++
}
Printf("结果为%d",sum);
}
输入两个整数,输出其中的大数。
#include<stdio.h>
Void mian()
{
Int a,b;
Printf("请输入两个数");
Scanf("%d%d".&a,&b);
Printf("大数是:%d"a>b?a:b);
}
6、利用while语句,计算1+1/3+1/5+…+1/99的值,并显示出来。
#include<stdio.h>
Void mian()
{
Int i =1;
Float sum=0,temp=0;
While(i<=99)
{
Temp =1/i;
Sum+=temp;
I=i+2;
}
Printf("结果为: %f",sum),
}
‘拾’ 一道很简单的C语言入门练习题,望高手指点
三道题是考优先级和结合方向的问题:
(1)先做加法,(a+a)=24,但是a=12不变;然后a/=24,a=0.5,因为a是整型变量,故答案为0
(2)先做括号里的(n%=2)=1;然后a%=1,答案是0
(3)一般编译系统(像TuborC)的复合赋值运算符的结合性是从右至左:先a*=a,得a=144;然后a-=a得a=0;最后a+=a,得a=0