⑴ 一道C語言上機編程題
#include <stdio.h>
#include <string.h>
# define N 16
typedef struct
{ char num[10];
int s;
} STREC;
int fun (STREC *a,STREC *b)
{
STREC *p=a;
int i,j=0,m;
for(i=0;i<16;i++)
if(p->s>=a[i].s)
p=&a[i];
strcpy(b[0].num,p->num);
b[0].s=p->s;
for(m=0;m<16;m++)
if(a[m].s==p->s)
{
strcpy(b[++j].num,a[m].num);
b[j].s=a[m].s;
}
return (j+1);
}
void main()
{
STREC s[N]={{"GA05",85},{"GA03",76},{"GA02",69},{"GA04",85},{"GA01",91},
{"GA07",72},{"GA08",64}, {"GA06",87},{"GA015",85},{"GA013",91},
{"GA012",64},{"GA014",91},{"GA011",91},{"GA017",64},{"GA018",64},{"GA016",72}};
STREC h[N];
int i,n;
FILE *out;
n=fun(s,h);
printf("The %d lowest score:\n",n);
for(i=0;i<n;i++)
printf("%s %4d\n",h[i].num,h[i].s);
printf("\n");
/******************************/
out=fopen("out.dat","w");
fprintf(out,"%d\n",n);
for(i=0;i<n;i++)
fprintf(out,"%4d\n",h[i].s);
fclose(out);
/******************************/
}
⑵ C語言上機編程題,急需。。。。!!!
用結構體就行,至於排序用sort吧。
排序:
bool cmp(Stu a,Stu b) //Stu是你預定義的結構體名
{return a.total<b.total;}//total式結構體中的總分
int main()
{/*...*/
sort(student,student+n,cmp);//student是你事先聲明的結構體數組,n為數 組的長度,這樣student就按升序排列了,要是降序就將cmp中的小於號換成大於就成了
⑶ C語言編程上機題,救急
#include <stdio.h>
#include <string.h>
void proc(const char *s, size_t sz, char *t){
int i = 0, j = 0;
for (i = 0; i < sz; i+=2)
if (s[i] % 2 == 0)
t[j] = s[i], j++;
}
int main()
{
const char * s = "this fkasjf9089789sdodfjkl";
char t[100];
proc(s, strlen(s), t);
puts(t);
return 0;
}
⑷ 2級C語言上機考試的編程題
我想這應該和他的 改卷系統有關系。我記得我同學去年考過,聽說編程題的答案 必須和標准答案是一摸一樣的才會給分的。你可以照著標准答案寫一遍試試!祝二級考試順利通過。
⑸ 關於C語言上機編程題的問題
很難嗎?按我的理解是這樣的:
int fun()
{
FILE *pf=fopen("in.dat","r");/*打開文件*/
fscanf(pf,"%d",&a);/*假如是讀入一個數據,a是全局變數*/
/*中間的數據預處理*/
fclose(pf);/*關閉文件*/
return 0;
}
⑹ C語言上機題
if(n!=0) \\當n不等於0時,運行遞歸函數
return (n*fun(n-1)) ;
return n;\\當n等於1時,返回計算結果
}
這是遞歸函數 確實不好理解
return 表示該函數停止運行
例如
x=fun();
fun()
{
return a;
}
則相當於x=a;
若n=10
那麼 該遞歸函數可以視為
x=fun(10*fun(9))
=fun(10*fun(9*fun(8)))
=fun(10*9*fun(8*fun(7)))
=……
=10*9*8*…*2*1
到此n-n=0 fun()返回n的值
即位為階乘答案
⑺ C語言程序設計 上機題
樓主你好,希望以下答案對你有一定幫助。
樓主在問題補充中也提到了:
注意:要求n的值大於1但不大於100之間。部分源程序在文件PROG1.C中。
在2級C語言考試中,諸如「注意」這樣字眼後面的內容在程序中一般都是有分的。所以這種題如果有對n的范圍有要求,應該寫出對n的范圍作出限制的執行語句。尤其是如果n控制了求值的精確度,則必須寫出n的范圍限制語句,否則程序陷入死循環且不符合題意。例如:
已知PI/4=1-1/3+1/5-1/7+...,用此公式求PI的近似值,直到最後一項的絕對值小於10的-6次方為止。
這道題也要求了對關於n的最後一項的絕對值1/(2n+1)進行范圍限定,即1/(2n+1)要小於10的-6次方。如果程序中不體現出這一點,程序將陷入死循環。所以要限定n的范圍。
while(1/(2n+1)>=1E-6)
{...
}
只有這樣,程序才能正常運行。
⑻ c語言上機編程題按步驟給分還是結果給分
肯定是不會得0分的
但是具體給多少分就不一定了
由於C語言上機考試是機器評分
不會像人一樣
可以判斷你僅僅是一個字母錯了
好象機器是靠寫完的函數
運行結果來評分的
也就是說給出多個原操作數
按照你寫的函數
運行結果得到的數和答案結果是否一致
不過也不完全是靠這樣的
經常有些寫的按不著邊的函數
到查分的時候也能給個十幾分
(說不定是機器給評的辛苦分
哈哈)
⑼ 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語言上機的編程題
一般題目會有一個data.in或者擴展名為in的文件,具體看題目說明,那裡是程序的輸入數據,用記事本打開,數學好的話自己根據題意推算結果,再按照題目要求的格式編輯一個輸出文件存到輸入文件的目錄就行了。記住,編輯文件一定要用英文半形輸入法,保存一定要選擇「另存為」,文件格式要選擇「*.*」的,編碼要選擇ASCI的。