(052)上海大学2005-2006年冬季学期试卷.doc

上传人:e****s 文档编号:62717025 上传时间:2022-11-22 格式:DOC 页数:15 大小:72.50KB
返回 下载 相关 举报
(052)上海大学2005-2006年冬季学期试卷.doc_第1页
第1页 / 共15页
(052)上海大学2005-2006年冬季学期试卷.doc_第2页
第2页 / 共15页
点击查看更多>>
资源描述

《(052)上海大学2005-2006年冬季学期试卷.doc》由会员分享,可在线阅读,更多相关《(052)上海大学2005-2006年冬季学期试卷.doc(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、(052)上海大学2005-2006年冬季学期试卷 2006.3课程名: 程序设计根底(C) 学分: 5 学号: 姓名: 学院/教师: 题号一二三四卷面上机总分题分21368127723100得分考生须知:1. 试卷和答题纸上的“学号、姓名、学院、教师都要填上;2. 所有答题内容都写在答卷纸上,交卷时将试卷和答卷纸一起交上;3. 不遵守上述要求者考试成绩将为零分。4. 本卷考试的得分为卷面分,电脑上机考试另行安排的得分为上机分,考试成绩为卷面分与上机分之和。一、根底题(21分,第1小题3分,其它每题2分)1定义int x=51,y=26,z; 写出z=(x+ / 2=-y)?10:20;执行后

2、各变量的值。2定义int n=8,a=15;写出a*=(n%=3);执行后变量n与a的值。3定义int b=7;float a=5.2,c=6.3;计算表达式b*(int)(a+c)/2与(float)b/(int)a的值。4将二进制11001000分别转化为十六进制和十进制数。5分别写出判断表达式:a小于b和c,a加b不大于c。6设n为正整数,分别写出表达式:计算n的个位数和十位数。7. 定义int a=5,b=6,c=3; 分别计算表达式!(a & b) | (b=a+c)与(a & b) | c的值。8定义int a10; 写出语句片段:输入a数组中的10个整数。9定义char *p10

3、; 试用gets写出语句:输入数组中下标0对应的字符串。10设从星期日至星期六为一周,星期日用0表示,星期一用1表示,依此类推,星期六用6表示,某个月的天数使用变量n表示,该月1日的星期使用变量d表示,试写出表达式计算该月所跨的周数如d=6,n=30时为6周。二、阅读程序(36分,每题4分)仔细阅读以下程序,将各程序的运行结果写在答卷纸上。1程序#include main()int m,n,i,k=1;scanf( %d%d, &m, &n );if ( mn )k=-1;for ( i=m; i!=n; i+=k )printf( %dt, i );printf( n );/*输入:30 2

4、2*/输出:?2程序#include main()int i, n=0;for ( i=1; 1; i+ )if ( (i%2=0) & (i%3=0) )n+;printf( %4d, i );if ( n%4=0 )printf( n );if ( n=12 )break;输出:?3程序#include void prt2( long n )int a10, i, j;long k=1, d=0, e=0;for ( i=0; n0; i+ )ai = n%10;n /= 10;for ( j=0; ji; j+=2, k*=10 )d += aj*k;if ( j+1 i )e += a

5、j+1*k;printf( Data d=%ldn, d );printf( Data e=%ldn, e );main()long d;scanf( %ld, &d );prt2( d );/*输入:123456789 */输出:?4程序#include chara56;void fill1(void)inti, j;for ( i = 0; i 5; i+ )for ( j = 0; j 5; j+ )aij = *;void fill2(void)int i;for ( i = 0; i 5; i+ )aii = #;ai4-i = ;ai5 = 0;void output(void)i

6、nt i;for ( i = 0; i 5; i+ )puts( ai );main()fill1();fill2();output();输出:?5程序#include #include char *toucase( char *str )char *p;for (p=str; *p!=0; p+ )if ( *p=a & *p=z )*p = *p - a + A;return str;main()char str81, a81=;int n;gets( str );n=strlen( str );printf( Length=%dn, n );strcat( str, a );strcat

7、( a, str );puts( a );puts( toucase(a) );a6=0;puts( a );/*输入:abcde */输出:?6程序#include main()int a=10,11,12,13,14, *p, n;p=&a0;n=*(p+);n+=*(+p);n+=(*(p+=2)+;n-=(*(-p)-;n-=*(-p-1);printf(n=%dn,n);printf(a2=%d,a3=%d,a4=%dn,a2,a3,a4);输出:?7程序#include int func1( int n )if ( n=1 )return 1;return 2*func1(n-1)

8、;int func2( int n )if ( n=1 )return 1;return 2*func2(n-1) + func1(n-1);main()int i;for ( i=1; i=4; i+ )printf( Data1=%d, Data2=%dn, func1(i), func2(i) );输出:?8程序#include #include main()int n, *p, i, j, t;scanf( %d, &n );p=malloc( n*sizeof(int) );for ( i=0; in; i+ )scanf( %d, p+i );for ( i=0; in-1; i+

9、 )for ( j=0; jn-1-i; j+ )if ( pj pj+1 ) t=pj;pj=pj+1;pj+1=t; for ( i=0; in; i+ )if ( (i=0) | (pi!=pi-1) )j=i+1;printf( No=%d, Data=%dn, j, pi );free( p );/*假设内存分配函数总是成功的*/*输入:4 33 66 33 55*/输出:?9程序#include main()FILE *fp;int i,j;fp=fopen(file4.txt,w);for ( i=1; i=4; i+ )for ( j=1; j=4; j+ )fprintf(

10、fp, %3d, i*j );fprintf( fp, n );fclose( fp );/*假设文件操作总是成功的*/三、改错程序(8分,每错误点2分)以下程序各有两个错误两个错误分别是在不同的行上,按原来程序的要求,纠正错误,并将错误所在行号以及错误行完整的正确内容写在答卷纸的对应栏内。1以下程序输入整数n和n个整数,将n个整数向前移动一个位置,第一个数字移到最后,并输出移动位置后的结果。#include main()int a100,n,i,t;/*1*/scanf( %d, &n );/*2*/for ( i=0; in; i+ )/*3*/scanf( %d, ai );/*4*/t

11、 = a0;/*5*/for ( i=0; in-1; i+ )/*6*/ai = ai-1;/*7*/an-1 = t;/*8*/for ( i=0; in; i+ )/*9*/printf( %dt, ai );/*如输入:5 1 2 3 4 5 */*那么输出:2 3 4 5 1*/2以下程序中insert1函数将新结点插入到链表的表头处,printlist函数输出链表的内容,主函数main用于测试两个函数。#include #include #include struct node/*链表结点定义*/intnum;/*学号*/char name20;/*姓名*/struct node

12、*next;/*指向下一结点的指针*/;struct node *insert1(struct node *head, int num, char *name)/*将结点插入到链表的表头,并返回新链表的表头*/struct node *p;/*1*/p = (struct node *)malloc(sizeof(struct node);/*2*/p-num = num;/*3*/strcpy( p-name, name );/*4*/p-next = head;/*5*/return head;void printlist(struct node *head)/*输出链表的内容*/stru

13、ct node *p;/*6*/for ( p=head; p!=NULL; p+ )/*7*/printf( %4dt%sn, p-num, p-name );main()/*先定义空链表,接着插入二个结点,最后输出链表*/struct node *head = NULL;head = insert1( head, 111, wang );head = insert1( head, 222, chen );printlist( head );/*链表的结点删除局部略*/*运行结果为:*/* 222 chen*/* 111 wang*/四、程序填空(12分,每填空2分)阅读以下问题描述和相应的

14、C程序,把应填入其中 (n) 处的内容写在答卷纸的对应栏内。1以下程序输入一行字符,判断其是否对称,是那么输出Yes,否那么输出No。#include #include main()char a80;int n, i;gets( a );n = (1) ;for ( i = 0; i n/2; i+ )if ( (2) )break;if ( (3) )printf( Non );elseprintf( Yesn );2以下程序中listhigh函数列出所有取得最高分数的学生信息,main函数使用5个学生测试listhigh函数。#include #include #include struc

15、t student/*学生结构体定义*/intnum;/*学号*/float score;/*成绩*/;void listhigh( struct student stu, int n )float max;int i;max = (4) ;for ( i=1; i max )max = stui.score;for ( i=0; in; i+ ) if ( (5) )printf( %d, %4.1fn, stui.num, stui.score );main()struct student stu5 = 101,77.7, 102,96.1, 103,65, 104,96.1, 105,8

16、6 ;listhigh( (6) );/*运行结果为:*/*102, 96.1*/*104, 96.1*/(052)上海大学2005-2006年冬季学期答卷 2006.3课程名: 程序设计根底(C) 学分: 5 学号: 姓名: 学院/教师: 题号一二三四卷面上机总分题分21368127723100得分小题第 一 题 答 栏 根底题 21%前 式后 式1x= 52 y= 25z= 102n= 2a= 30 3384C82005ab&aca+bc)6n%10n/10%10或n%100/107假 或 078for(i=0; inext)小计:填空号第 四 题 答 栏 程序填空 12%2分/格1. (1)strlen(a)1. (2)ai != an-1-i1. (3)i n/2 或 i != n/2 或ai != an-1-i 或 i = max 2. (6)stu, 5小计:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 工程图纸

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁