當前位置:首頁 » 編程語言 » 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;
}

熱點內容
androidsdk接入 發布:2025-01-24 20:54:14 瀏覽:193
我的世界伺服器如何使用路由器映射 發布:2025-01-24 20:49:30 瀏覽:739
腳本操作瀏覽器 發布:2025-01-24 20:41:40 瀏覽:296
fast自動獲取ip地址伺服器無響應 發布:2025-01-24 20:19:13 瀏覽:710
http加密數據 發布:2025-01-24 20:15:00 瀏覽:100
中國存儲行業排名 發布:2025-01-24 20:02:21 瀏覽:422
arm編譯鏈 發布:2025-01-24 19:42:12 瀏覽:700
linuxc的函數返回值 發布:2025-01-24 19:35:23 瀏覽:665
威綸編程軟體反編譯 發布:2025-01-24 19:30:26 瀏覽:49
網路存儲單元 發布:2025-01-24 19:28:04 瀏覽:168