文档介绍:(043 试卷) 6 / 10
(043 试卷) 5 / 10
(043 试卷)1 / 10
(043)上海大学2004-2005年春季学期试卷
课程名: 程序设计基础(C) 学分:__5
学号: 姓名: 学院/教师:
题号
-一一
-——二
三——三
「四
卷面
上机
总分
题分
20
30
8
「12
70
20
90
得分
考生须知:
试卷和答题纸上的“学号、姓名、学院、教师”都要填上;
所有答题内容都写在答卷纸上,交卷时将试卷和答卷纸一起交上;
不遵守上述要求者考试成绩将为零分。
本卷考试的得分为卷面分,电脑上机考试(另行安排)的得分为上
机分,考试成绩为卷面分与上机分的和。
一、基础题(20分,每小题2分)
定义int x=42,y=13;写出y+=2*(x++);执行后各变量的值。
设a=b=5;分别判断表达式的真假:6>a>4与b++==6
分别计算字符串的长度:“Computer”与“ \\abc\\123\nmop”。
分别计算表达式的值:43 & 38与(43 A 38) << 2。
设n为正整数,写出判断表达式:n的个位数与百位数相等。
设x为浮点数,写出表达式:浮点数 x的小数部分。
假设对n (n>0)个学生按下列方法进行分班:每班 k (k>0)个 学生,最后一个班若不足k人也单独编成一个班。写出表达式 表示所编班的个数。
定义char ch;写出语句:如果ch为小写字母则将ch转换为大
(043 试卷) 2 / 10
(043 试卷) 5 / 10
(043 试卷)1 / 10
写,否则 ch 不变。
9.定义 int a[10]; 写出语句片段:输入 a 数组中的 10 个整数。
10.定义 char *pc[]={ "Shanghai", "Beijing", "Guangzhou" }; 写出语 句片段:输出 pc 数组中的所有字符串,每字符串一行。
二、阅读程序 (30 分,每小题 3 分)
仔细阅读下列程序,将各程序的运行结果写在答卷纸上。
程序
#include <>
main()
{
int m,n,k,i;
scanf( "%d%d", &m, &n );
if ( m < n )
k = 1;
else
k = -1;
for ( i = m; i != n; i+=k )
printf( "%d ", i );
}
输入: 22 16
输出:?
程序
#include <>
main()
{
int m, n = 0;
for ( m = 1; m <= 6; m++ )
{
switch( m )
{
case 4:
case 6:
case 9:
case 11:n = 30;
(043 试卷) 6 / 10
(043 试卷) 3 / 10
(043 试卷)1 / 10
break; case 2: n = 28;
break; default:n = 31;
break;
}
printf( "%d,", n );
}
}
输出:
?
程序
#include <>
int isprime(int n)
{
int i;
for ( i = 2; i < n; i++ )
if ( n%i == 0 ) return 0;
return 1;
}
void testfunc( int n )
{
int i;
for ( i = 2; i < n; i++ )
if ( isprime(i) && isprime(n-i) ) break;
printf( "%2d = %2d + %2d\n", n, i, n-i ); } main() {
int n;
for ( n = 10; n <= 14; n += 2 ) testfunc( n );
} 输出:?
程序
#include <> main()
{
char a[5][6];
int i, j;
for ( i = 0; i < 5; i++ ) for ( j = 0; j < 5; j++ ) a[i][j] = '*';
for ( i = 0; i < 5; i++ )
{ a[i][i] = '#'; a[i][4-i] = '@'; a[i][5] = '\0';
}
for ( i = 0; i < 5; i++ )