⑴ 一道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的。