c语言第六次作业

c语言第六次作业
c语言第六次作业

第六次作业:指针

(以下题目如无特殊声明,请使用指针技术实现,尽量不要使用数组作为形参,也尽量避免使用数组下标引用数组元素)

1.数组元素循环移位

有n个整数,使前面的各整数顺序向后移动m个位置,后面的m个整数则变成最前面的m个数。写一函数实现以上功能。

在主函数中输入n及n个整数,输入m (m

#include

void main()

{

void inv(int *p,int n,int m);

int n,m,a[20],*p;

printf("please input n=");

scanf("%d",&n);

printf("please input %d numbers:",n);

p=a;

while(p

scanf("%d",p++);

printf("please input m=");

scanf("%d",&m);

p=a;

inv(a,n,m);

printf("the new array:\n");

while(p

printf("%d ",*p++);

putchar('\n');

}

void inv(int *p,int n,int m)

{

int i;

for(i=1;i<=n;i++)

*(p+n-i+m)=*(p+n-i);

for(i=0;i

*(p+i)=*(p+n+i);

}

2. 矩阵元素的排序

将一个5×5的整数型矩阵中各元素重新排序。排序规则为,矩阵元素按照从左到右,从上到下的顺序依次递增,即

4,41,10,14,03,02,01,00,0.......a a a a a a a a ≤≤≤≤≤≤≤。

要求编写一个函数实现上述排序功能。

在主函数中输入该矩阵,调用编写的上述函数,然后输出排序后的矩阵。

#include

void main()

{

void inv(int (*x)[5]);

int i,j,a[5][5];

int (*p)[5];

printf("please input an 5*5 array:\n");

p=a;

for(i=0;i<5;i++)

for(j=0;j<5;j++)

scanf("%d",*(p+i)+j);

inv(p);

printf("the new array:\n");

for(i=0;i<5;i++)

{

for(j=0;j<5;j++)

printf("%4d",*(*(p+i)+j));

putchar('\n');

}

putchar('\n');

}

void inv(int (*x)[5])

{

int i,j,t;

for(i=0;i<24;i++)

for(j=i+1;j<25;j++)

{

if(*(*x+i)>*(*x+j))

{t=*(*x+i);*(*x+i)=*(*x+j);*(*x+j)=t;}

}

return;

}

3.星期的查找

编写一个程序,输入一个1~7之间的整数,表示星期几,然后输出相应的文字。

例如:如用户输入3,则输出“星期三”。

要求:用指针数组的方法来实现。

#include

void main()

{

int n;

char (*p)[3];

char a[7][3]={"一","二","三","四","五","六","七"};

printf("please input n=");

scanf("%d",&n);

p=a;

printf("星期%s\n",p+n-1);

}

4.字符串库函数的实现

请使用指针的方法来实现如下的库函数:

Char * strncpy( char *s, char * t, int n) //复制t的前n个字符至s

Char * strncat( char *s, char * t, int n) //连接t的前n个字符至s的末尾int strncmp( char *s, char * t, int n) //比较s和t的前n个字符

并请编写一个主函数来调用并测试自己编写的库函数。

#include

#include

char *strncpy(char *s,char *t,int n)

{

int i,length;

length=strlen(s);

for(i=0;i

*(s+i)=*(t+i);

if(length

return(s);

}

char *strncat(char *s,char *t,int n)

{

int i,length;

length=strlen(s);

for(i=0;i

*(s+i+length)=*(t+i);

*(s+length+n)='\0';

return(s);

}

int strncmp(char *s,char *t,int n)

{

int i;

for(i=0;i

{

if(*(s+i)==*(t+i))continue;

else if(*(s+i)>*(t+i)){return(1);break;}

else {return(-1);break;}

}

}

void main()

{

char a[20],b[20];

int n;

scanf("%s%s%d",a,b,&n);

printf("%s\n",strncpy(a,b,n));

scanf("%s%s%d",a,b,&n);

printf("%s\n",strncat(a,b,n));

scanf("%s%s%d",a,b,&n);

printf("%d\n",strncmp(a,b,n));

}

5.算术练习程序(指针型函数)

一位小朋友正在学习两个100以内正整数的简单运算(加法、减法、乘法、除法),请编写一个程序来帮助他学习。

该程序调用一个GetRandomExpression(),由它随机返回一个简单的表达式;然后程序提示用户输入表达式的计算结果,并判断答案是否正确。

#include

#include

#include

int result=1;

void GetRanddomExpression(int *num1,char *a,int *num2)

{

int n;

srand(time(NULL));

*num1=rand()%100+1;

*num2=rand()%100+1;

n=rand()%4;

switch(n)

{

case 0:{while(*num2>*num1) *num2=rand()%100+1;

result=(*num1)-(*num2);*a='-';}break;

case 1:{while((*num1+*num2)>100)*num2=rand()%100+1;

*a='+';result=(*num1)+(*num2);}break;

case 2:while((*num1*(*num2))>100)*num2=rand()%100+1;

*a='*';result=(*num1)*(*num2);break;

case 3:{while(*num1%*num2!=0)*num2=rand()%100+1;

result=(*num1)/(*num2);*a='/';}break;

}

}

int judge(int answer)

{

if(answer==result)return(1);

else return(0);

}

void main()

{

int num1,num2;

char a;

int answer;

while(result!=answer)

{

GetRanddomExpression(&num1,&a,&num2);

printf("please input the result of the expression:\n%d%c%d=",num1,a,num2);

scanf("%d",&answer);

if(judge(answer)==1)printf("you are right!");

else printf("sorry,it not the right answer.\n");

}

}

6.数组分区(指针作为函数参数)

本题由三个部分构成

(1)编写一个函数CountEvensAndOdds,其功能是统计一个整型数组中奇数和偶数

的个数。该函数有4个参数,整数型数组、数组的长度和两个指针(用于返回

奇数、偶数的个数)

(2)利用(1)中的CountEvensAndOdds函数,编写一个Partition函数,其功能

是找出给定长度的一个整型数组中的所有奇数和偶数,并把它们分别保存在两

个新的整型数组中(用C语言的库函数malloc函数动态创建),然后返回这两

个新数组及其长度。该函数的参数有6个,整型数组、数组长度、奇数数组及

其长度、偶数数组及其长度。

(3)编写主函数,要求能够定义一个数组,并能够用随机数对该数组进行初始化,

然后调用(2)中的函数Partition,将原始数组、奇数数组、偶数数组输出。#include

#include

#include

#include

void CountEvensAndOdds(int *parr,int arr_len,int *even_count,int *odds_count) {

int i;

int count_even=0,count_odds=0;

for (i=0;i

{

if ((*(parr+i)%2)==0)count_even++;

else count_odds++;

}

*even_count=count_even;

*odds_count=count_odds;

}

void Partition(int *parr,int arr_len,int **even_arr,int *even_len,int **odds_arr,int *odds_len)

{

int even_count,odds_count,i,m=0,n=0;

int count_even=0,count_odds=0;

CountEvensAndOdds(parr,arr_len,&even_count,&odds_count);

*even_arr=(int *)malloc(sizeof(int)*even_count);

*odds_arr=(int *)malloc(sizeof(int)*odds_count);

for (i=0;i

{

if((*(parr+i)%2)==0)

{*(*even_arr+m) = *(parr+i);m++;}

else

{*(*odds_arr+n) = *(parr+i);n++;}

}

*even_len=m;

*odds_len=n;

}

void print_arr(int *parr,int arr_len)

{

int i;

for(i=0;i

{printf("%-3d",*(parr+i));if((i+1)%10==0)printf("\n");}

printf("\n");

}

void main()

{

int *parr,arr_len,i,*even_arr,even_len,*odds_arr,odds_len;

srand(time(NULL));

arr_len = rand()%50;

parr=(int *)malloc(sizeof(int)*arr_len);

printf("arr_len=%d\n",arr_len);

for(i=0;i

parr[i] = rand()%100;

Partition(parr,arr_len,&even_arr,&even_len,&odds_arr,&odds_len);

printf("arr:\n");

print_arr(parr,arr_len);

printf("even_arr len=%d\n",even_len);

printf("even_arr:\n");

print_arr(even_arr,even_len);

printf("odds_arr len=%d\n",odds_len);

printf("odds_arr:\n");

print_arr(odds_arr,odds_len);

}

7.字符串压缩(使用字符指针)

编写一个程序,输入一个字符串,然后采用如下的规则对该字符串当中的每一个字符进行压缩:

(1)如果该字符是空格,则保留该字符。

(2)如果该字符是第1次出现或第3次出现或第6次出现,则保留该字符

(3)否则删除该字符。

例如,若用户输入occurrence,经过压缩后,字符c的第2次出现被删除,第1和第3次出现仍保留;字符r和e的第2次出现均被删除,因此最后的结果为:occurrence 。

#include

#include

#include

void main()

{

char *p,str[50]={'0'};

int n,i,j=0,num[26]={0};

gets(str);

n=strlen(str);

p=(char*)malloc(n*sizeof(char));

for(i=0;str[i]!=0;i++)

{

if(str[i]==' ')*(p+j++)=str[i];

else

{

if(num[str[i]-97]==0||num[str[i]-97]==2||num[str[i]-97]==5)

{

*(p+j++)=str[i];

num[str[i]-97]++;

}

else num[str[i]-97]++;

}

}

for(i=0;i

printf("%c",*(p+i));

putchar('\n');

}

8.字符查找(使用指针数组)

用一个指针数组存储6种计算机语言FORTRAN、PASCAL、BASIC、C、COBOL、SMALLTALK,根据用户输入的若干个开头字符,显示所有相匹配的计算机语言,例如:输入”BA”,显示”BASIC”;输入”C”,显示”C”和”COBOL”。

#include

#include

void main()

{

char

*a[6]={"FORTRAN","PASCAL","BASIC","C","COBOL","SMALLTALK"};

char b[6],*p;

int length,i,k;

printf("please input some charactors:");

scanf("%s",b);

length=strlen(b);

for(i=0;i<6;i++)

{

for(p=b;p

{

if(*p==*a[i])k=i;

else {k=6;break;}

}

if(k==i)printf("%s\n",a[i]-length);

}

}

9.字符串排序(使用多级指针)

用指向指针的指针的方法对于输入的5个字符串进行排序并输出。(假设每个字符串最大长度不超过20)

//用指向指针的指针的方法对于输入的5个字符串进行排序并输出。

#include

#include

void sort(char *name[],int n)

{

char *temp;

int i,j,k;

for(i=0;i

{

k=i;

for(j=i+1;j

if(strcmp(name[k],name[j])>0)k=j;

if(k!=i){temp=name[i];name[i]=name[k];name[k]=temp;} }

}

void print(char *name[],int n)

{

int i;

for(i=0;i

printf("%s\n",name[i]);

}

void main()

{

char *name[5];

char a[5][20];

int n=5,i;

printf("please input five str:\n");

for(i=0;i

{

scanf("%s",a[i]);

name[i]=*(a+i);

}

printf("\nthe new str:\n");

sort(name,n);

print(name,n);

}

10.最长公共字串(提示使用strstr()库函数)

编写一个程序,求给定三个字符串的最长公共子串。

假设给定的三个字符串分别为:

What is local bus?

Name some local bus.

A Local bus is high speed I/O bus close to the processor. #include

#include

int str_match(char *s1,char *s2,int len)

{

while(len>0)

{

if(*s1!=*s2)return 0;

s1++;

s2++;

len--;

}

return 1;

}

void main()

{

int i,j,s,l,flag1,flag2;

char str[3][60]={{"what the local bus?"},{"Name some local bus."},{"A Local bus is high speed I/O bus close to the processor."}};

int len[3];

for(i=0;i<3;i++)

len[i]=strlen(str[i]);

for(l=len[0];l>0;l--)

{

for(s=0; s+l-1

{

flag1=1;

for(i=1;i<3;i++)

{

flag2 = 0;

for(j=0;j+l-1

{if(str_match(str[0]+s,str[i]+j,l)){flag2=1;break;}}

if(!flag2){flag1=0;break;}

}

if(flag1)goto L;

}

}

L:printf("最长公共子串为:");

for(i=0;i

printf("%c",*(str[0]+s+i));

putchar('\n');

}

//以下为选做题目

11.网络警察

作为一名网络警察,你的任务是监视电子邮件,看其中是否有一些敏感的关键词。不过有些狡猾的犯罪嫌疑人会改变某些单词的字母顺序,以逃避检查。请编写一个程序,发现这种调整过顺序的关键词。

程序的输入有两行,第一行为关键词列表,第二行为待检查的句子。

程序的输出为在该句子中所找到的经过顺序调整的关键词。

例如输入:

guns mines missiles

aameric ssell snugs dan iimsssle ot sit neeemis

则输出为:

guns missiles

#include

#include

int FindCode(char keyword[100], int string_num, char string[100])

{

int k,letter1[26]={0},letter2[26]={0};

for(k=0;k

letter1[keyword[k]-97]++,letter2[string[k]-97]++;

for(k=0;k<26;k++)

if(letter1[k]!=letter2[k])break;

if(k==26)return 1;

return 0;

}

void Part(char keyword[][100], char temp[100], int *Size) {

char *p;

int i=0,j;p=temp;

while(*p!='\0')

{

j=0;

while(*p!=' '&&*p!='\0')keyword[i][j++]=*(p++);

keyword[i++][j]='\0';

while(*p==' ')p++;

}

*Size=i;

}

void main()

{

char keyword[100][100], string[100][100],temp[100];

int key_num,string_num;

int i,j;

gets(temp);

Part(keyword,temp,&key_num);

gets(temp);

Part(string,temp,&string_num);

for(i=0;i

for(j=0;j

if(FindCode(keyword[i],strlen(keyword[i]),string[j]))

printf("%s ",keyword[i]);

printf("\n");

}

12.动态三维数组

a、编写一个函数CreateGrid(int m, int n, int t),用来创建一个动态的三维数组,其中m、n、t分别表示该数组每一维的长度。要求整个数组的存储空间都是用用C语言的库函数malloc函数动态申请的。

b、另外编写一个FreeGrid函数,用来释放这个三维数组。

C、在主函数中

●输入三维数组的三个维度,调用CreateGrid()函数生成数组

●使用整数指针将1到m*m*t的整数依次赋值给该三维数组的每个元素

●使用数组指针依次按每个n*t平面输出其中各个元素的值

●调用FreeGrid()函数,释放空间

如,输入的三个维度依次为2,3,4

#include

#include

#include

int ***CreateGrid(int m, int n, int t)

{

int ***p=NULL;int i,j;

p=(int ***)malloc(sizeof(int)*m);

for(i=0;i

{

*(p+i)=(int**)malloc(sizeof(int)*n);

for(j=0;j

*(*(p+i)+j)=(int*)malloc(sizeof(int)*t);

}

return p;

}

void FreeGrid(int ***p,int m,int n,int t)

{

int i,j;

if(p!=NULL)

{

for(i=0;i

{

for(j=0;j

free(*(*(p+i)+j));

free(*(p+i));

}

free(p);

p=NULL;

}

}

void main()

{

int ***p,m,n,t,i,j,k,s=1;

scanf("%d,%d,%d",&m,&n,&t);

p=CreateGrid(m,n,t);

for(i=0;i

{

for(j=0;j

{

for(k=0;k

{

*(*(*(p+i)+j)+k)=s;

s++;

}

}

}

for(i=0;i

{

printf("dimension %d:\n",i);

for(j=0;j

{

for(k=0;k

printf("%-3d",*(*(*(p+i)+j)+k));

putchar('\n');

}

}

FreeGrid(p,m,n,t); }

第六次作业

习题九 一、选择题 9-1.C语言程序由函数组成。它的。 A.主函数必须在其它函数之前,函数内可以嵌套定义函数 B.主函数可以在其它函数之后,函数内不可以嵌套定义函数 C.主函数必须在其它函数之前,函数内不可以嵌套定义函数 D.主函数必须在其它函数之后,函数内可以嵌套定义函数 9-2.一个C语言程序的基本组成单位是。 A.主程序B.子程序C.函数D.过程 9-3.以下说法中正确的是。 A.C语言程序总是从第一个定义的函数开始执行 B.在C语言程序中,要调用的函数必须在main( )函数中定义 C.C语言程序总是从main( )函数开始执行 D.C语言程序中的main( )函数必须放在程序的开始部分 9-4.已知函数abc的定义为: void abc ( ) { ....... } ?则函数定义中void的含义是。 A.执行函数abc后,函数没有返回值B.执行函数abc后,函数不再返回??C.执行函数abc后,可以返回任意类型D.以上三个答案全是错误的 9-5.在以下对C语言的描述中,正确的是。 A.在C语言中调用函数时,只能将实参的值传递给形参,形参的值不能传递给实参B.C语言函数既可以嵌套定义又可以递归调用 C.函数必须有返回值,否则不能使用函数 D.C语言程序中有调用关系的所有函数都必须放在同一源程序文件中 9-6.以下叙述中错误的是。 A.在C语言中,函数中的自动变量可以赋初值,每调用一次赋一次初值 B.在C语言中,在调用函数时,实参和对应形参在类型上只需赋值兼容 C.在C语言中,外部变量的隐含类别是自动存储类别 D.在C语言中,函数形参的存储类型是自动(auto)类型的变量 9-7.说明语句"static int i=10;"中"i=10"的含义是。 A.只说明了一个静态变量B.与"auto i=10;"在功能上等价 C.将变量i初始化为10 D.将变量i赋值为10 9-8.C语言中的函数。

C语言第七、八章补充作业-答案

第七章数组补充作业 【1】在C语言中,引用数组元素时,其数组下标的数据类型允许是 C 。 A)整型常量B)整型表达式 C)整型常量或整型表达式D)任何类型的表达式 【2】以下对一维整型数组a的正确说明是 D 。 A)int a(10); B)int n=10,a[n]; C)int n; D)#define SIZE 10 scanf(“%d”,&n); int a[SIZE]; int a[n]; 【3】若有说明:int a[10];则对a数组元素的正确引用是 D 。 A)a[10] B)a[] C)a(5) D)a[10-10] 【4】以下能对一维数组a进行正确初始化的语句是 C 。 A)int a[10]=(0,0,0,0,0); B)int a[10]={}; C)int a[]={0}; D)int a[10]={10*1}; 【5】以下对二维数组a的正确说明是 B 。 A)int a[3][]; B)double a[1][4]; C)float a(3,4); D)float a(3)(4); 【6】若有说明:int a[3][4];则对a数组元素的正确引用是 D 。 A)a[2][4] B)a[1,3] C)a(2)(1) D)a[1+1][0] 【7】以下不能对二维数组a进行正确初始化的语句是 C 。 A) int a[2][3]={0}; B) int a[][3]={{1,2},{0}}; C) int a[2][3]={{1,2},{3,4},{5,6}}; D) int a[][3]={1,2,3,4,5,6}; 【8】指出下面各说明语句中哪些是合法的:(多选) A. int abcd[0x80]; B. char 9ab[10]; C. char chi[-200]; D. int aaa[5]={3,4,5}; E. float key[]={,,1,0}; F. char disk[]; G. int n,floppy[n]; H. int cash[4]={1,2,3,4,5,6}; 答案: ADE 【9】下面程序中有错误的行是 D (每行程序前面的数字表示行号)。 1 main()

C语言实训作业1

《C语言通识教育》实训指导书 (第一次) (2学时) 何天成 2016年月日

前言 C 语言是现代最流行的通用程序设计语言之一,它既具有高级程序设计语言的优点,又具有低级程序设计语言的特点,既可以用来编写系统程序,又可以用来编写应用程序。因此,C 语言正在被迅速地推广和普及。上机实验是该课程教学的一个重要环节,因此要求学生做一定数量的上机实验。本指导书可增强同学上机实验的针对性。整个教学和实验中,采用VC++6.0 作为实验环境,强调学生切实培养动手实践能力,掌握调试程序的方法,通过调试理解C语言程序运行的过程以及C 语言的语法规则,为后续的课程设计,计算机等级考试及其他应用做好充分的准备。 本实验指导书通过大量的实例,循序渐进地引导学生做好各章的实验。共计约14次实训课,其中每一讲内容分1、2两次上课。每个实验内容结构如下: (1)实验学时 (2)实验目的 (2)预习要求 (4)实验内容 (5)实验注意事项 (6)思考题 其中思考题属于扩展应用部分,学生可以根据自己的学习情况选择完成。 在实验之前,要求学生对实验作好预习工作。在实验中,学生根据实验指导中的内容进行验证与总结,然后再去完成实验内容中安排的任务。一般要求准备好相关代码,实验课中最好以调试和讨论为主。 实验结束后,应及时先以电子版的形式填写实验报告,然后再以A4纸打印。第3次实训课上交前2次实训报告,要求源程序要以标准格式打印实验报告上都必须粘贴上每个程序的运行结果截图,并在每个程序的输出截图中添加上自己的姓名/学号/专业等信息,以表示程序执行结果确是自己调试,而不是copy 别人的运行结果。通报告具体内容可根据实验内容和实验要求进行增删。实验报告一般要求包含:(1)实验题目 (2)设计思路或算法分析 (3)流程图 (4)程序源代码 (5)程序运行结果及分析

c语言作业答案

No.: Name: 第1讲C语言概述 注:本系列习题中符号表示一串字符中的空格,符号表示下划线,符号ê表示换行回车,即键盘上Enter键。 一、选择题 1. 一个C程序的执行是从A 。 A) 本程序main函数开始,到main函数结束 B) 本程序文件第一个函数开始,到最后一个函数结束 C) 本程序文件第一个函数开始,到本main函数结束 D) 本程序main函数开始,到本程序文件最后一个函 数结束 2. 以下叙述不正确的是D 。 A) 一个C源程序必须包含一个main函数 B) 一个C源程序可由一个或多个函数组成 C) C程序的基本组成单位是函数 D) 在C程序中,注释说明只能位于一条语句的后面 3. 以下叙述正确的是C 。 A) 在对一个C程序进行编译的过程中,可发现注释中 的拼写错误 B) 在C程序中,main函数必须位于程序的最前面 C) 语言本身没有输入输出语句 D) C程序的每行中只能写一条语句 4. 一个C语言程序是由B 。 A) 一个主程序和若干个子程序组成 B) 函数组成 C) 若干过程组成 D) 若干子程序组成 5. 以下叙述中正确的是C 。 A) C语言比其他语言高级 B) C语言可以不用编译就能被计算机识别执行 C) C语言以接近英语国家的自然语言和数学语言作为 语言的表达形式 D) C语言出现的最晚,具有其他语言的一切优点 6. 下列叙述中正确的是D 。 A) C语言编译时不检查语法 B) C语言的子程序有过程和函数两种 C) C语言的函数可以嵌套定义 D) C语言的函数可以嵌套调用 7. 以下叙述中正确的是A 。 A) 构成C程序的基本单位是函数 B) 可以在一个函数中定义另一个函数 C) main函数必须放在其他函数之前 D) 所有被调用的函数一定要在调用之前进行定义

c语言作业

提交作业规范: (1)你的每次作业的cpp文件放在文件夹中,文件夹命名:学号+姓名+(第几次),(例如:“2014218899张三(第二次)“) (2)上传到文件夹:偶春生\班级。千万别传错。 注意: (1)每做完一题,请用“file”下的“close workspace”关闭工作区,再重新开始做下一题。(2)如果不能联网,请改网关地址:252或253 (3)开机进入“basis” 第一次上机题目: (1)从键盘上输入四个整数,计算并输出四个数的平均值。 (2)输入球的半径,计算并输出球的体积和表面积。 (3)输入一个三位正整数,分别输出该数的个位、十位和百位。(提示:用%运算符提取数字,如123%10=3,用/运算符移除已提取的数字,如123/10 = 12) (4)请测试++、--、关系和逻辑运算符。 第二次上机题目: (1)平面上有一园C:(x-3)2+(y-4)2= 25;输入点P(x,y)的坐标值,判断P点在园C内(包括园上)还是园C外。 (2)输入一英文字符,如果是大写字符,请输出:“您输入的是大写字符。”,如果是小写字符,请输出:“您输入的是小写字符。”, (3)某人某天开始“三天打鱼,两天晒网”,问该人在以后的第n天是打鱼还是晒网?(4)输入火车的出发时间和到站时间,计算火车的运行时间。(出发时间和到站时间用四位整数表示,如1230表示12点30分,假设火车不跨天运行。) (5)从键盘上输入三个整数,分别存放在变量num1, num2, num3中,编写程序对这三个数进行排序,使得num1 <=num2<=num3。 第三次上机题目: (1)输入十个数,分别计算出其中正数、负数的和。 (2)输出1—100内能被3整除或个位数是3的数。 (3)打印出大写英文字母,每行最多输出十个。 (4)输入十个数,求出其中的最小值。 (5)求出e的值,e = 1+1+1/2!+1/3!+…+1/n! (n取10) 第四次上机题目: (1)输出100—1000之间的质数。 (2)任意输入一个数,输出这个数的所有因子。(如输入12,输出1,2,3,4,6,12) (3)输出1-100间的同构数,所谓同构数是指一个数出现在这个数平方的右侧(如6和25均为同构数)。 (4)求x2+y2=2009的整数解。(提示,x,y的范围在[1,45]之间,用双重循环枚举求解)(5)用嵌套循环打印如下图形:

15秋《C语言》在线作业2

15秋《C语言》在线作业2 试卷总分:100 测试时间:-- 试卷得分:100 单选题 一、单选题(共20 道试题,共100 分。)得分:100V 1. 以下叙述中不正确的是( ) A. 在不同的函数中可以使用相同的名字的变量 B. 函数中的形式参数是局部变量 C. 在一个函数内定义的变量只在本函数范围内有效 D. 在一个函数内的复合语句中定义的变量在本函数范围内有效 满分:5 分得分:5 2. 已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'+'6'-'3';后,c2中的值为( ) A. D B. 68 C. 不确定的值 D. C 满分:5 分得分:5 3. 以下描述中正确的是( ) A. 由于do~while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句 B. do~while循环由do开始,用while结束,在while(表达式) 后面不能写分号 C. 在do~while循环体中,一定要有能使while后表达式值变为零("假")的操作 D. do~while循环中,根据情况可以省略while 满分:5 分得分:5 4. 下面程序的运行结果是( ) main() {char a[80]="AB",b[80]="LMNP"; int i=0;strcat(a,b); whi1e(a[i++]!='\0')b[i]=a[i];puts(b);} A. LB B. ABLMNP C. AB D. LBLMNP 满分:5 分得分:5 5. 以下不正确的说法是( ) A. register变量可以提高变量使用的执行效率 B. register变量由于使用的是CPU的寄存器,其数目是有限制的 C. extern变量定义的存储空间按变量类型分配 D. 全局变量使得函数之间的“耦合性”更加紧密,不利于模块化的要求 满分:5 分得分:5 6. 以下正确的描述是( ) A. 函数的定义可以嵌套,但函数的调用不可以嵌套 B. 函数的定义不可以嵌套,但函数的调用可以嵌套 C. 函数的定义和函数的调用均不可以嵌套 D. 函数的定义和函数的调用均可以嵌套 满分:5 分得分:5 7. 当把以下四个表达式用做if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是( )

第六次c语言作业

第六次课作业 下次课默写交换排序、选择排序和冒泡排序。 习题6-1 题码:章节:数组考查点:一维数组的定义、引用及格式输出难度:2 编写一程序p717.C实现以下功能 输入10个整型数存入一维数组,输出值和下标都为奇数(数组第1个元素的下标为0)的元素及其个数。编程可用素材:printf("Input 10 integers.\n")...、printf("count=...\n"...、 printf("a[...]=...\n"...。 程序的运行效果应类似地如图1所示,图1中的2 45 34 56 78 12 41 55 86 37是从键盘输入的内容。 图1 程序运行效果示例 习题6-2 题码:章节:数组考查点:一维数组定义、输入和输出的掌握,对递推算法的掌握难度:2 编写一程序p725.C实现以下功能 利用数组,求斐波拉契数列的前n(n的范围为:3~20)项,并输出到屏幕上(数和数之间用字符'\t'隔开),斐波拉契公式:f(1)=1,f(2)=1,f(n)=f(n-1)+f(n-2) (n≥3)。编程可用素材:printf("input a data(3--20): ")...。 程序的运行效果应类似地如图1所示,图1中的11是从键盘输入的内容。 图1 程序运行效果示例 习题6-3 题码:章节:数组考查点:一维数组的应用难度:2 编写一程序p718.C实现以下功能 有一递推数列,满足f(0)=0,f(1)=1,f(2)=2, f(n+1)=2f(n)+f(n-1)f(n-2) (n>=2), 编写程序求f(n)的值(n由键盘输入,13>=n>=2)。编程可用素材:printf(“Input n (13>=n>=2): ”)...、printf(“\nf(...)=...\n”...。 程序的运行效果应类似地如图1所示,图1中的10是从键盘输入的内容。 图1 程序运行效果示例 习题6-4 题码:章节:数组考查点:键盘输入技巧的掌握和二维数组的应用,判断条件的设定难度:2 编写一程序p217.C实现以下功能 求任意的一个m×m矩阵的对角线上元素之和,m(2<=m<=20)及矩阵元素从键盘输入(只考虑int型,且不需考虑求和的结果可能超出int型能表示的范围)。编程可用素材:printf("Please input m: ")...、 printf("\nPlease input array:\n")...、printf("\nsum=...\n"...。 程序的运行效果应类似地如图1所示,图1中的5和 1 45 67 235 464 35 6 89 32342 8 347 9346 47 95 746 46 785 436 19434 634 3235 567 24 8465 25 是从键盘输入的内容。

C语言第5次作业 简单程序设计

单选题: 1、以下程序段的输出结果是 int a=1234; printf("%2d\n",a); A.12 B.34 C.1234 D.提示出错、无结果 学生答案: C 参考答案: C 2、若有说明语句:int a,b,c,*d=&c; 则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是 A.scanf("%d%d%d",&a,&b,*d); B.scanf("%d%d%d",&a,&b,&d); C.scanf("%d%d%d",a,b,d); D.scanf("%d%d%d",a,b,*d); 学生答案: B 参考答案: A 3、以下合法的赋值语句是 A.x=y=100 B.d--; C.x+y; D.c=int(a+b); 学生答案: D 参考答案: B 4、设正x、y均为整型变量,且x=10 y=3,则以下语句的输出结果是 printf("%d,%d\n",x--,--y); A.10,3 B.9,3 C.9,2 D.10,2 学生答案: D 参考答案: D 5、以下程序的输出结果是 main()

{ int a=3; printf("%d\n",(a+=a-=a*a));} } A.-6 B.12 C.0 D.-12 学生答案: D 参考答案: D 6、以下程序段的输出结果是 char s[]="\\141\141abc\t"; printf ("%d\n",strlen(s)); A.9 B.12 C.13 D.14 学生答案: A 参考答案: A 7、下列程序执行后的输出结果是 main() { int x='f'; printf("%c \n",'A'+(x-'a'+1)); } A.G B.H C.I D.J 学生答案: A 参考答案: A 8、下列程序执行后的输出结果是 main() { char x=0xFFFF; printf("%d \n",x--); } A.-32767 B.FFFE C.-108 D.-32768

C语言上机作业试题5套含答案

第一次上机作业(2014): 要求: ?独立完成,上机调试通过后上交 ?作业提交邮箱: ?邮件主题命名:班级学号姓名(第1次作业), 例如:电1301班2王鹏(第1次作业) ?以附件形式将每次作业的所有程序源程序压缩打包后提交,压缩文件命名格式同上。 ?程序必须采用缩进格式 1.大写字母转换成小写字母 从键盘输入一个大写英文字母,输出相应的小写字母。 例:输入G 输出g 2.求平方根 输入一个实数x,计算并输出其平方根(保留1 位小数)。 例:输入17 输出The square root of 17.0 is 4.1 3.温度转换 设计一个程序将华氏温度转换成摄氏温度c = 5/9(f-32) a)输入华氏温度(实型) b)输出的摄氏温度结果保留两位小数 例:Please input Fahrenheit temperature: 76.8 The corresponding Celsius temperature is 24.89 4. 计算旅途时间 输入二个整数time1 和time2,表示火车的出发时间和到达时间,计算并输出旅途时间。 (输入的有效的时间范围是0000 到2359,不需要考虑出发时间晚于到达时间的情况。) 例:输入712 1411 (出发时间是7:12,到达时间是14:11) 输出The train journey time is 6 hours 59 minutes. 5. 数字加密 输入一个四位数,将其加密后输出。方法是将该数每一位上的数字加9,然后除以10 取余,做为该位上的新数字,最后将第1 位和第3 位上的数字互换,第2 位和第4 位上的数字互换,组成加密后的新数。 例:输入1257 输出The encrypted number is 4601 思考题:你能否编程找出谁做的好事? 有四位同学中的一位做了好事,不留名,表扬信来了之后,校长问这四位是谁做的好事。 ?A说:不是我。 ?B说:是C。 ?C说:是D。 ?D说:他胡说。 已知三个人说的是真话,一个人说的是假话。现在要根据这些信息,找出做了好事的人。 第二次上机作业(2014): 要求: ?独立完成,程序必须采用缩进格式,上机调试通过后上交

东莞理工学院C语言网上作业

《C语言程序设计》第2章作业 一、单选题(每小题5分,共100分,得分45 分) 1、1.关于C程序的构成描述,_________是不正确的。 A、一个源程序至少且仅包含一个main函数,也可包含一个main函数和若干个其他函数。 B、函数由函数首部和函数体两部分组成,二者缺一不可。 C、函数首部通常是函数的第1行,包括:函数属性、函数类型、函数名、函数参数等,不管有无函数参数,都必须用一对圆括号括起来。 D、函数体通常在函数首部下面,用一对花括号将声明部分和执行部分括起来,但不能为空。参考答案:D 2、2.C程序中,不管是数据声明还是语句,都必须有一个结束符,它是C语句的必要组成部分,该符号是_________。 A、逗号“,” B、句号“。” C、分号“;” D、单撇号“’”参考答案:C 3、3.下列关于C程序的运行流程描述,______是正确的。 A、编辑目标程序、编译目标程序、连接源程序、运行可执行程序。 B、编译源程序、编辑源程序、连接目标程序、运行可执行程序。 C、编辑源程序、编译源程序、连接目标程序、运行可执行程序。 D、编辑目标程序、编译源程序、连接目标程序、运行可执行程序。 参考答案:C 4、5.描述或表示算法有多种方法,______不是常用的表示方法。 A、自然语句 B、流程图或N-S图 C、伪代码 D、效果图参考答案:D 5、6.下面四个哪一个是C语言正确的标识符。 A、2xy B、data_file C、break D、a@https://www.360docs.net/doc/a16845135.html, 参考答案:B 6、7.C语言是一种结构化的程序设计语言,任何程序都可以将模块通过3种基本的控制结构进行组合来实现,这三种基本的控制结构是指______。 A、分支结构、循环结构、函数结构 B、顺序结构、选择结构、函数结构 C、顺序结构、分支结构、循环结构 D、以上描述都不正确参考答案:C 7、下列关于算法特性的描述,______是不正确的。 A、有穷性:指一个算法应该包含有限的操作步骤,而不能是无限的。 B、确定性:指算法的每一个步骤都应当是确定的,不应该是含糊的、模棱两可的。 C、有效性:指算法中的每一个步骤都应当能有效地执行,并得到确定的结果。 D、输入/输出性:指算法中可以有输入/输出操作,也可以没有输入/输出操作。 参考答案:D 8、关于运行一个C程序的描述,______是正确的。 A、程序总是从main()函数处开始运行,当main()函数执行结束时,程序也就执行结束。 B、程序总是从main()函数处开始运行,当调用其它函数时,也可在其它函数中执行结束。 C、当程序中无main()函数时,可以设置一个主控函数来代替main()函数,从而达到运行程序的目的。 D、以上描述都不正确。参考答案:A 9、下列关于C程序中复合语句的描述,______是正确的。 A、用一对圆括号“( )”将若干语句顺序组合起来就形成一个复合语句。

c语言第六次作业

第五题 #include int main () { int a[10][10],i,j,n; printf("Input n:"); scanf("%d",&n); printf("* "); for(j=1;j<=n;j++) { a[0][j]=j; printf("%d ",a[0][j]); } printf("\n"); for(i=1;i<=n;i++) { a[i][0]=i; printf("%d ",a[i][0]); for(j=1;j<=i;j++) { a[i][j]=a[i][0]*a[0][j]; printf("%d ",a[i][j]); } printf("\n"); } return 0; } 第二题 #include int main(void) { int a[12]={31,0,31,30,31,30,31,31,30,31,30,31};

int year,month,day,sum=0,i; printf("Input year,month,day:"); scanf("%d%d%d",&year,&month,&day); if(year%4==0&&year%100!=0||year%400==0) a[1]=29; else a[1]=28; for(i=0;i int main () { int n,i,j,a[6][6],index1,index2,index3,max; printf("Input n:"); scanf("%d",&n); printf("Input arry:"); for(i=0;i=max)

C语言作业

实验一 C程序的运行环境及简单程序编写(一) 一、实验目的 1. 了解VC++6.0集成环境的基本操作方法。 2. 了解在该系统上如何编辑、编译、连接和运行一个C程序。 3. 通过运行简单的C程序,初步了解C源程序的特点。 二、实验内容 1. 打印输出你的姓名,年龄,地址信息。 2. 编写程序,实现输出 ********************************************* C语言程序设计 ********************************************* 3. 编写程序,求2个整数的和、差、积、商。 实验二C程序的运行环境及简单程序编写(二) 一、实验目的 1. 编写运行简单的C程序,了解C源程序的特点。 二、实验内容 1. 编写程序,已知长方形的长为8cm,宽为3cm,求长方形的周长和面积。 2. 在上一题的源代码中,用2种注释方法,添加注释内容: 这是一个简单的C语言程序。 3. 编写程序,实现输出三行文字,第一行 Print: (1)\\\\\\\\\\ (2)&&&&&&&&&& (3)|||||||||| 实验三数据的存储与运算(一) 一、实验目的

1. 掌握变量的定义及使用 2. 掌握整型数据在程序中的表示及使用 二、实验内容 1.教材P19例2.1 2. 编写一个程序,要求用户输入一个美金数量,然后显示出如何用最少的面值为20美 元、10美元、5美元和1美元钞票来付款。 运行结果: Ener a dollar amount:93 Result: $20 bills:4 $10 bills:1 $5 bills:0 $1 bills:3 3. 输入2个变量的值,交换这2个变量的值后输出。 Input (x,y):2,3 output(x,y):3,2 实验四数据的存储与运算(二) 一、实验目的 1. 掌握整型数据在程序中的表示及使用 2. 掌握实型数据在程序中的表示及使用。 二、实验内容 1.教材P24例2.2 2.教材P46习题1 3. 编写一个程序,要求用户输入一个两位数,然后逆序打印出这个数。 Enter a two-digit number:28 The reversal is :82 实验五数据的存储与运算(三) 一、实验目的 1. 掌握符号常量、字符型数据、字符串的应用 2. 掌握强制类型的转换 二、实验内容 1.给出园半径,求园的体积v=4/3πr3 2.将小写字母转换为大写字母,并将其按字符和整数两种方式输出。 3.输入从午夜开始的秒数total_sec,请计算出等价的时间,用小时(0 ~23)、分钟(0 ~59) 和秒(0 ~59)表示。(建议使用%运算符) Enter total seconds:2590 Time:0:43:10 4.编程计算1/2+1/3+1/5的结果。 实验六数据的存储与运算(四)

C语言作业2

期待的输出时间限制内存限制#include main() { int a,b,c,q,e,f,g,h,i,j,k,m,n,p,x,y,z; scanf("%1d",&a); scanf("%1d%1d%1d%1d%1d",&b,&c,&q,&e,&f); scanf("%1d%1d%1d%1d%1d",&g,&h,&i,&j,&k); x=a+c+e+g+i+k; y=b+q+f+h+j;

n=m-1; z=n%10; p=9-z; printf("%d\n",p); } H2:数制转换(选作) 成绩: 5 / 折扣: 0.8 我们通常使用的都是十进制的数字,但其实在生活中也经常会使用其它进制。 这个题目会给你两个不同的数字,它们不属于同一进制,要求你计算出当它们分别处于何种进制之中时,两个数字相等。譬如12 和 5 ,在十进制下它们是不等的,但若12 使用 3 进制而5 使用六进制或十进制时,它们的值就是相等的。因此只要选择合适的进制,12 和5 就可以是相等的。 程序的输入是两个数字M 和N( 其十进制的值不超过1000000000) ,它们的进制在2~36 之间。对于十以下的数字,用0~9 表示,而十以上的数字,则使用大写的A~Z 表示。 求出分别在2~36 哪种进制下M 和N 相等。若相等则输出相应的进制,若不等则输出错误信息。当然了,对于多种可能成立的情况,找出符合要求的进制最小的一组就行了。信息的格式见测试用例。 测试输入期待的输出 制 #include"string.h" #include"stdio.h"

{ char a[N],b[N],d[N],e[N],d0[N]; int i,j,o,r,g,h,w,t,l,k,max1,max2; double p[N],q[N]={0},u[N],v[N]={0},c[N],f[N],m,n; for(i=0;i='\x30') c[i]=b[i]-'0'; if(b[i]<='\x5A'&&b[i]>='\x41') c[i]=b[i]-'7'; } for(i=0;i='\x30') f[i]=e[i]-'0'; if(e[i]<='\x5A'&&e[i]>='\x41') f[i]=e[i]-'7'; } max1=c[0]; for(i=1;i

C语言作业

菱形 #include int main() { int i,j; for(i=1;i<=4;i++) { for(j=1;j<=4-i;j++) printf(" "); for(j=1;j<=2*i-1;j++) printf("*"); printf("\n"); } for(i=1;i<=3;i++) { for(j=1;j<=i;j++) printf(" "); for(j=1;j<=7-2*i;j++) printf("*"); printf("\n"); } return 0; } 三角形 #include int main() { int i,j; for(i=1;i<=5;i++) { for(j=1;j<=24-i;j++) printf(" "); for(j=1;j<=2*i-1;j++) printf("*"); printf("\n"); } return 0; }

乘法口诀 #include int main() { int i,j; for(i=1;i<=9;i++) { for(j=1;j<=9;j++) if(j<=i) printf("%d*%d=%d ",j,i,i*j); printf("\n"); } return 0; } 统计大写字母 #include #include int main() {char c; int num[26]={0},i; while((c=getchar())!='#') if(isupper(c)) num[c-'A']+=1; for(i=0;i<26;i++) if(num[i]) printf("%c:%d\n",i+'A',num[i]); return 0; } 最小公倍数,最大公约数 #include int main() { int m,n,p,r,t; scanf("%d,%d",&n,&m); if(n

c语言第六次作业解析

第六次作业:指针 (以下题目如无特殊声明,请使用指针技术实现,尽量不要使用数组作为形参,也尽量避免使用数组下标引用数组元素) 1.数组元素循环移位 有n个整数,使前面的各整数顺序向后移动m个位置,后面的m个整数则变成最前面的m个数。写一函数实现以上功能。 在主函数中输入n及n个整数,输入m (m void main() { void inv(int *p,int n,int m); int n,m,a[20],*p; printf("please input n="); scanf("%d",&n); printf("please input %d numbers:",n); p=a; while(p

2. 矩阵元素的排序 将一个5×5的整数型矩阵中各元素重新排序。排序规则为,矩阵元素按照从左到右,从上到下的顺序依次递增,即 4,41,10,14,03,02,01,00,0.......a a a a a a a a ≤≤≤≤≤≤≤。 要求编写一个函数实现上述排序功能。 在主函数中输入该矩阵,调用编写的上述函数,然后输出排序后的矩阵。 #include void main() { void inv(int (*x)[5]); int i,j,a[5][5]; int (*p)[5]; printf("please input an 5*5 array:\n"); p=a; for(i=0;i<5;i++) for(j=0;j<5;j++) scanf("%d",*(p+i)+j); inv(p); printf("the new array:\n"); for(i=0;i<5;i++) { for(j=0;j<5;j++) printf("%4d",*(*(p+i)+j)); putchar('\n'); }

C语言练习作业及参考答案

习题一 1、C语言源程序最多可能由____ABCD____________部分组成? A) 预处理部分B)变量说明部分 C) 函数原型声明部分D)函数定义部分 2、一个完整的C语言源程序最少必须有___C____。 A)若干个主函数B)若干个函数 C)且只能有一个主函数D)一个函数 3、C语言以函数为源程序的基本单位最主要有利于__B_____。 A)程序设计结构化B)程序设计模块化 C)程序设计简单化D提高程序设计有效性 4、要使得C语言编写的程序能够在计算机上运行并得出正确结果,必须要先经过______________B_______________________。 A)编辑和链接B)编译和链接 C)修改和运行D运行并输入数据 5、一个C程序的执行是从______A______。 A)本程序的main函数开始,到main函数结束。 B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C)本程序的main函数开始,到本程序文件的最后一个函数结束 D)本程序文件的第一个函数开始,到本程序main函数结束 6、以下叙述正确的是__A______。 A)在C程序中,main函数必须位于程序的最前面 B)C程序的每行中只能写一条语句 C)C语言本身没有输入输出语句 D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误 7、以下叙述不正确的是___D_____。 A)一个C源程序可由一个或多个函数组成 B)一个C源程序必须包含一个main函数 C)C程序的基本组成单位是函数 D)在C程序中,注释说明只能位于一条语句的后面 8、C语言规定:在一个源程序中,main函数的位置是___A_____。 A)必须在最开始 B)必须在系统调用的库函数的后面 C)可以任意 D)必须在最后

C语言作业2

H1:计算通用产品代码(UPC)的校验位(选作) 许多年来,货物生产商都会把超市售卖的每件商品上放置一个条码。这种被称为通用产品代码(Universal Product Code,缩写UPC)的条码可以识别生产商和产品。超市可以通过扫描产品上的条码来确定支付此项商品的费用。每一个条码由十二位数字构成,通常这些数字会显示在条码下面。例如,包装为26盎司的Morton牌碘化盐所用条码下的数字是:0 24600 01003 0 第一个数字表示商品的种类(0表示大部分的食品杂货,2表示需要称量的货品,3表示药品或和健康相关的商品,而5表示优惠券)。接下来的一组五位数字用来识别生产商。而第二组五位数字则用来区分产品类型(其中包括包装尺寸)。最后一位数字是“校验位”,它可以帮助鉴别先前数字中的错误。如果条码扫描出现错误,那么前十一位数字和最后一位数字可能会不一致,而超市扫描机也会拒绝整个条码。 下面是一种计算校验位的方法:首先把第一位、第三位、第五位、第七位、第九位和第十一位数字相加。然后把第二位、第四位、第六位、第八位和第十位数字相加。接着把第一次加法结果乘以3后再加上第二次加法的结果。随后,再把上述结果减去1。减法后的结果除以10取余数。最后,用9减去上一步骤中得到的余数。现在以Morton碘盐为例,第一组数字的加法是0+4+0+0+0+3=7,而第二组数字的加法是2+6+0+1+0=9。把第一组加法值乘以3后再加上第二组加法值得到的结果是30。再减去1,结果变为29。再把这个值除以10取余数为9。9在减去余数结果9,最终值为0 输入 每次输入三行数据,第一行是UPC的第一位数字,第二行是UPC的第一组五位数字,第三行是UPC的第二组五位数字。 输出 UPC的校验位 页脚内容1

川大c语言第一次作业

1.运行如下程序,并改正错误。 /*Hello,World!的变形程序*/ #include int main( ) { printf("________________\n| Hello, |\n| World! |\n(\\(\\ /\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n(^?^)/\no_(\")(\")\n ");\\这里连成一排的 return 0; } 结果如下 2.用printf函数输出如下字符串:"abc\t123\r456\nabc\b123\\45",并分析输出结果。 " 解释: \t代表水平制表,每8个字符为一个输出区,所以首先是abc 123 \r代表将光标放回到行首,打出456将刚才的abc覆盖,现在是456 123 \n是换行 \b是退格,所以打出第二排的abc后退格成ab再打印成ab123, \\即代表\, 所以结果如上图。 3.将2147483648,(short)32768,-1用printf函数输出为十进制、八进制和十六进制形式, 并分析输出结果。 由于2147483648是2^31,所以转换为二进制是100000……0000(31个0),对于32bit的电

脑,ing最大是2^31-1,所以2^31好像是被认为成了最小值了,即-2^31 然后,又二进制转化为8进制,3位3位的变,转16进制则4位4位的变,结果如下 对于(short)32668,还是先转换为二进制111 111 110 011 100,转化为8进制是77634,111 1111 1001 1100转化为16进制是7f9c,结果如下 对于-1,转化为二进制是2^31-1,即为11111……11111(32个1),转化为8进制时,\o代表的是无符号的8进制数,32%3=2,所以第一位是3,后面是7,结果是37777777777, 由于32%4=0,所以是8个f,结果如下图 4.写程序把一个4位整数(比如qbsg)转换成另一个形式(sqgb)。 #include int main(int argc, char *argv[]) { int a,q,b,s,g,px ; printf("请输入一个正的4位数"); scanf("%d",&a); q=a/1000; b=(a-q*1000)/100; s=(a-q*1000-b*100)/10; g=(a-q*1000-b*100-s*10); px=1000*s+100*q+10*g+b; printf("转换结果是:%d",px);

“C语言”网上作业系统的实现

“C语言”网上作业系统的实现 摘要本文论述的是一个基于INTERNET 的B/S模式下C语言网上作业系统的实现方法、思路及过程。本系统用ASP动态网页的形式实现,系统前台界面美观,设置多级用户权限分类登录,可分为教师、学生、管理员三类用户;后台功能强大,操作简单,满足系统维护需要。本系统很好地完成了C语言的教与学,使得教师可以在线布置作业、批改作业、对学生成绩进行统计、在线答疑;学生亦可以实现在线浏览作业、提交作业、在线疑问等功能。另外,系统在线直接调用TC程序运行服务器端C语言作业,并调试运行得到结果,是本系统最大的特色;系统还可以完成学生成绩的数据统计,供教师参考,以适当修正授课进度,以方便学生调整学习的进度。 关键词ASP系统;作业批改;TC调用;数据统计 随着信息技术的高速发展,计算机的应用越来越普及和广泛,所以目前社会上各个学校提交作业的形式也由原来的手工誊写改革成了上交电子文档,但是目前学校作业管理一般都采用以下两种方法: 1)将作业存在U盘、光盘等介质上。 2)存放到教师电脑上的一个共享目录内。 用前一种方法作业收缴麻烦、不便管理;第二种方法要好一些,但学生可以随意查看、更改作业,老师在帮学生修改作业时,也很容易搞乱哪些是改过,哪些没改过;这些都使教师对学生作业的管理产生很大的麻烦。 这就必然要求有更好方法来实现对作业的管理,我的C语言网上作业系统就在这样的情况下应孕而生了。它的应用不仅是在C语言这一门课程中。在现代化教育技术模式下,计算机在学校已相当普及。在这样的环境下,许多学校对学生的部分作业提出了更高要求,例如要求学生作业能够长期保存到计算机中以利于学校将来教学的重复利用等等,就要求教师能够在任何联网的计算机上进行在线作业的布置、批改、成绩统计、成绩浏览等,要求学生能够查询自己上交的作业,其它相关人员也可以利用计算机通过互联网对学生作业情况进行了解与查询。这是未来教育发展的趋势,也确实是一个行之有效的办法,值得去推广。 本文的创新之处有以下两个方面: 1)实现普通作业管理之外,对某个学生的全部作业的平均分以及对某一次作业全部学生的平均分进行了适当的统计,以此来掌握学生的学习情况,教师就可根据数据进行分析适当调整授课速度和难度。 2)对学生上交C语言程序直接在线运行,查看程序结果,直接根据程序结果给学生评分,避免书面程序作业批改时的错误。

相关文档
最新文档