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