C语言模拟试卷10
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言模拟试卷10
一、基础题(20分,每小题2分)
1.计算表达式的值:(float)15/(int)2.5。
2.已知int m=5, n=7; 则执行m *= n++; 后计算m与n的值。3.分别计算表达式的值:10 & 12、10 ^ 12。
4.写出逻辑表达式:a为偶数且b为奇数。
5.写出算术表达式:实数x小数点后第三位四舍五入。
6.计算字符串"Hello,world"的长度。
7.已知int a[10],*p=a; 计算表达式(&a[8] - &p[2]) 的值。
8.写出printf("%u,%d",-2,65530);的运行结果。
9.写出一个结构体类型定义:结构体名为stuinfo,成员num为整型,成员score为实型。
10.已知有char *ls[]={"first","second","third"};试写出表达式表示字符串second中的字符'o'。
二、阅读程序(32分,每小题4分)
仔细阅读下列程序,写出各程序的运行结果。
(1)程序1
main()
{
int y;
scanf( "%d", &y );
if ( y%4==0 && y%100!=0 || y%400==0 )
printf( "%d is leap year.\n",y );
else
printf( "%d is not leap year.\n",y );
}
输入:2003
输出:?
(2)程序2
main()
{
int a[10]={11,10,12,11,13,12,15,14,17,16};
int i, sum=0;
for ( i = 0; i < 10; i+=2 )
sum += a[i];
for ( i--; i >= 0; i-=2 )
sum -= a[i];
printf( "sum = %d\n", sum );
}
输出:?
(3)程序3
main()
{
int x,y,z,i;
char op;
for ( i = 0; i < 2; i++ )
{
scanf( "%d%c%d",&x,&op,&y );
switch( op )
{
case '+': z=x+y;break;
case '-': z=x-y;break;
case '*': z=x*y;break;
case '/': z=x/y;break;
}
printf( "%d%c%d=%d\n",x,op,y,z );
}
}
输入:3*6 6-9
输出:?
(4)程序4
void func(int x)
{
static int last = 0;
printf( "New=%d, Last=%d\n", x, last ); last = x;
}
main()
{
func( 30 );
func( 50 );
func( 10 );
}
输出:?
(5)程序5
void func(int n)
{
printf( "%d ", n );
if ( n > 0 )
func( n-1 );
}
main()
{
func( 5 );
}
输出:?
(6)程序6
struct worker
{
int num;
char name[20];
};
main()
{
struct worker per[10], t;
int n,i,j;
scanf( "%d", &n );
for ( i = 0; i < n; i++ )
scanf( "%d%s", &per[i].num, per[i].name );
for ( i = 0; i < n-1; i++ )
for ( j = 0; j < n-1-i; j++ )
if ( strcmp(per[j].name,per[j+1].name) > 0 )
{
t = per[j];
per[j] = per[j+1];
per[j+1] = t;
}
for ( i = 0; i < n; i++ )
printf( "%d, %s\n", per[i].num, per[i].name ); }
输入:3 101 wang 102 zou 103 chen
输出:?
(7)程序7
#include
main()
{
FILE *fp1, *fp2;
char buff[80];
int n,num,i,j;
fp1 = fopen( "data1.txt", "r" );
fp2 = fopen( "data2.txt", "w" );
if ( fp1==NULL || fp2==NULL )
return ;
fscanf( fp1, "%d", &n );
fprintf( fp2, "%d\n", n );
for ( i = 0; i < n; i++ )
{
fscanf( fp1, "%d%s", &num, buff );
for ( j = 0; buff[j] != '\0'; j++ )
if ( buff[j]>='a' && buff[j]<='z' )
buff[j] = buff[j] - 'a' + 'A';
fprintf( fp2, "%d %s\n", num, buff );
}
fclose( fp1 );
fclose( fp2 );
}
设文件访问总是成功的
已知文件data1.txt中内容为