1,B
2,B
3,A
4,B
5,B
6,A
7,B
8,B
9,A
10,B
二、编程题
1,
void maxmin(a[][],3,4)
{
int i,j,h,lint max=0,min=0
min=a[0][0]h=0l=0
for(i=0i<3i++)
for(j=0j<4j++)
{
if(a[i][j]<min){ min=a[i][j]h=il=j}
}
printf("min=%d\t 行号:%d 列号:%d",min,h,l)
max=a[0][0]h=0l=0
for(i=0i<3i++)
for(j=0j<4j++)
{
if(a[i][j]>max){ max=a[i][j]h=il=j}
}
printf("max=%d\t 行号:%d 列号:%d",min,h,l)
}
2,
#include<stdio.h>
void main()
{
int a[15],temp
int i,j
printf("请输入十五个数(用空格将输入的数字隔开):\n")
for(i=0i<15i++)
scanf("%d",&a[i])
for(i=0i<15i++)
for(j=ij<15j++)
{
if(a[i]<=a[j])
{
temp=a[i]
a[i]=a[j]
a[j]=temp
}
}
printf("排序后:\n")
for(i=0i<15i++)
{
printf("%d\t",a[i])
}
}
3,
#include<stdio.h>
void main()
{
double sum=0,temp=0
int i
for(i=1i<=30i++)
{
temp=1/(i*(i+1))
sum+=temp
}
printf("sum=%d\n",sum)
}
4,
#include<stdio.h>
void main()
{
double a[10],tempint x[10]
int i,j
printf("请输入十个数(用空格将输入的数字隔开):\n")
for(i=0i<10i++)
scanf("%d",&a[i])
for(i=0i<10i++)
x[i]=i+1
for(i=0i<10i++)
for(j=ij<10j++)
{
if(a[i]<=a[j])
{
temp=a[i]
a[i]=a[j]
a[j]=temp
temp=x[i]
x[i]=x[j]
x[j]=temp
}
}
printf("排序后:")
for(i=0i<10i++)
{
printf("%d\t%d\t",a[i],x[i])
}
}
5,
#include<stdio.h>
int main()
{
int i,t,k,a[3]
printf("There are follwing armstrong number smaller than 1000:\n")
for(i=2i<1000i++)
{
a[0]=0a[1]=0a[2]=0
for(t=0,k=1000k>=10t++)
{
a[t]=(i%k)/(k/10)
k/=10
}
if(a[0]*a[0]*a[0]+a[1]*a[1]*a[1]+a[2]*a[2]*a[2]==i)
printf("%5d",i)
}
printf("\n")
}
6,
#include<stdio.h>
main()
{
int i,j,k
for(i=1i<=4i++)
{
for(k=1k<5-ik++)
{
printf(" ")
}
for(j=1j<=2*i-1j++)
{
printf("%d",i)
}
printf("/n")
}
}
三、简答题
1,
for(表达式1表达式2表达式3)
{
循环体
}
执行顺序:表达式1,表达式2,如果表达式2为真则执行循环体和表达式3,
然后再从表达式2开始执行,如果表达是2为假,则跳出循环
2,
当需要处理大量数据或者保存数据时,一般都会用到文件操作,
打开文件时为调取其他文件中的信息,
关闭文件是调用完毕后不需要继续在用其中的信息,若不关闭的话会造成信息混乱。
3,
结构化算法是以处理过程为中心,强调先定义数据结构,然后分析处理逻辑;
4,
switch(表达式)
{
case 常量表达式1:语句1;break
case 常量表达式2:语句2;break
……
case 常量表达式n:语句n;break
default:语句n+1
}
其中表达式为整型、字符型或枚举型,常量表达式具有指定的值,与表达式类型相同。
先执行表达式,若有然后执行与表达式值相同的常量表达式i对应的语句i,如果没有与
表达式相同的值,则执行语句n+1
5,
1>文件包含,#include实现文件包含,在编译之前把指定的文件包含到该指令所在的位置
2>条件编译,根据某个条件是否满足来选择编译内容
3>宏定义指令,#define用来指定正文程序中出现的标号符
6,命名规则:以字母或下划线开始,由字母、数字或下划线组成的符号串。如abc,_a12等
希望对你有用!
1, //返回值的类型是和函数原型定义一致的;如:int argc(){...}函数返回 int类型2,//你的想法是对的,另外这样的函数为递归函数
3,//步骤a+=a-=a+a此时a=10;执行 a-=a+a后,a=-10(注意此时a被赋值);接着a+=aa=-20
//结合性为从右到左,所以a先被赋值为-10
4,.int f(int n)
{static int m=5//static表示 m变量为静态变量,就是一直保持在内存里的意思
return ++m+n
}
main( )
{int i:
for(i=0i<3i++)
printf("%5d",f(i))
//i=0时,m=6i=1时,m=7;i=2时m=8;此题考察的是static关键字
printf("\n")
}
5,.#define SIZE 4 //宏定义
main( )
{int n[SIZE]={8,3,4,1}//声明并初始化数组;等同于:n[0]=8n[1]=3,n[2]=4n[3]=1
int i,j//声明变量
for (i=0i<SIZEi++)
{printf("%d",n[i])//打印n数组
for(j=1j<=n[i]j++)
printf("*");//打印结果取决于int数组的初始化
printf("\n")
}
}
6.#include<stdio.h>
#include<stdlib.h>//头文件
main( )
{char ch
FILE*fp//定义文件指针
if((fp=fopen("file.dat","________w"))= =NULL) // "w"为 fopen函数的参数,表示打开一个文件,可//以写入文件,先将文件的长度截为0,如果“file.dat"不存在,则先创建文件。
{printf("Can not open file\n")exit(0)}
ch=getchar( )
while (ch!=‘#’)
{fputc(________ch,fp)
//这空是考察fputc(io库函数)的参数的,这个函数表示把指定的字符写到指定的流中,此题是
//写到 file.dat 文件中
ch=getchar( )
}
fclose(________fp)//关闭指针指定的文件,这里是fp对应的”file.dat"文件
//同样是考察fclose(IO库函数)的参数
}
7.
#include<stdio.h>
#define N 100 //宏定义
main0
{int a[N],i,n=0
float sum=0,aver//上面两行是声明变量、数组;
for(i=0i<Ni++)scanf("%d",&a[i]) //读取键盘输入100个整数
for(i=0i<Ni++)
if(a[i]>=0)
{
sum=sum+a[i] //用来计算正整数之和。
n++ //用来计算整数的总个数;
} //上面5行为一个循环,用来得到正整数的和 与正整数与零的总个数
if(n= =0)printf("All numbers are negative!\n")//看是否输入的数字全为小于零的数
//或者不合法,如输入的不是数字
else
{aver=sum\n
printf("aver=%7.2f\n",aver)
}//计算所有大于等于零的数的平均值,保留2位小数点,占7位空间
}
8.
#include<stdio.b>
float area(float t,float b,float h)//三个参数(上底t,下底b,高h)
{
return(t+b)*h*0.5//(上底+下底)*高/2就是梯形面积公式,返回面积
}
main( )
{float t1,b1,h1
scanf("%f%f%f",&t1,&b1,&h1)//读取键盘输入梯形上底、下底和高的值
printf("area=%7.2f\n",area(t1,b1,h1))// %7.2f 为函数 float area()函数返回的值
//同样面积输出为占7位,保留2位小数点;
}
综上,看的出来你们考察C语言的试题不是很难,我觉得这个应该不是大学里面的考试吧?
同时也可以看出你C语法不是很好,不客气的说,你应该什么也没学,最多学到变量声明循环附近
所以,你还是老老实实的把那本谭浩强老师的《C语言程序设计》好好翻翻吧。
不是你该怎么去做那种题,而是你基础根本没打好~~
baadd,abdad第一题
#include<stdio.h>
int main()
{
char szTest[100]
int i=0
int count[5]={0}//count[0]数字、count[1]大写字母、count[2]小写字母、count[3]空格、count[4]其它字符,初始化为0
scanf("%s",&szTest)
while(szTest[i]!='\0')
{
if(szTest[i]>='0' &&szTest[i]<='9')
count[0]++
else if(szTest[i]>='A' &&szTest[i]<='Z')
count[1]++
else if(szTest[i]>='a' &&szTest[i]<='z')
count[2]++
else if(szTest[i]==' ')
count[3]++
else
count[4]++
i++
}
printf("数字%d 大写字母%d 小写字母%d 空格%d 其它字符%d \n",count[0],count[1],count[2],count[3],count[4])
return 0
}
第二题
long f()
{
int i
long sum
sum = 0
for (i=1 i<=30 i ++)
{
sum += i*(i+1)*(i+2)
}
return sum
}
第三题
#include<iostream>using namespace std
main(){
int i,j
for(i=7i>=1i--)
{for(j=4j>=1j--)
{
printf(j)
printf(\n)
}}
第四题
long t()
{
int i
long sum
long num1
long num2
long num
sum = 0
for (i=1 i<=20 i ++)
{
sum += i*(i+1)*(i+2)
}
for(i=1i=19i++)
{
num1 += i*(i+1)*(i+2)
}
for(i=1i=20i++)
{
num2 += i*(i+1)*(i+2)
}
num=num2-num1
return num
}
第五题
#include "stdio.h"
#define N 10
main()
{
int i,j,k,a[N],t
printf("请输入100个整数:\n")
for(i=0i<Ni++)
scanf("%d",&a[i])
for(i=0i<Ni++)
for(j=i+1j<Nj++)
if(a[i]<a[j])
{t=a[i]a[i]=a[j]a[j]=t}
for(k=0a[k]>0k++)
for(i=0i<ki++)
for(j=i+1j<kj++)
if(a[i]>a[j])
{t=a[i]a[i]=a[j]a[j]=t}
for(i=0i<Ni++)
printf("%d ",a[i])
}
指针与C语言
大家都认为,c语言之所以强大,以及其自由性,很大部分体现在其灵活的指针运用上。因此,说指针是c语言的灵魂,一点都不为过。同时,这种说法也让很多人产生误解,似乎只有c语言的指针才能算指针。basic不支持指针,在此不论。其实,pascal语言本身也是支持指针的。从最初的pascal发展至今的object pascal,可以说在指针运用上,丝毫不会逊色于c语言的指针。
C语言的数据文件:
C语言中可以按文本(ASCII文件)或者二进制方式处理数据文件,文本文件通常用于人们的直接阅读,二进制文件则用于保存程序在运行过程中用到的二进制数据,而且对二进制文件的处理效率也比对ASCII文件要高。
预处理指令:
#空指令,无任何效果
#include包含一个源代码文件
#define定义宏
#undef取消已定义的宏
#if如果给定条件为真,则编译下面代码
#ifdef如果宏已经定义,则编译下面代码
#ifndef如果宏没有定义,则编译下面代码
#elif如果前面的#if给定条件不为真,当前条件为真,则编译下面代码
#endif结束一个#if……#else条件编译块
#error停止编译并显示错误信息
switch语句的语法如下(switch,case和default是关键字):
switch ( controllingExpression )
{
case constantExpression :
statements
break
case constantExpression :
statements
break
...
default :
statements
break
}