笔试样题1
一、程序填空题(每题12分,共36分。将答案填写在相应的下划线处)
1.以下函数的功能是删除字符串s中的所有数字字符,请填空。
void dele(char *s)
{
int n=_________,i; //0
for(i=0;s[i];i++)
if(________) //s[i]<’0’||s[i]>’9’
s[n++]=s[i];
s[n]=________; //’\0’
}
2.函数YangHui的功能是把杨辉三角形的数据赋给二维数组的下半三角,形式如下。
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
说明:数据构成规律是第0列元素和主对角线元素均为1,其余元素为其左上方和正上方元素之和,数据的个数每行递增1。
#define N 6
void YangHui(int x[N][N])
{
int i,j;
x[0][0]=1;
for(i=1;i<N;i++)
{
x[i][0]=________=1; // x[i][i]
for(j=1;________;j++) //j<i
x[i][j]=___________; //x[i-1][j-1]+x[i-1][j]
}
}
3.以下程序是将从键盘输入的字符串逆序存放,然后输出。(如:输入ABCD1A,输出A1DCBA)
#include<stdio.h>
#include<string.h>
void main()
{
char s[81],t;
int i,j,n;
n=strlen(s);
__________________ //i=0;
j=n-1;
while(_______________) // i<j
{
t=s[i];s[i]=s[j];s[j]=t;
i++;
_________ // j--;
}
printf(“%s”,s);
}
二、阅读程序题(每题8分,共32分。将答案填写在相应的下划线处)
1.以下程序的运行结果是______________。
#include “stdio.h”
void main()
{
int i,j;
for(i=0;i<=3;i++)
{
for(j=0;j<i;j++)
printf(“%d”,i);
printf(“*\n”);
}
}
结果:
*
1*
22*
333*
2.以下程序的运行结果是______________。
#include “stdio.h”
void main()
{
char *s={“Computer-Level-Test”},*p;
for(p=s;*p!=’\0’;p++)
{
if(*p==’-‘)
printf(“\n”);
else
if(*p<=’Z’&&*p>=’A’)
printf(“%c”,*p+’a’-‘A’);
else
printf(“%c”,*p);
}
}
结果:
computer
level
test
3.以下程序的运行结果是______________。
#include “stdio.h”
int f(int c)
{
static int a=10;
int b=++a;
return (a+b+c);
}
void main()
{
printf(“%d”, f(f(5)));
}
结果:
51
4.以下程序的运行结果是______________。
#include “stdio.h”
void f(int *x,int y)
{
--*x;
y++;
}
void main()
{
int x=3,y=0;
f(&x,y);
printf(“%d,%d”,x,y);
}
结果:
2,0
三、程序设计题(每题16分,共32分)
1.编程输出100以内所有6的倍数及它们的和。
#include <stdio.h>
void main()
{
int s=0,i;
for(i=1;i<100;i++)
if(i%6==0)
s=s+i;
printf(“s=%d”,s);
}
2.已知字符串char s[50]=”Iamstudent.”,请编写程序将字符a插入到student 之前,结果为”Iamastudent.”。(说明:要求使用循环结构)。
#include <stdio.h>
#include<string.h>
void main()
{
char s[50]=”Iamstudent.”;
int i,n;
n=strlen(s);
for(i=n;i>=3;i--)
s[i+1]=s[i];
s[3]=’a’;
printf(“s=%s”,s);
}
笔试样题2(2015下)
一、程序填空题(每题12分,共36分。将答案填写在相应的下划线处)
1.以下程序计算度输出1—100之间所有是3或7的倍数之和,请填空。
#include <stdio.h>
void main()
{
int i,s;
_______=0; //s
for(i=1;i<=100;i++)
if(_________________) // i%3==0||i%7==0
s=s+i;
printf(“s=%d\n”,_________); // s
}
2.以下程序输出图形 。
12345
2345
345
45
5
printf怎么输出字符串的一部分请填空:
#include <stdio.h>
void main()
{
int i,j;
for(i=1;_______;i++) // 5
{
for(j=i;j<=5;j++)
printf(“%d”,_________); // j
printf(“________________”); // \n
}
}
3.以下程序利用指针输出一个字符串中所有数字字符,请填空。
#include<stdio.h>
void main()
{
char s[ ]=”A1B2C3D4E5F6G7H8I9”;
char *p;
for(p=s;________!=’\0’;p++) // *p
if(__________________) //*p>=’0’&&*p<=’9’
printf(“%c”,____________); // *p
}
二、阅读程序题(每题8分,共32分。将答案填写在相应的下划线处)
1.以下程序运行后输入2,程序的输出结果是______________。
#include “stdio.h”
void main()
{
int color;
printf(“Please input color:”);
scanf(“%d”,&color);
switch(color)
{
case 0: printf(“black”);
case 1: printf(“blue”);
case 2: printf(“green”);
case 3: printf(“red”); break;
default: printf(“other color”);
}
}
结果:
greenred
2.以下程序的运行结果是______________。
#include “stdio.h”
void main()
{
int i,j=5,s;
s=0;
for(i=1;i<=5;i++)
s=s+i+j--;
printf(“%d”,s);
}
结果:
30
3.以下程序的运行结果是______________。
#include “stdio.h”
void main()
{
int i;
char s[]=”AaBbCcDdEeFfGgHh”;
char c;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论