㈠ 大一c语言问题(C语言程序设计 李凤霞 第二版)
1. D, 字节对齐 char 也是2
2. A B的第三个参数错;C常量不能做为左值;D不知道了
3. A
4. A
5. C
6. D
7. C
8. D
9. C
10.B
11.C
12.B 用追加方式不可读。
13.B
㈡ 大一C语言课程设计题目, 求急! 加100分。
#include<stdio.h>
#include<string.h>
#define N 100
typedef struct AA
{
char name[20];
char phone[12];
char e_mail[30];
char relation[20];
}AA;
/*1。输入新联系人2。删除指定的联系人(输入姓名,若找掉则删除该联系人的信息)
3。根据输入的与本人关系,显示联系信息4。显示所有联系人的信息设计菜单*/
int input__(AA * s)
{
int len = 0,i = 0,n;
printf("请输入要添加的联系人个数,上限为%d个 ",N);
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("请依次输入第%d联系人的姓名、电话、邮箱以及与本人的关系(中间使用空格隔开即可): ",i);
scanf("%s%s%s%s",s[i].name,s[i].phone,s[i].e_mail,s[i].relation);
}
return n;
}
void delete__(AA *s,int *n)
{
int i = 0,j = 0,status = 0;
char ca[20] = "";
printf("请输入要删除的联系人的姓名 ");
scanf("%s",ca);
for(i=0;i<*n;i++)
{
if(!strcmp(ca,s[i].name))
{
*n = *n-1;
status = 1;
for(j=i;j<*n;j++)
{
s[j] = s[j+1];
}
break;
}
}
if(status == 0)
printf("没有找到要删除的人的信息 ");
else
printf("删除成功 ");
}
void show__relation(AA *s,int n)
{
int i = 0,status = 0;
printf("请输入与联系人的关系 ");
char ca[20] = "";
scanf("%s",ca);
for(i=0;i<n;i++)
{
if(!strcmp(ca,s[i].relation))
{
printf("name:%15s phone:%15s e-mail:%15s relation:%15s ",s[i].name,s[i].phone,s[i].e_mail,s[i].relation);
status = 1;
}
}
if(!status)
printf("没有找到相应的信息 ");
}
void show__all(AA *s,int n)
{
int i = 0;
for(i = 0 ; i <n ; i++)
{
printf("name:%15s phone:%15s e-mail:%15s relation:%15s ",s[i].name,s[i].phone,s[i].e_mail,s[i].relation);
}
}
int main(void)
{
AA a[N];
int n = 0;
int i;
while(1)
{
printf("0------退出系统 1------输入联系人信息 2------删除指定联系人信息 ");
printf("3------显示与本人关系相通的联系人信息 4------显示所有联系人的信息 ");
scanf("%d",&i);
if(i == 0)
break;
switch(i)
{
case 1:n = input__(a); break;
case 2:
if(n == 0)
{
printf("你还没有添加信息,请先添加信息: ");
break;
}
else
{
delete__(a,&n);
break;
}
case 3:
{
if(n == 0)
{
printf("你还没有添加信息,请先添加信息: ");
break;
}
else
{
show__relation(a,n);
break;
}
}
case 4:
{
if(n == 0)
{
printf("你还没有添加信息,请先添加信息: ");
break;
}
else
{
show__all(a,n);
break;
}
}
default:
printf("您的选择有误,请重新选择 ");
break;
}
}
return 0;
}
//看看~~~刚刚写完~
㈢ 一道大一计算机C语言编程题,急求答案,在线等,非常感谢!
#include<stdio.h>
#include<stdlib.h>
voidswap(int*num1,int*num2){
inttemp;
if(*num1>*num2){
temp=*num1;
*num1=*num2;
*num2=temp;
}
}
intGCD(intnum1,intnum2){//最大公约数
if(num1==1)return1;
for(inti=num1;i>=1;i--){
if(num1%i==0&&num2%i==0)returni;
}
return1;
}
intLCM(intnum1,intnum2){//最小公倍数
intmult=1,proct=0;
while(true)
{
proct=mult*num2;
if(proct%num1==0&&proct%num2==0)returnproct;
++mult;
}
}
intmain(){
intnum1,num2;
scanf("%d%d",&num1,&num2);
swap(&num1,&num2);
printf("%d%d ",GCD(num1,num2),LCM(num1,num2));
system("pause");
return0;
}
㈣ 求帮忙解决一道C语言程序设计的题,用大一的知识点。
#include<stdio.h>
#include<string.h>
structstudent
{
charnum[8];
charname[10];
intcgrade;
intmgarde;
intphysics;
floatave;
};
intcmp(constvoid*a,constvoid*b)
{
structstudentc=*(structstudent*)a;
structstudentd=*(structstudent*)b;
return(d.cgrade+d.mgarde+d.physics)-(c.cgrade+c.mgarde+c.physics);
}
intmain()
{
structstudentstu[100];
inti,k,max[3],min[3],sum[3],num[9]={0};
for(i=0;i<3;i++)
{
max[i]=0;
min[i]=200;
sum[i]=0;
}
FILE*fp;
fp=fopen("文件路径,用\代替","r");//这里填你的txt路径
printf("学号姓名平均分 ");
for(i=0;!feof(fp);i++)
{
fscanf(fp,"%s%s%d%d%d%f",&stu[i].num,&stu[i].name,&stu[i].cgrade,&stu[i].mgarde,&stu[i].physics,&stu[i].ave);
printf("%7s%10s%10.1f ",stu[i].num,stu[i].name,stu[i].ave);
}
for(k=0;k<i;k++)
{
sum[0]+=stu[k].cgrade;
sum[1]+=stu[k].mgarde;
sum[2]+=stu[k].physics;
if(max[0]<stu[k].cgrade)max[0]=stu[k].cgrade;
if(max[1]<stu[k].mgarde)max[1]=stu[k].mgarde;
if(max[2]<stu[k].physics)max[2]=stu[k].physics;
if(min[0]>stu[k].cgrade)min[0]=stu[k].cgrade;
if(min[1]>stu[k].mgarde)min[1]=stu[k].mgarde;
if(min[2]>stu[k].physics)min[2]=stu[k].physics;
if(stu[k].cgrade>=90)num[0]++;
if(stu[k].cgrade>=60)num[1]++;
if(stu[k].cgrade<60)num[2]++;
if(stu[k].mgarde>=90)num[3]++;
if(stu[k].mgarde>=60)num[4]++;
if(stu[k].mgarde<60)num[5]++;
if(stu[k].physics>=90)num[6]++;
if(stu[k].physics>=60)num[7]++;
if(stu[k].physics<60)num[8]++;
}
printf(" C语言最高分:%d最低分:%d 高数最高分:%d最低分:%d 物理最高分:%d最低分:%d ",max[0],min[0],max[1],min[1],max[2],min[2]);
printf(" C语言平均分:%.1f 高数平均分:%.1f 物理平均分:%.1f",(float)sum[0]/i,(float)sum[1]/i,(float)sum[2]/i);
printf(" C语言优秀人数:%d及格人数:%d不及格人数:%d 高数优秀人数:%d及格人数:%d不及格人数:%d 物理优秀人数:%d及格人数:%d不及格人数:%d ",num[0],num[1],num[2],num[3],num[4],num[5],num[6],num[7],num[8]);
qsort(stu,i,sizeof(stu[0]),cmp);
printf(" 排序后 学号姓名总分 ");
for(k=0;k<i;k++)
printf("%7s%10s%10d ",stu[k].num,stu[k].name,stu[k].cgrade+stu[k].mgarde+stu[k].physics);
return0;
}
㈤ c语言程序设计大一试题,请各路大虾支援!在线等- -
1
#include <stdio.h>
int main(void)
{
int n, i, sum = 0;
scanf("%d", &n);
for (i = 1; i <= n; i++)
sum += i;
printf("sum = %d\n", sum);
return 0;
}
2,
#include <stdio.h>
int main(void)
{
int n, i;
long a = 1, result = 0;
printf("请输入1到15的整数\n");
while (scanf("%d", &n) != EOF)
{
if (n > 15 || n < 1)
printf("请输入1到15的整数\n");
else break;
}
for (i = 1; i <= n; i++)
{
a *= i;
result += a;
}
printf("sum = %d\n", result);
return 0;
}
3,
#include <stdio.h>
int main(void)
{
int n, count = 0;
int i, j, k;
for (i = 1; i <= 4; i++)
{
for (j = 1; j <= 4; j++)
{
if (j != i)
{
for (k = 1; k < 5; k++)
{
if (k != i && k != j)
{
n = i * 100 + j * 10 + k;
printf("%d ", n);
count++;
}
}
}
}
}
printf("\ncount = %d\n", count);
return 0;
}
4,
#include <stdio.h>
int main(void)
{
float a, b;
scanf("%f", &a);
if (a > 20)
b = 10 * 0.1 + 10 * 0.075 + (a - 20) * 0.05;
else if (a > 10)
b = 10 * 0.1 + (a - 10) * 0.075;
else b = a * 0.1;
printf("\n利润 = %.3f万\n", b);
return 0;
}
5,
#include <math.h>
#include <stdio.h>
int main()
{
int i,x,y,z;
for (i=1;;i++)
{
x=sqrt(i+100);
y=sqrt(i+268);
if(x*x==i+100&&y*y==i+268)
{
printf("\n%d\n",i);
break;
}
}
return 0;
}
6,
#include <stdio.h>
int main()
{
int t, x, y, z;
scanf("%d%d%d", &x, &y, &z);
if (x > y)
{
t = x;
x = y;
y = t;
}
if (x > z)
{
t = z;
z = x;
x = t;
}
if (y > z)
{
t = y;
y = z;
z = t;
}
printf("%d, %d, %d", x, y, z);
return 0;
}
7,
#include <stdio.h>
int main()
{
int i, j;
int flag, count = 0;
for (i = 101; i <= 200; i++)
{
flag = 1;
for (j = 2; j * j <= i; j++)
{
if (i % j == 0)
{
flag = 0;
break;
}
}
if (flag)
{
count++;
printf("%d ", i);
}
}
printf("\ncount = %d\n", count);
return 0;
}
㈥ 一道简单的C语言程序设计题,我们是大一的!刚学!在100行之间!
你们都不是学生吧....这么问的还好啊
你看看这个行不
我们刚学的,一个表达式求值的小程序
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include "stdlib.h"
typedef struct symbal //运算符
{
char s;
struct symbal *next;
}Node_sym,*Link_sym;
typedef struct number //操作数
{
float n;
struct number *next;
}Node_num,*Link_num;
//*******************************************************************************
void initsym(Link_sym &L); //初始化符号栈
int pushsym(Link_sym &L,char c); //运算符进栈
int popsym (Link_sym &L,char c); //运算符出栈
int emptysym(Link_sym L); //判栈空
int gettopsym(Link_sym L,char &c); //取栈顶
int prior(char a); //确定运算符的优先级
void initnum(Link_num &L); //初始化操作数栈
int pushnum(Link_num &N,float c); //操作数进栈
int popnum (Link_num &N,float &num); //操作数出栈
int emptynum(Link_num L); //判栈空
int gettopnum(Link_num L,int n); //取栈顶
float calculate(char numb[]);
int disp(Link_num L); //查看符号栈
//*******************************************************************************
void initsym(Link_sym &L)
{
L=new Node_sym;
L->s='#';
L->next=NULL;
}
void initnum(Link_num &N)
{
N=NULL;
}
int pushsym(Link_sym &L,char c)
{
Link_sym p;
if ((p=new Node_sym)==NULL)return 0;
p->s=c;
p->next=L;
L=p;
return 1;
}
int pushnum(Link_num &N,float c)
{
Link_num p;
p=new Node_num;
p->n=c;
p->next=N;
N=p;
return 1;
}
int popsym (Link_sym &N,char c)
{
if (emptysym(N)==0)
{
//printf ("栈空");
return 0;
}
Link_sym p;
p=N->next;
c=N->s;
N=p;
return 1;
}
int popnum (Link_num &N,float &num)
{
if (emptynum(N)==0)
{
// printf ("栈空");
return 0;
}
num=N->n;
N=N->next;
return 1;
}
int emptysym(Link_sym L)
{
if (L==NULL)return 0;
else return 1;
}
int emptynum(Link_num L)
{
if (L==NULL)return 0;
else return 1;
}
int gettopsym(Link_sym L,char &c)
{
if (emptysym(L)==0)
{
// printf ("栈空");
return 0;
}
c=L->s;
return 1;
}
int disp(Link_num L)
{
if (L==NULL)
{
// printf("栈空");
return 0;
}
Link_num p=L;
while (p!=NULL)
{
printf ("%f",p->n);
p=p->next;
}
return 1;
}
void transform(char s[],char numb[]) //转化为后缀表达式
{
int i=0,j=0,n=0;
char temp;
Link_sym L;
initsym(L);
while(s[i]!=0)
{ //printf("\n当前遇到的是:%c\n",s[i]);
if(s[i]>='0'&& s[i]<='9'||s[i]=='.')//是数字 //或者是小数点
{numb[j++]=s[i];
// printf ("进入后缀式\n");
i++;
continue;}
numb[j++]=' '; //*********************每两个数字之间用空格隔开
//是运算符
switch(s[i]){
case '(': pushsym(L,'('); break;
case ')': gettopsym(L,temp);
while( temp!='('){
numb[j++]=temp;
popsym(L,temp);
gettopsym(L,temp);
}
break;
default: while(gettopsym(L,temp)&&prior(temp)>=prior(s[i]))
{
if(temp!='#')numb[j++]=temp;
popsym(L,temp);
}
if(s[i]!='#')pushsym(L,s[i]);
}//else
i++;
// printf("当前的后缀式是:");
// for(n=0;n<j;n++)putchar(numb[n]);
// putchar('\n');
// printf("当前的运算符栈是:");
// disp(L);
// getch();
}
numb[j]='\0';
}
int prior(char a) //返回运算符优先级
{
if(a=='+'||a=='-') return 1;
if(a=='#') return -1;
if(a=='*'||a=='/') return 2;
if(a=='(') return 0;
}
float calculate (char numb[])
{
int flag=0;
float num1,num2,temp;
float sum;
Link_num num;
initnum(num);
int i=0;
while (numb[i]!=0)
{
if (numb[i]>='0'&&numb[i]<='9'||numb[i]=='.')
{
flag=0;
sum=0;
while (numb[i]>='0'&&numb[i]<='9'||numb[i]=='.')
{
if (numb[i]=='.'){flag=1;i++;continue;}
if (flag==0)
{
sum=sum*10+(numb[i]-48);
}
else
{
sum=sum*10+(numb[i]-48);
flag++;
}
i++;
}
while (flag>1)
{
sum=sum/10.0;
flag--;
}
pushnum(num,sum);
}
if (numb[i]=='+'||numb[i]=='-'||numb[i]=='*'||numb[i]=='/')
{
popnum(num,num2);
popnum(num,num1);
char sym=numb[i];
switch(sym)
{
case '+': temp=num1+num2;pushnum(num,temp);break;
case '-': temp=num1-num2;pushnum(num,temp);break;
case '*': temp=num1*num2;pushnum(num,temp);break;
case '/': temp=num1/num2;pushnum(num,temp);break;
}
}
i++;
}
popnum(num,temp);
return temp;
}
main ()
{
float result;
int i,j=0;
char temp;
char c;
char s[100],numb[100];
do
{
system("cls");
int b;
printf("\n\n\n\n\t\t\t\t*表达式计算(链栈)*\n");
printf("\n\t\t\t 1.将表达式转化为后缀表达式计算\n");
printf("\n\t\t\t 2.退出\n");
printf("\n\t\t\t 请选择(1/2):");
while (1)
{
scanf("%d",&b);
if (b>2||b<1)
{
printf ("序号错误,重新输入:");
scanf("%d",&b);
}
if (b==1||b==2)break;
}
if (b==2)return 0;
fflush(stdin);
printf ("请输入表达式:");
gets(s);
i=strlen(s);
s[i]='#';
s[i+1]=0;
transform(s,numb);
result=calculate(numb);
s[i]=0;
system("cls");
for (i=0;i<100;i++)
{
printf ("计算中,请稍后\n%d%",i);
// delay(100);
system("cls");
}
puts(s);
printf ("的计算结果是:%f ^_^",result);
getch();
}while (1);
}
这个原来我写的
不过好长时间了,估计现在让我弄都已经弄不明白了 呵呵o(∩_∩)o...
㈦ 一道大一的C语言综合编程题
哥们,可不能这样干啊,自己动手是可以搞定的,也不能把作业放到网上啊!!!