c语言05-06秋试卷及答案
更新时间:2024-04-25 19:14:01 阅读量: 综合文库 文档下载
(051)上海大学2005-2006年秋季学期试卷 2005.11 课程名: 程序设计基础(C) 学分: 5
学号: 姓名: 学院/教师:
题号 题分 得分 一 20 二 30 三 8 四 12 卷面 70 上机 20 总分 90
考生须知:
1. 试卷和答题纸上的“学号、姓名、学院、教师”都要填上;
2. 所有答题内容都写在答卷纸上,交卷时将试卷和答卷纸一起交上; 3. 不遵守上述要求者考试成绩将为零分。
4. 本卷考试的得分为卷面分,电脑上机考试(另行安排)的得分为上
机分,考试成绩为卷面分与上机分之和。
一、基础题(20分,每小题2分)
1.定义int x=51,y=8; 写出y*=(x++ % 2==0)?10:20;执行后变量 x与y的值。
2.定义int n=5,a=12;写出a+=(n%=3);执行后变量n与a的值。 3.定义int b=7;float a=2.5,c=4.7;计算表达式b*(int)(a+c)/2 与(float)b/(int)a的值。
4.将二进制10001101分别转化为十六进制和十进制数。
5.分别写出判断表达式:a小于b或小于c,a和b都小于c。 6.分别写出表达式:实数x四舍五入为整数,实数x的小数部分。 7. 定义int a=9,b=14,c=4; 分别计算表达式(a && !b) || (b==a+c) 与(a & b) | c的值。
8.已知某个月的1日为星期六,该月有n天,试写出表达式计算 该月所跨的周数(从星期日至星期六为一周,如n=30时为6周)。 9.定义char *p[10]; 试用puts写出语句:输出数组中下标i对应的 字符串。
10.定义struct student {int num;char name[20];} stu[3]; 试用scanf写出语句:输入下标i对应的num与name信息。
(051试卷) 1 / 9
二、阅读程序(30分,每小题3分)
仔细阅读下列程序,将各程序的运行结果写在答卷纸上。 (1)程序
#include
int i;
for ( i = 1; i <= 5; i++ ) printf( \ printf( \
for ( i = 1; i <= 5; i++ ) printf( \ printf( \}
输出:?
(2)程序
#include
int n, i;
scanf( \ printf( \
for ( i = 2; i <= n; i++ ) {
if ( n % i == 0 ) {
printf( \ n /= i; i--; } } }
输入:60 输出:?
(051试卷) 2 / 9
(3)程序
#include
int i, a[6] = { 85, 63, 47, 99, 76, 54 }; for ( i = 0; i < 6; i++ ) switch( a[i]/10 ) {
case 10: case 9: printf(\ case 8: printf(\ case 7: printf(\ case 6: printf(\ default: printf(\ } }
输出:?
(4)程序
#include
int i, j, k, m, a[M]; for ( i = 0; i < M; i++ ) scanf( \ for ( i = M; i > 0; i-- ) {
for ( m = 0; m < M; m++ ) printf( \ printf( \ k = a[M-1];
for ( j = M-1; j > 0; j-- ) a[j] = a[j-1]; a[0] = k; } }
(051试卷) 3 / 9
输入:5 6 7 8 输出:?
(5)程序
#include
int func( int x ) {
static int z = 8; x += (g++) + (++z); return x; }
main() {
int i, x = 200, y;
for ( i = 0; i < 3; i++ ) {
y = func( x );
printf( \ } }
输出:?
(6)程序
#include
int func( char str[], int n ) {
int d,r;
d = str[n-1] - '0'; if ( n == 1 ) r = d; else
r = 8*func(str,n-1) + d; return r; }
main() {
(051试卷) 4 / 9
printf( \ printf( \ printf( \}
输出:?
(7)程序
#include
int a[8] = { 0, 8, 16, 30, 40, 50, 60, 70 }; int n=2, *p=&a[1]; n += *(p++);
printf( \ n *= ++(*p);
printf( \ n -= (*(++p))--; printf( \}
输出:?
(8)程序
#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 str[80] = \单词之间为一个空格*/ printf( \ puts( toucase(str) );
(051试卷) 5 / 9
puts( strcat(str,\}
输出:?
(9)程序
#include
int a[3][4]={ {1234,2341,3412,4123}, {4321,3214,2143,1432}, {2413,4132,1324,3241} }; int i, j, k;
for ( i = 0; i < 3; i++ ) {
for ( k = 0, j = 1; j < 4; j++ ) if ( a[i][k] > a[i][j] ) k = j;
printf( \ } }
输出:?
(10)程序
#include
FILE *fp; char ch;
fp = fopen( \ while ((ch=getchar())!=' ') fputc( ch, fp );
fprintf( fp, \ while ((ch=getchar())!='\\n') fputc( ch, fp ); fclose( fp ); }
假设文件操作总是成功的。
(051试卷) 6 / 9
输入:Welcome Freshman
请写出程序运行后文件file1.txt的内容。
三、改错程序(8分,每错误点2分)
下列程序各有两个错误(两个错误分别是在不同的行上),按原来程序的要求,纠正错误,并将错误所在行号以及错误行完整的正确内容写在答卷纸的对应栏内。
(1)以下程序输入10数,从小到大排序后再输出。 #include
/*1*/ int a[9], i, j, t;
/*2*/ for ( i = 0; i < 10; i++ ) /*3*/ scanf( \/*4*/ for ( i = 0; i < 9; i++ )
/*5*/ for ( j = 0; j < 9-i; j++ ) /*6*/ if ( a[j] > a[j+1] )
/*7*/ { a[j]=t; a[j+1]=a[j]; t=a[j+1]; } /*8*/ for ( i = 0; i < 10; i++ ) /*9*/ printf( \ }
(2)以下程序输入一行字符,判断其是否对称,是则输出Yes,否则输出No。
#include
/*1*/ char a[80]; int n, i; /*2*/ gets( a[80] ); /*3*/ n = strlen( a );
/*4*/ for ( i = 0; i < n/2; i++ ) /*5*/ if ( a[i] != a[n-1-i] ) /*6*/ continue; /*7*/ if ( i < n/2 )
/*8*/ printf( \
(051试卷) 7 / 9
/*9*/ else
/*10*/ printf( \ }
四、程序填空(12分,每填空2分)
阅读下列问题描述和相应的C程序,把应填入其中 (n) 处的内容写在答卷纸的对应栏内。
(1)以下程序输入整数m和n,按每行7个数的格式输出m和n之间的所有素数(包括m和n)。 #include
int m, n, i, j, isyes, ct=0; scanf( \ for ( i = m; i <= n; i++ ) {
(1) ;
for ( j = 2; j <= i-1; j++ ) if ( (2) ) isyes = 0; if ( isyes == 1 ) {
printf( \ ct ++;
if ( (3) ) printf( \ } } }
(2)以下程序中insert1函数将新结点插入到链表的表头处,printlist函数输出链表的内容,主函数main用于测试两个函数。 #include
(051试卷) 8 / 9
{ /*链表结点定义*/ int num; /*学号*/ char name[20]; /*姓名*/
struct node *next; /*指向下一结点的指针*/ };
struct node *insert1(struct node *head, int num, char *name) { /*将结点插入到链表的表头,并返回新链表的表头*/ struct node *p;
p = (4) ; p->num = num;
strcpy( p->name, name ); p->next = head;
return (5) ; }
void printlist(struct node *head) { /*输出链表的内容*/ struct node *p;
for ( p=head; p!=NULL; p=p->next )
printf( \ }
main()
{ /*先定义一个空链表,接着插入三个结点,然后输出链表*/ struct node *head = NULL;
head = insert1( head, 111, \ head = insert1( head, 222, \ head = insert1( head, 333, \ printlist( head );
/*链表的结点删除部分略*/ }
程序运行结果为: 333 gong 222 chen 111 wang
(051试卷) 9 / 9
(051)上海大学2005-2006年秋季学期答卷 2005.11 课程名: 程序设计基础(C) 学分: 5
学号: 姓名: 学院/教师:
题号 题分 得分 一 20 二 30 三 8 四 12 卷面 70 上机 20 总分 90 2分/格 小题 1 2 3 4 5 6 7 8 9 10 第 一 题 答 栏 (基础题) 20% 前 式 后 式 x= 52 y= 160 n= 2 24 8D a
3分/格
正在阅读:
c语言05-06秋试卷及答案04-25
焊工代号意义06-03
青岛市“十二五”科学和技术发展规划纲要02-02
英语 常用 4000英文 单词04-05
读《丰富的痛苦》06-09
在全市党委办公室系统工作会议上的讲话08-23
日本为什么会陷入失去的十年09-25
2010试题A10-31
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 试卷
- 答案
- 语言
- 05
- 06
- 职业教育中心艺体楼施工组织设计
- 烧纸钱的写法
- 东坡区介绍
- 中国证券市场分析报告
- 分析化学答案(三师版下)
- 二年级 第二讲 火柴棒计算
- 某电力大楼灯光照明方案书
- 建馨苑9#毕业设计
- 公允价值在我国的应用研究
- 关于加强广播电视安全生产和安全播出工作的通知
- 文山县官房铅锌矿利用方案(李07.1.30) - 图文
- 365天英语口语大全 - 交际口语篇电子书
- 部门科级干部选拔任用管理工作暂行规定
- 2019高中生物 第二章 第三节 动物生命活动的调节课时
- 南华大学MATLAB实验报告2
- 2017咨询工程师继续教育有线通信试卷及答案
- 发电机怎么进行功率调节
- 超星尔雅创新创业考试答案 -
- 中兴笔试题(1)
- 化学分场制水值班员、化验员专业考试试卷(I卷)