当前位置:首页 » 编程语言 » 内江c语言青少年编程考题
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

内江c语言青少年编程考题

发布时间: 2022-12-10 12:33:08

A. 求C语言的笔试题和编程题!!~~~谢谢~~!!

一份曾经的考卷+答案~~//后面的编程题是以前做过的实验~~

《程序设计基础-C》试卷
一、单项选择题
1. C 语言程序中可以对程序进行注释,注释部分必须用符号_____括起来。
A、‘{‘ 和’}’ B、‘[‘和’]’ C、“/*”和”*/” D、“*/”和”/*”
2. 下列运算符中,优先级最低的是_____。
A、* B、!= C、+ D、=
3. 若变量已正确定义,表达式 (j=3, j++) 的值是_____ 。
A、3 B、 4 C、5 D、0
4. 已知字符 ‘a’ 的ASCII码为 97 ,执行下列语句的输出是_____。
printf ("%d, %c", ’b’, ’b’+1 ) ;
A、98, b B、语句不合法 C、98, 99 D、 98, c
5. 表达式strcmp(“box”, “boss”) 的值是一个_______。
A、 正数 B、 负数 C、 0 D、 不确定的数
6. 数组定义为 int a[3][2]={1, 2, 3, 4, 5, 6},数组元素_____的值为6。
A、a[3][2] B、a[2][1] C、a[1][2] D、a[2][3]
7. 要调用数学函数时,在#include命令行中应包含_____。
A、 ”stdio.h” B、 ”string.h” C、 ”math.h” D、 ”ctype.h”
8. 判断i和j至少有一个值为非0的表达式是_____。
A、 i!=0 && j!=0 B、i*j!=0 C、!(i==0 || j==0) D、i&&j
9. 若a是基本整型变量,c是单精度实型变量,输入语句______是错误的。
A、scanf(”%d,%f”, &a, &c); B、scanf(”d=%d, c=%f”, &a, &c);
C、scanf(”%d%f”, &a, &c); D、scanf(”%d%f”, a, c);
10. 若变量已正确定义并且指针p已经指向某个变量x,则(*p)++相当于_____。
A、p++ B、x++ C、*(p++) D、&x++
11. 若p1、p2都是整型指针,p1已经指向变量x,要使p2也指向x, _____是正确的。
A、p2=p1; B、p2=**p1; C、p2=&p1; D、p2=*p1;
12. 下列程序段的输出是_____。
int c[]={1, 3, 5};
int *k=c+1;
printf("%d", *++k);
A、 3 B、 5 C、 4 D、6
13. 不正确的赋值或赋初值的方式是______。
A、char str[]="string";
B、char str[7]={'s', 't', 'r', 'i', 'n', 'g'};
C、char str[10];str="string";
D、char str[7]={'s', 't', 'r', 'i', 'n', 'g', ’\0’};
14. 对于以下结构定义,++p->str中的++加在_____。
struct {
int len;
char *str;
} *p;
A、指针str上 B、指针p上 C、str指的内容上 D、以上均不是
15. 对于如下说明,语法和语义都正确的赋值是_____。
int c, *s, a[]={1, 3, 5};
A、c=*s; B、 s[0]=a[0]; C、s=&a[1]; D、 c=a;

二、填空题
1. 写出下列程序段的输出结果。
float x1, x2;
x1=3/2;
x2=x1/2;
printf("%d, %.1f", (int)x1, x2) ;
2. 表达式 (7<<1>>2^2 ) 的值是_______。
3. 写出下列程序段的输出结果。
#define A 10
#define B (A<A+2)-2
printf("%d", B*2);
4. 写出判断字符变量c是英文字母的表达式 。
5. 写出下列程序段的输出结果。
int k, x;
for (k=0, x=0; k<=9&&x!=10; k++)
x+=2;
printf ("%d, %d", k, x) ;
6. 写出下列程序段的输出结果。
printf(“%d, %d”, NULL, EOF);
7. 对于以下递归函数f,调用 f (3) 的返回值是_____。
f (int n)
{ return ((n>0) ? 2*f(n-1)+f(n-2) : -1); }
8. 写出下列程序段的输出结果。
char str[]="hello\tworld\n";
printf("%d, %c\n", sizeof(str), *(str+10));
9. 输入12345#后,写出下列程序的输出结果。
void main()
{ char c;
for(c=getchar(); getchar()!=’#’; c=getchar())
putchar(c);
}
10. 执行程序find –nx ould text.txt时,*++argv[1]的值是_______。
三、程序阅读题
1. 若输入 3 1 2 3 <回车> , 则以下程序的输出结果是_______。
#include "stdio.h"
void main()
{ int i, j, n, a[10];
scanf("%d", &n);
for (i=0; i<n; i++)
scanf("%d",&a[i]);
for (i=0; i<n; i++)
for (j=0; j<n; j++)
printf("%d, ", a[(i+j)%n]);
}
2. 若输入89 76 24 25 9 8 11 16 35 4 <回车> , 则以下程序的输出结果是_______。
#include "stdio.h"
#define N 10
main()
{
int x[N], y1[N], y2[N];
int i, j, n1, n2, t, p;
n1=n2=0;
for(i=0;i<N;i++){
scanf(“%d”, &x[i]);
if(x[i] % 2==0) y1[n1++]=x[i];
else y2[n2++]=x[i];
}
for(i=1; i<n1; i++)
for(j=0; j<n1-1; j++)
if(y1[j]>y1[j+1]){
t=y1[j]; y1[j]=y1[j+1]; y1[j+1]=t;
}
for(i=0; i<n2-1; i++){
p=i;
for(j=i+1; j<n2; j++)
if(y2[p]<y2[j]) p=j;
if(p!=i){
t=y2[i]; y2[i]=y2[p]; y2[p]=t;
}
}
for(i=0; i<n1; i++) printf("%d, ", y1[i]);
for(i=0; i<n2; i++) printf("%d, ", y2[i]);
}
3. 以下程序的输出结果是_______。
#include <stdio.h>
int z;
void p(int *x, int y)
{ ++*x;
y--;
z=*x+y+z;
printf("%d, %d, %d#", *x, y, z);
}
void main()
{ int x=1, y=5, z=9;
p(&x, y);
printf("%d, %d, %d#", x, y, z);
}
4. 若输入 -6+15*3/5=<回车> , 则以下程序的输出结果是_______。
#include <stdio.h>
void main()
{
int m=0, sum=0;
char c, oldc='+';
do {
c=getchar();
if(c<='9'&&c>='0') m=10*m+c - '0';
else {
if(oldc=='+') sum += m;
else sum -= m;
m=0;
oldc=c;
printf("%d, ", sum);
}
} while(c!='=');
}

四、程序填空题
下列程序的功能是创建单向链表。
#include <stdio.h>
#include <alloc.h>
struct link {
char name[10];
int mark;
struct link * next;
};
void insert(char *, int);
struct link * head = NULL;
main()
{
char name[10];
int mark;
struct link * t;
while ( 1 ) {
scanf("%s %d", name, &mark);
if ( strcmp(name, "#") == 0 ) break;
______(1)_______;
}
for (t=head; ______(2)_______)
printf("<%s>: %d\n", t->name, t->mark);
}
void insert(char * name, int mark)
{
struct link * p;
p = ______(3)_______ ;
strcpy(p->name, name);
p->mark = mark;
______(4)_______;
if ( head != NULL ) ______(5)_______;
head = p;
}

答案
2000~2001学年《程序设计基础C》参考答案

一、单项选择题
C D A D A B C B D B A B C A C
二、填空题
1 1, 0.5
2 1
3 -3
4 c>=’a’&&c<=’z’|| c>=’A’&&c<=’Z’
5 5, 10
6 0, -1
7 -17
8 13, d
9 13
10 ‘n’
三、程序阅读题
1 1, 2, 3, 2, 3, 1, 3, 1, 2,
2 4, 8, 16, 24, 76, 89, 35, 25, 11, 9,
3 2, 4, 6#2, 5, 9#
4 0, -6, 9, 6, 1,
四、程序填空题
(1) insert(name, mark)
(2) t!=NULL; t=t->next
(3) (struct link *)malloc(sizeof(struct link))
(4) p->next = NULL
(5) p->next = head

编程
程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat (0<repeat<10),做repeat次下列运算:
给定平面任意两点坐标 (x1, y1) 和 (x2, y2),求这两点之间的距离(保留2位小数)。
要求定义和调用函数 dist(x1, y1, x2, y2)计算两点间的距离,函数形参x1、y1、x2和y2的类型都是double,函数类型是double。
输入输出示例:括号内是说明
输入
1 (repeat=1)
10 10 (x1=10, y1=10)
200 100 (x2=200, y2=100)
输出
Distance = 210.24

#include <stdio.h>
#include <math.h>
double dist(double x1, double y1, double x2, double y2);
int main(void)
{
int repeat, ri;
double distance, x1, y1, x2, y2;

scanf("%d", &repeat);
for(ri = 1; ri <= repeat; ri++){
scanf("%lf%lf%lf%lf", &x1, &y1, &x2, &y2);
/*---------*/
printf("Distance = %.2f\n", distance);
}
}

/*---------*/

程序填空。
求1~100中能被6整除的所有整数的和

#include <stdio.h>
int main(void)
{
int i, sum = 0;
/*---------*/
printf("%d", sum);
}

程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat (0<repeat<10),做repeat次下列运算:
读入1 个实数x和正整数 n(n<=50),计算并输出 x 的 n 次幂(保留2位小数),不允许调用pow函数求幂。
输入输出示例:括号内是说明
输入
2 (repeat=2)
1.5 2 (x=1.5,n=2)
2 7 (x=2,n=7)
输出
2.25
128.00

#include <stdio.h>
int main(void)
{
int i, n;
int repeat, ri;
double mypow, x;

scanf("%d", &repeat);
for(ri = 1; ri <= repeat; ri++){
scanf("%lf%d", &x, &n);
/*---------*/
printf("%.2f\n", mypow);
}
}

……编程题还有好多~~需要的话可以发给你~

B. C语言编程题

//楼上的,重量和金额怎么能是整形的,还有输入顺序应切合实际,哈哈
/*
//if-else写法
#include<stdio.h>
void main()
{
int grade; //等级
float weight; //重量
float money; //付款
float pay; //应付款
printf("请输入购买信息:\n");
printf("苹果等级:");
scanf("%d",&grade);
printf("苹果重量:");
scanf("%f",&weight);
//数据验证
if(weight<=0 || grade<1 || grade>4)
{
printf("Data Error!\n");
return;
}
//计算应付款
if(grade==1) //一级苹果
pay=5.5*weight;
else if(grade==2) //二级苹果
pay=4.2*weight;
else if(grade==3) //三级苹果
pay=3*weight;
else //四级苹果
pay=2.5*weight;

//显示结果
printf("\n你所购买的是%d级苹果:\n",grade);
printf("实际重量:%g\n",weight);
printf("应付金额:%g\n",pay);

printf("交付金额:");
scanf("%f",&money);
printf("\n应找零钱:%g\n",money-pay);
printf("谢谢惠顾,再见!\n");
}
*/
/*
//switch写法
#include<stdio.h>
void main()
{
int grade; //等级
float weight; //重量
float money; //付款
float pay; //应付款
printf("请输入购买信息:\n");
printf("苹果等级:");
scanf("%d",&grade);
printf("苹果重量:");
scanf("%f",&weight);
//数据验证
if(weight<=0 || grade<1 || grade>4)
{
printf("Data Error!\n");
return;
}
//计算应付款
switch(grade)
{
case 1: //一级苹果
pay=5.5*weight;break;
case 2: //二级苹果
pay=4.2*weight;break;
case 3: //三级苹果
pay=3*weight;break;
default: //四级苹果
pay=2.5*weight;
}

//显示结果
printf("\n你所购买的是%d级苹果:\n",grade);
printf("实际重量:%g\n",weight);
printf("应付金额:%g\n",pay);

printf("交付金额:");
scanf("%f",&money);
printf("\n应找零钱:%g\n",money-pay);
printf("谢谢惠顾,再见!\n");
}
*/
/*
//字符串题目
#include<stdio.h>
#include<string.h>
void main()
{
char s1[100],s2[100];
puts("请输入两个字符串:");
gets(s1);
gets(s2);
strcat(s1,s2);
printf("连接后的结果:%s\n",s1);
int i,j;
char t;
i=0;
j=strlen(s1)-1;
while(i<=j)
{
t=s1[i];
s1[i]=s1[j];
s1[j]=t;
i++;
j--;
}
printf("反向后的结果:%s\n",s1);
printf("连接后的长度:%d\n",strlen(s1));
}
*/
//字符统计
#include<stdio.h>
void charc(char s[100])
{
int letters=0,numbers=0,spaces=0,others=0;
int i=0;
while(s[i]!='\0')
{
if(s[i]>='a' && s[i]<='z' || s[i]>='A' && s[i]<='Z')
letters++;
else if(s[i]>='0' && s[i]<='9')
numbers++;
else if(s[i]==' ')
spaces++;
else
others++;
i++;
}
printf("\n字母:%d个,数字:%d个,空格:%d个,其他:%d个\n",letters,numbers,spaces,others);
}
void main()
{
char str[100];
puts("请输入字符串:");
gets(str);
charc(str);
}

C. 一道C语言编程题

#include<stdio.h>
#include<stdlib.h>
#include<memory.h>
ints1[9][9],a,b,w,h,x,y,n;
voidgc(inta,intb,inthp,intm)
{
if(hp!=0)
{
if(s1[a][b]==3){if((m<n)||(n==0))n=m;}else
{
if(s1[a][b]==4)hp=6;
if(s1[a-1][b]!=0)gc(a-1,b,hp-1,m+1);
if(s1[a+1][b]!=0)gc(a+1,b,hp-1,m+1);
if(s1[a][b-1]!=0)gc(a,b-1,hp-1,m+1);
if(s1[a][b+1]!=0)gc(a,b+1,hp-1,m+1);
}
}
}
intmain()
{
scanf("%d%d",&w,&h);
for(a=1;a<=h;a++)
for(b=1;b<=w;b++){scanf("%d",&s1[a][b]);if(s1[a][b]==2)x=a;y=b;}
for(a=0;a<=w;a++){s1[0][a]=0;s1[h+1][a]=0;}
for(a=0;a<=h;a++){s1[a][0]=0;s1[a][w+1]=0;}
gc(x,y,6,0);
printf("%d",n);
return0;
}

D. C语言编程题,模拟的考题,求解答

#include<stdio.h>

intabc(inta[],intn);

intmain()

{

inti=0;

inta[]={1,2,3,4,5,6};

for(;i<=sizeof(a)/sizeof(int);++i)

{

printf("proctof%dis%d. ",i,abc(a,i));

}

return0;

}

intabc(inta[],intn)

{

if(n<=0)

{

returna[0];

}

else

{

returna[n-1]*abc(a,n-1);

}

}

运行截图如下: