当前位置:首页 » 编程语言 » c语言上机题目

c语言上机题目

发布时间: 2022-07-28 01:31:53

c语言数据结构上机题

#include "stdafx.h"
#include<iostream>
using namespace std;
typedef struct LNode
{
char data;
struct LNode * next;
}LNode,* LinkList;
void CreateList(LinkList &L)//创建链表存放26个字母组成的线性表
{
L=(LinkList)malloc(sizeof(LNode));
L->next=NULL;
char c='z';
for(int i=26;i>0;i--)
{
LNode *p;
p=(LinkList)malloc(sizeof(LNode));
p->data=c--;
p->next=L->next;
L->next=p;
}
}
bool ListInsert(LinkList &L,int i,char c)//在第i个位置插入字母c
{
LNode * p=L;int j=0;
while(p&&j<i-1)
{
p=p->next;
++j;
}
if(!p||j>i-1)
return false;
LinkList s=(LinkList)malloc(sizeof(LNode));
s->data=c;
s->next=p->next;
p->next=s;
return true;
}
void main()
{
LinkList L;
CreateList(L);//1.创建链表存放26个字母组成的线性表
char c;int i;
cout<<"输入插入的字母"<<endl;
cin>>c;
cout<<"输入插入的位置(整数)"<<endl;
cin>>i;
if(ListInsert(L,i,c))//在第i个位置插入字母c
{
while(L->next!=NULL)//将插入后的线性表输出
{
cout<<L->next->data;
L=L->next;
}
}
}

//辛苦写完...刚调试通过...加分啊..
调试是在C++环境下调试的,如果你要在C环境下..把
cout<<L->next->data; 改为:
printf("%d",L->next->data);
cin>>c;改为:scanf("%c",c);
就ok了......

ps: o_o一般上机都是C++吧......

⑵ C语言 关于C语言上机题目的问题。

将fun函数改为
void fun(char *tt, int pp[])
{
int i,j;
for(i=0;i<26;i++)
pp[i]=0;

for(i=0;i<1000;i++)
{
if(tt[i]>='a'&&tt[i]<='z')
{
j=tt[i]-97;
pp[j]++;
}
if(tt[i]=='\0')
break;
}
}
或者是
void fun(char *tt, int pp[])
{
int i,j;
for(i=0;i<26;i++)
pp[i]=0;

for(i=0;tt[i]!='\0';i++)
if(tt[i]>='a'&&tt[i]<='z')
{
j=tt[i]-97;
pp[j]++;
}
}

因为给定字符串和由aa输入的字符串是不同的:

1.输入字符串因为定义了char aa[1000];,编译器编译时会将aa中的每个元素置0,所以aa中在你输入的数据后全是'\0';

2."a bosom friend afar brings a distant land near"是存在内存中的,在near后的'\0'后会有其他的数据存在,并不全是'\0',也可能会有a~z内的字符数据,所以产生错误结果。

在fun中 检测到'\0'后 即字符串结束后应结束循环。

⑶ 大一C语言上机题目

语法错误:
int
y,m,d;//d重定义,跟结构体同名了,要么改结构体名称,要没改成员名称
next(struct
d
dt)
//没有类型,返回值是结构类型,应该在前面加上结构体的实体
nextd.d++//缺分号
d2=next()://①括号里没有参数,②后面是冒号不是分号
getch();
//
这句要干什么?没看明白,编译出错
逻辑问题:
①p=leap(dt.y);
//
这里好像逻辑上有问题,导致日期计算不对,需要修改
②要求输入三行,这个程序改完就能输入一次就退出了,需要仔细改一下
时间问题,没太仔细看,好好改改吧,挺多问题的

⑷ c语言的几道上机题目怎么就做

第一题
{ int i; double s, t;
/**********found**********/
s=0;
/**********found**********/
for(i=1; i<=n; i++)
{ t=2.0*i;
/**********found**********/
s=s+(2.0*i-1)*(2.0*i+1)/(t*t);
}
return s;
}

第二题
{ int i=0,j,find=0,rmax,c,k;
while( (i<M) && (!find))
{ rmax=a[i][0]; c=0;
for(j=1; j<N; j++)
if(rmax<a[i][j]) {
/**********found**********/
rmax=a[i][j]; c= j; }
find=1; k=0;
while(k<M && find) {
/**********found**********/
if (k!=i && a[k][c]<=rmax) find= 0;
k++;
}
if(find) printf("find: a[%d][%d]=%d\n",i,c,a[i][c]);
/**********found**********/
i++;
}

第三题
{ long d=0;
while(*s)
if(isdigit( *s)) {
/**********found**********/
d=d*10+*s-'o';
/**********found**********/
s++;}
return d;
}
long fun( char *a, char *b )
{
/**********found**********/
return ctod(a)+ctod(b);
}

⑸ C语言上机题目:输入一个字符串,然后按逆序重新存放该字符串.

#include<string.h>

#include<stdio.h>

int main()

{

char a[100];

int i,n,j=0,temp;

gets(a);

n=strlen(a);

for(i=0;i<n/2;i++){

temp=a[i];

a[i]=a[n-1-i];

a[n-1-i]=temp;}

a[n]='';

puts(a);

return 0;

}

(5)c语言上机题目扩展阅读:

数组的使用规则:

1.可以只给部分元素赋初值。当{ }中值的个数少于元素个数时,只给前面部分元素赋值。例如:static int a[10]={0,1,2,3,4};表示只给a[0]~a[4]5个元素赋值,而后5个元素自动赋0值。

2.如不给可初始化的数组赋初值,则全部元素均为0值。

3.如给全部元素赋值,则在数组说明中, 可以不给出数组元素的个数。例如:static int a[5]={1,2,3,4,5};可写为:static int a[]={1,2,3,4,5};动态赋值可以在程序执行过程中,对数组作动态赋值。这时可用循环语句配合scanf函数逐个对数组元素赋值。

网络-数组

⑹ c语言上机题,求大神

#include<stdio.h>

intmain()
{
intscore;
while(scanf("%d",&score)!=EOF)
{
if(score<0)printf("输入数据错误 ");
elseif(score<60)printf("E ");
elseif(score<70)printf("D ");
elseif(score<80)printf("C ");
elseif(score<90)printf("B ");
elseif(score<101)printf("A ");
elseprintf("输入数据错误 ");
switch(score/10)
{
case10:;score==100?printf("A "):printf("输入数据错误 ");break;
case9:printf("A ");break;
case8:printf("B ");break;
case7:printf("C ");break;
case6:printf("D ");break;
case5:;
case4:;
case3:;
case2:;
case1:;printf("E ");break;
default:printf("输入数据错误 ");
}
}
return0;

}

⑺ c语言上机编程题……急!!!

1.
function(char s1[],char s2[])
{
int i,j=0;
for(i=0;i<strlen(s1);i++)
if(s1[i]>'0'&&s1[i]<='9')
s2[j++]=s1[i];
s2[j]=0;
printf("%s",s2);
}

2.
unsigned int strlen (char *str)
{
int i;
while(str[i]!=0) i++;
return i;
}

3.只会麻烦的一种,不太会

4.
/*a[21]多一个是防止溢出*/
main()
{
int a[21],i,s;
a[0]=2;
a[1]=3;
for(i=2,i<20,i++)
{
s=a[i-2]*a[i-1];
if(s<10) a[i]=s;
else
{
a[i++]=s/10;
a[i]=s%10;
}
}
s=0;
for(i=0;i<20;i++)
s=s+a[i];
printf("%d\n",s);
for(i=0;i<20;i++);
printf("%d,",a[i]);
}

⑻ c语言 上机实操题目

#include<stdio.h>
#include<stdlib.h>

struct node
{
int data;
struct node *next;
};
struct node* create(int n)
{
int i;
struct node *t,*h,*p;

h=t=(struct node*)malloc(sizeof(struct node));
printf("请输入第1个节点的数据:");
scanf("%d",&(*t).data);
for(i=2;i<=n;i++)
{
p=(struct node*)malloc(sizeof(struct node));
printf("请输入第%d个节点的数据:",i);
scanf("%d",&(*p).data);
(*t).next=p;
t=p;
}
(*p).next=NULL;
return h;
}
void display(struct node *head)
{
while(head)
{
printf("%d",(*head).data);
if((*head).next)
printf("->");
head=(*head).next;
}
}
void myfree(struct node *head)
{
struct node *p=head;

while(p)
{
head=(*head).next;
free(p);
p=head;
}
}

int main()
{
struct node *head;

head=create(10);
display(head);
myfree(head);
return 0;
}

热点内容
cvr网络存储 发布:2025-01-24 17:24:52 浏览:415
腿套压缩袜 发布:2025-01-24 17:05:16 浏览:458
电脑如何将安卓软件卸载干净 发布:2025-01-24 17:03:06 浏览:489
hello密码怎么破解 发布:2025-01-24 17:03:06 浏览:73
pspfifa无缓存 发布:2025-01-24 16:45:13 浏览:165
androidhandler机制 发布:2025-01-24 16:41:10 浏览:936
安卓系统如何下载aov 发布:2025-01-24 16:29:53 浏览:573
iptables允许ip访问 发布:2025-01-24 16:19:58 浏览:932
安卓80如何识别存储卡权限 发布:2025-01-24 16:19:54 浏览:232
存储介质价格 发布:2025-01-24 16:19:18 浏览:151