知识点1:C语言程序总含有main函数,程序执行时,总是从main函数开始,在main函数结束。
示例1:C语言程序一定包含 函数。
参考答案:main
示例2:C语言程序执行时,如下叙述中正确的是 。
A)总是从main函数开始,在main函数结束
B)从main函数开始,在程序的最后一个函数中结束
C)从程序的第一个函数开始,在main函数结束
D)从程序的第一个函数开始,在程序的最后一个函数中结束
参考答案:A
知识点2:C语言的main函数可以调用所有其他函数,其他函数可以相互调用,但其他函数不能调用main函数,在正常性情况下每个函数都可以被编译。
示例3:C语言的函数 调用main函数。
示例4:以下关于函数的叙述中正确的是 。
A)每个函数都可以被其他函数调用(包括main函数在内)
B)main函数可以调用所有其他函数
C)在一个函数内部可以定义另一个函数
D)前面都是错误的
参考答案:B
知识点3:C语言的标识符由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线,标识符包括关键字(共32个,例int,if,…),系统预定义的标识符(库函数名,例printf,scanf,…)和用户标识符。
示例5:按照C语言规定的用户标识符命名规则,标识符中 包含正负号。
参考答案:不能
示例6:按照C语言规定的用户标识符命名规则,下面 是标识符。
A)1x B)x$ C)_for D)for
参考答案:C
示例7:下列定义变量的语句中错误的是 。
A)int _if; B)int INT; C)char for%; D)float _float;
参考答案:C
知识点4:在C语言中,整常数可用以下三种形式表示:十进制整数;八进制整数。以0开头的数是八进制数;十六进制整数。以0x开头的数是16进制数。
示例8:以下选项中可作为C语言合法常量的是 。
A)0xabg B)-0819 C)xab8 D)0xabc
参考答案:D
示例9:在C语言中,八进制整常数以 开头。
参考答案:0
示例10:在C语言中,十六进制整常数以 开头。
参考答案:0x
知识点5:在C语言的实常数的指数表示法中,字母e(或E)之前必须有数字,且e后面的指数必须为整数。
示例11:在C语言的实常数的指数表示法中,字母e(或E)之前必须有数字,且e后面的指数必须为 。
参考答案:整数
示例12:以下选项中 是合法的C语言合法常量。
A)-80 B)-08 C)-1e6.0 D)1.68e
参考答案:A
知识点6:在C语言中,以l或L结束的常整数为长整型常数。
示例13:在C语言中,如果一个整常数以 结束,则此常数为长整型常数。
参考答案:L或l
知识点7:在C语言中,定义变量可以为量常初值,但其初值应是常量表达式,不能包含变量。
示例14:以下能正确定义且赋初值的语句是 。
A)int x=y=16; B)char ch=98;
C)int a=a+6; D)double x=1.68e-8.0
参考答案:B
知识点8:在C语言中,任何非零的数值被认作“真”,零值表示“假”。
示例15:设有定义:“int m=1,n=6;”,则以下选项中值为1的表达式是 。
A)(m==1)&&(!n==0) B)(m<n)&& m && 0
C)!m && !n D)!m || !n
参考答案:A
示例16:表达式“ (E)?(x+1) : (y+1)”中的条件表达式(E)等价的是 。
参考答案:E!=0或E<0||E>0
知识点9:break语句可用于switch语句和循环体中,continue只能用于循环体中,用于结束本次循环。
示例17:continue只能用于 中。
参考答案:循环体
示例18:下列叙述正确的是 。
A)break语句只能用于switch语句
B)continue语句只能用于switch语句
C)break语句必须与switch语句中的case配对
D)break可用于switch语句和循环体中
参考答案:D
知识点10:在定义数组时可为其赋初始,并且第一维元素个数可以不写。
示例19:下面正确定义一维数组的选项是 。
A)int a[2]={1,2,3}; B)char a[]={1,2,3,4,5};
C)char a={'a', 'b', 'c'}; D)int a[3] = "abc";
参考答案:B
示例20:下面正确定义二维数组的选项是 。
A)int a[2][3]={1,2,3}; B)char a[][2]={1,2,3,4,5};
C)char a[2][2]={'a', 'b', 'c', 'd', 'e'}; D)int a[2][4] = {"abc", "123"};
参考答案:B
示例21:以下二维数组定义中错误的是 。
A)int x[][3]={0,1,2,3,4,5,6,7,8}; B)int x[2][3]={{0,1}, {2,3}, {4,5}};
C)int x[][3]={{1},{2}}; D)int x[2][2]= {1,2,3,4};
参考答案:B
知识点11:函数返回值类型取决于定义函数时的函数首部所说明的函数类型。
示例22:函数返回值类型取决于定义函数时的函数首部所说明的 。
参考答案:函数类型
示例23:在C语言中,函数返回值的类型与 相同。
A)函数原型中的函数类型 B)return语句中表达式的类型
C)函数的实参类型 D)函数的形参类型
参考答案:A
示例24:已定义以下函数“int fun (int *p) {return *p;}”,则fun函数返回值是 。
参考答案:一个整型数
知识点12:在调用函数时,不写函数的返回值类型与实参类型。
示例25:有以下函数定义“void f (int a){…}”,如果以下选项中的变量都已经正确定义并赋值,则对函数f的正确调用语句是 。
A) f (int a); B)f (1.0); C)f ("123"); D)void f (a);
参考答案:B
知识点13:如果指针变量p指向x,则可用*p间接访问x。
示例26:若有定义:“int x=18,*p=&x;”,则*p的值是 。
参考答案:18
知识点14:指针变量不能被赋值为整型值。只能被赋值为地址值。
示例27:设已有定义:“float x;”,则以下对指针变量p进行定义且赋初值的语句中正确的是 。
A)float *p = 1024; B)int *p= (int)x+1;
C)float p=&x; D)float *p=&x;
参考答案:D
知识点15:调用scanf函数时,应写输入项的地址值。
示例28:若有定义:“int x=18,*p=&x;”,则通过p输入x的语句是“scanf("%f", );”。
参考答案:p
如有定义“int a[10], *p=a;”,则p指向a[0],p+i指向a[i],*(p+i)=*(a+i)=a[i]=p[i]。
示例29:若有定义“int a[10], *p=a;”,当执行“p++;”后,p指向 。
参考答案:a[1]
知识点16:结构体变量所占内存长度是各成员占的内存长度之和。共用体变量所占的内存长度等于最长的成员的长度。共用体变量中起作用的成员是最后一次存放的成员,在存入一个新的成员后原有的成员就失去作用。
示例30:若有以下定义:
union
{
int a;
char b;
double c;
} data;
以下叙述中错误的是 。
A) data的每个成员起始地址都相同
B)变量data所占的内存字节数与成员c所占字节数相等
C)程序段“data.a=16;printf("%fln ",data.c);”输出结果为16.000000
D) data可作为函数的实参
参考答案:C
示例31:若有以下定义:
union
{
short int a;
char b;
double c;
} data;
变量data所占的内存字节数为 。
参考答案:8
示例32:若有以下定义:
struct
{
short int a;
char b;
double c;
} data;
变量data所占的内存字节数为 。
参考答案:11
知识点17:用typedef声明新的类型名来代替已有的类型名。一般使用格式为“typedwf 已有类型 新类型;”。
示例33:设有以下语句:
typedef struct DateType
{
int month;
int day;
int year;
} DATE;
则下面叙述中正确的是 。
A)不能用struct DateType定义结构体变量
B) DATE是struct类型的变量
C)可以用DATE定义结构体变量
D) DATE是struct DateType类型的变量
参考答案:C
示例34:声明STRING为字符指针类型 的语句为 。
参考答案:typedef char *STRING;
知识点18:宏定义和文件包含都属于预处理命令,在源程序的一行上只能写一条预处理命令,对源程序编译之前做一些处理,生成扩展C源程序,都不占用程序运行时间。
示例35:宏替换命令 程序的运行时间。
参考答案:不占用
示例36:以下叙述中正确的是 。
A)在源文件的一行上只能有一条预处理命令
B)宏名必须用小写字母表示
C)宏替换要占用程序的运行时间
D)前面都是错语的
参考答案:A
示例37:若程序有宏定义"#define N 168;",则以下叙述中正确的是 。
A)在预编译时,对C源程序用168替换标识符N
B)在编译时,用168替换标识符N
C)在运行时,用168替换标识符N
D)前面都是错误的
参考答案:A
知识点19:数据块读写函数(fread()和fwrite())的调用函数调用“fread (buffer,size,count,fp);”与“fwrite(buffer,size,count,fp);”中的buffer是指针,对fread 来说,它是读入数据的存放地址,对fwrite来说,是要输出数据的地址(均指起始地址)。
示例38:读取二进制文件的函数调用形式为“fwrite (buffer, size, count, pt);”,其中buffer是 。
A)一个文件指针 B)一个内存块的首地址,表示读入数据存放的地址
C)一个内存块的字节数 D)一个内存块的首地址,表示输出数据存放的地址
参考答案:D
知识点20:如到文件末尾,则函数feof的函数值为真(1),否则函数值为假(0)。
示例38:设fp为指向一二进制文件的指针,且还未读到此文件末尾,则函数feof(fp)的返回值为 。
A)EOF B)1 C)0 D)NULL
参考答案:C
示例39:设fp为指向一二进制文件的指针,且已读到此文件末尾,则函数feof(fp)的返回值为 。
参考答案:1
知识点21:指针变量的值是地址,不能赋一个整数作为指针变量。
示例40:以下叙述中错误的是 。
A)通过函数形参的值可以改变对应实参的值 B)函数可以返回地址值
C)可以将一个整数赋给一个指针变量 D)函数的形参可以为结构体类型
参考答案:C
知识点22:对于逻辑表达式,并不是所有的逻辑运算符都要被执行。例如a&&b,只有a为真时,才需要判断b的值,又如a||b,只要a为真,就不必判断b的值。
示例41:已有定义“float x=6;int n=8,k;”,执行“k=x || n++”以后,n的值为 。
参考答案:8
示例42:已有定义“int m=6, n=8,k;”,执行“k=!m && --n”以后,n的值为 。
参考答案:8
示例43:有以下程序:
#include <stdio.h>
int main(void)
{
int a, b, c;
a = 2; b = 3;
c = (a / b < 1) || (a % b > 1);
printf("%d%d%d\n", a, b, c);
return 0;
}
运行结果是:
参考答案:231
点评:由于“a / b < 1”为值,所以“(a / b < 1) || (a % b > 1)”也为真(值为1),所以c=1。
知识点23:对数值型或字符型数组在定义时可进行初始化,如所给初值的小于数组元素个数,则未赋初值的元素的值为0(或'\0')。
示例44:设有定义语句:“int a[][168]={{1},{2}};”,则数组元素a[1][16]的值为 。
参考答案:0
示例45:设有定义语句:“int a[16]={1, 2};”,则数组元素a[6]的值为 。
参考答案:0
知识点24:对于“int n, *p = &n;”,则*p为p所指向变量n的值,&n为n的地址。
示例46:对于“int n = 8 , *p = &n;”,则*p的值为 。
参考答案:8
示例47:已有定义“int a=1024;”,a的地址为1026,则&a= 。
参考答案:1026
知识点25:打开文件语句“fopen(文件名,使用文件方式);”,使用文件方式为字符串,对于打开文本文件,“r”表示(只读)为输入打开一个文本文件,“w”表示(只写)为输出打开一个文本文件,“a”表示(追加)向文本文件尾增加数据。
示例48:设有定义:“FILE *fp;”,将以下打开文件的语句补充完整,以便为输出打开一个文本文件。
fp = fopen("test.txt", );
参考答案:"w"
示例49:以下程序建立一个名为test.txt的字符文件(文本文件),将从键盘输入的一行字符存入文件中。请填空。
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
FILE *fp;
char ch;
if((fp= fopen("test.txt", [1] )) == NULL)
{
printf("Can not open!\n");
exit(0);
}
printf("Enter data\n");
while((ch=getchar())!='\n')fputc(ch ,fp);
fclose(fp);
return 0;
}
参考答案:[1] "w"
点评:文件操作方式是字符串,注意"w"应用双引号括起来。
知识点26:malloc的函数原型为“void *malloc(unsigned int size); ”,一般使用格式为“(基类型 *)malloc(sizeof(基类型))”。
示例50:已有指针定义 “float *p;”,请写出完整的语句,利用malloc函数使p指向一个动态存储单元 。
参考答案:p=(float *)malloc(sizeof(float))
知识点27:通过关键定extern声明将外部变量的作用域在本文件范围内扩充也可将用作域扩充到其他程序文件中。
示例51:用关键字extern声明的变量为 。
参考答案:外部变量
知识点28:通过关键定static声明将外部变量的作用域在仅限于所在文件中。
示例52:在多文件程序中,要将外部变量的作用域仅限于所在文件,应使用关键字 。
参考答案:static
知识点29:枚举类型用于将变量的值一一列举出来,变量的值只限于列举出来的值的范围内,声明枚举类型用enum。
示例53:声明枚举类型使用的关键字是 。
参考答案:enum
知识点30:对于if else结构,else一般与最接它的if相匹配,编程时最好采用恰当的缩进格式。
示例54:有如下程序:
#include <stdio.h>
int main(void)
{
int x = 16, y = 30, z = 40, flag = 9,p = 80;
if (x < y)
if (z < flag) x = x + z;
else if (!p) x= p + flag;
else x = y + z + p;
printf("%d\n", x);
return 0;
}
运行结果是:
参考答案:150
点评:上面程序if else结构缩进格式恰当,容易看出else与if的匹配关系,由于关系表达式“x > y”为假,所以直接出跳if结构,显示x的值16。
知识点31:switch语句执行时,首先计算switch的判断表达式,并以此值去依次找与之相等的case标号值,找到后就将流程转到该标号处,执行后面各语句。
示例55:有如下程序:
#include <stdio.h>
int main(void)
{
int n = 0, x = 0, y = 0;
switch (n)
{
case 0:
y++;
case 1:
x++;
break;
case 2:
x++;
y++;
}
printf("%d,%d\n", x, y);
return 0;
}
运行结果是:
参考答案:1,1
点评:由于n=0,所以从case 0后面的语句开始执行,执行到break时跳出switch结构。
知识点32:逗号表达式的一般形式可以扩展为“ 表达式1,表达式2,表达式3,……,表达式n”,它的值为表达式n的值。
示例56:有如下程序:
#include <stdio.h>
int main(void)
{
int a = 10;
a = (3, 6, ++a, a + 9);
printf("%d\n", a);
return 0;
}
运行结果是:
参考答案:20
知识点32:对于C语言的表达式,如果表达式的值为0,表示逻辑假,如果表达式的值非0,表示逻辑真。
示例57:有以下程序:
#include <stdio.h>
#include <stdio.h>
int main(void)
{
int k = 8;
while (--k) printf("%d\n", k -= 6);
return 0;
}
运行结果是:
参考答案:1
点评:第1次循环时,“--k”值为7,为真,并且k的值为7,经过“k -= 6”后,k的值为1,所以显示1,第2次循环时,“--k”值为0,循环结束。
示例58:有以下程序:
#include<stdio.h>
int main(void)
{
int x = -6;
while(x++);
printf("%d\n",x);
return 0;
}
运行结果是:
参考答案:1
点评:当while条件“x++”为假时,“x++”的值为0,也就是取出x的值为0,然后再将x的值加1,所以x的值变为1。
示例59:有以下程序:
#include <stdio.h>
int main(void)
{
int i = 1;
do
printf("%d", i);
while (--i);
printf("%d\n", i);
return 0;
}
运行结果是:
参考答案:1
点评:第1次循环时,i的值为1,显示1,条件“--i”的值为0,i的值也变为0,所以第2个printf语句显示0。
知识点33:简单递归函数通常对应数学中递推式,可简单地将递推式中的递推条件用if语句表示来进行编程。
示例60:试用递归编程实现求阶乘n!的函数,并编写测试程序。
分析:求阶乘函数f(n)=n!=1*2*…*n可用递推式表示如下:
具体递归函数及测试程序如下:
#include<stdio.h>
int f(int n)
{
if (n == 0) return 1;
else return n * f(n - 1);
}
int main(void)
{
printf("%d\n", f(6));
return 0;
}
示例61:试用递归编程实现求累加和1+2+3+…+n的函数,并编写测试程序。
分析:求求累加和1+2+3+…+n的函数可用递推式表示如下:
具体递归函数及测试程序如下:
#include<stdio.h>
int s(int n)
{
if (n == 0) return 0;
else return n + s(n - 1);
}
int main(void)
{
printf("%d\n", s(10));
return 0;
}
知识点34:函数返回值类型由函数首部说的函数类型决定,与“return 表达式”中的表达式类型无关。
示例62:有以下程序:
#include <stdio.h>
int f(double x, double y)
{
return x + y;
}
int main(void)
{
int w = f(1.3, 2.6);
printf("%d\n", w);
return 0;
}
运行结果是:
参考答案:3
点评:调用函数f(1.3, 2.6)时,“return x + y;”表达式的值为3.9,由于函数类型为整型,所以将3.9转抽为整型3作为函数的返回值。
知识点34:通常采用推递方式在求递推函数的值。
示例63:有以下程序:
#include <stdio.h>
int fun(int x)
{
if (x == 0) return 2;
else if (x == 1) return 5;
else if (x == 2) return 9;
else return x + fun(x - 3);
}
int main(void)
{
printf("%d\n", fun(6));
return 0;
}
运行结果是:
参考答案:11
点评:fun(6)=6+fun(3)= 6+3+fun(0)= 6+3+2=11。
知识点35:不能通过函数形参改变实参的值。
示例64:有以下程序:
#include <stdio.h>
void f(int *p){ p = p + 2; }
int main(void)
{
int a[] = {1, 2, 3}, *p = a;
f(p);
printf("%d\n", *p);
return 0;
}
运行结果是:
参考答案:1
点评:调用函数“f(p);”后,实参p的值不变,也为a,由于数组名变指向下标为0的元素的指针,也就是p=&a[0],所以*p=a[0]=1。
知识点36:对于数组,通常采用依次比较方式求最大值(最小值)。
示例65:有以下程序:
#include<stdio.h>
int main(void)
{
int i,j,m;
int a[3][3] = {10, 20, 60, 28, 72, -30, -85, 1, 6};
m = a[0][0];
for (i = 0; i < 3; i++)
for (j = 0; j < 3; j++)
if(a[i][j] > m) m = a[i][j];
printf("%d\n", m);
return 0;
}
运行结果是:
参考答案:72
示例66:有以下程序:
#include<stdio.h>
int main(void)
{
int i,j,m;
int a[3][3] = {10, 20, 60, 28, 72, -30, -85, 1, 6};
m = a[0][0];
for (i = 0; i < 3; i++)
for (j = 0; j < 3; j++)
if(a[i][j] < m) m = a[i][j];
printf("%d\n", m);
return 0;
}
运行结果是:
参考答案:-85
知识点37:通常采用条件表达式“a<b?b:a”(“a<b?a:b”)求两个数的最大小(最小值)。
示例67:以下程序的功能是:输出a、b、c三个变量中的最小值。将程序补充完整。
#include <stdio.h>
#define min(x, y) x < y ? [1]
int main(void)
{
int a, b, c, t;
scanf("%d%d%d", &a, &b, &c);
t = min(a, b);
t = min(t, c);
printf("%d\n", t);
return 0;
}
参考答案:[1] x : y
示例68:以下程序的功能是:输出a、b、c、d三个变量中的最大值。将程序补充完整。
#include <stdio.h>
int main(void)
{
int a, b, c, d, t;
scanf("%d%d%d%d", &a, &b, &c, &d);
t = a < b ? [1] ;
t = c < t ? [2] ;
t = d < t ? [3] ;
printf("%d\n", t);
return 0;
}
参考答案:[1] b : a [1] t : c [1] t : d
知识点38:对于链表通常采用动态内存分配函数“void *malloc(unsigned int size)”,在编程时应将函数强制转换为特定指针类型,并用sizeof()函数求存储单元所点空间大小,在显示链表时,一般从头指针开始(p=head)依次显示各节点(p=p->next)。
示例69:下面程序的功能为先建立线性链表,然后再显示线性链表各元素的值,将程序补充完整。
#include <stdio.h>
#include <stdlib.h>
typedef struct Node
{
int data;
struct Node *next;
} Node;
int main(void)
{
Node *head = NULL, *rear = NULL, *p; // head表示头指针,rear表尾指针,p为临时指针变量
int a[] = {1, 2, 3, 4, 5, 6};
for (int i = 0; i < 6; i++)
{ // 建立线性链表
p = ( [1] )malloc( [2] ));
p->data = a[i];
p->next = NULL;
if (head == NULL)
{ // 在空链表中插入节点, 所插入节点为惟一节点
head = rear = p; // 头尾指针指向同一节点
}
else
{ // 将p追加到rear所指示结点的后面
rear->next = p; // p为rear的后继
rear = p; // p指向新的尾节点
}
}
p = [3] ; // p指向第一个节点
while (p != NULL)
{ // 显示线性链表
printf("%d ", p->data);
p = [4] ; // p移向后继
}
printf("\n");
return 0;
}
参考答案:[1] Node * [2] sizeof(Node) [3] head [4] p->next
知识点39:通常求累加和时,用于求和的变量被初始化为0。
示例70:下面程序的功能是计算1+2+3+…+100,将程序补充完整。
#include<stdio.h>
int main(void)
{
int s = [1] ;
for (int n = 1; n <= 100; n++)
s = s + [2] ;
printf("%d\n", s);
return 0;
}
参考答案:[1] 0 [2]n
示例71:编程通过函数计算数组中各元素的平均值。
#include <stdio.h>
float average(int a[], int n)
{
float s = 0;
for (int i = 0; i < n; i++)
s += a[i];
return s / n;
}
int main(void)
{
int a[6] = {2, 4, 6, 8, 10, 18};
float mean;
mean = average(a, 6);
printf("mean=%f\n", mean);
return 0;
}
知识点40:通常求连乘积时,用于求积的变量被初始化为1。
示例72:下面程序的功能是计算阶乘n!,将程序补充完整。
#include<stdio.h>
int f(int n)
{
int t = [1] ;
for (int i = 1; i <= n; i++)
t = t * [2] ;
return t;
}
int main(void)
{
printf("%d\n", f(6));
return 0;
}
参考答案:[1] 1 [2]i
示例73:下面程序的功能是计算一个二维数组各元素之乘,将程序补充完整。
#include<stdio.h>
int main(void)
{
int i, j, t = [1] ;
static int a[3][3] = {{1, 2, 6}, {2, 3, -10}, {-5, 1, 5}};
for (i = 0; i < 3; i++)
for (j = 0; j < 3; j++)
t = t * [2] ;
printf("%d\n", t);
return 0;
}
参考答案:[1] 1 [2]a[i][j]
知识点41:C语言用%表示两个整数的求余运算,m % n == 0表示m能被n所整除。
示例74:编程实现输出1000以内能同时被5,7和11所整除的所有正整数。
参考答案:
#include <stdio.h>
int main(void)
{
for (int n = 1; n <= 1000; n++)
if (n % 5 == 0 && n % 7 == 0 && n % 11 == 0)
printf("%d ", n);
printf("\n");
return 0;
}
知识点42:在用getchar()函数输入字符时,换行符被当着字符'\n'被getchar()所接收。
示例75:从键盘上连续输入若干个字符(以回车换行符为结束标记),统计其中包含的英文字母字符的个数,数字字符的个数,以及其他字符的个数。
参考答案:
#include <stdio.h>
int main(void)
{
int ch = getchar();
int n_letter = 0, n_digit = 0, n_other = 0;
while (ch != '\n')
{
if (ch >= 'a' && ch <= 'z' || ch >= 'A' && ch <= 'Z') n_letter++;
else if (ch >= '0' && ch <= '9') n_digit++;
else n_other++;
ch = getchar();
}
printf("Letter:%d Digit:%d Other:%d\n", n_letter, n_digit, n_other);
return 0;
}
或:
#include <stdio.h>
int main(void)
{
int ch, n_letter = 0, n_digit = 0, n_other = 0;
while ((ch = getchar()) != '\n')
{
if (ch >= 'a' && ch <= 'z' || ch >= 'A' && ch <= 'Z') n_letter++;
else if (ch >= '0' && ch <= '9') n_digit++;
else n_other++;
}
printf("Letter:%d Digit:%d Other:%d\n", n_letter, n_digit, n_other);
return 0;
}
知识点43:用gets()输入字符串时,能自动接收从键盘上所输入的一行字符,比用getchar()函数处理起来更简单。
示例76:从键盘上连续输入1行字符(假设每行小于80个字符),编程统计其中包含的数字字符的个数。
参考答案:
#include <stdio.h>
#include <string.h>
int main(void)
{
char ch, str[80];
int n = 0;
for (int i = 0; i < 6; i++)
{
gets(str);
for (int j = 0; j < strlen(str); j++)
if (str[j] >= '0' && str[j] <= '9') n++;
}
printf("Digit:%d\n", n);
return 0;
}
C语言程序设计教学基本知识点第一章C语言基本知识1C源程序的框架尽管各个C源程序的功能千变万化但框架是不变的主要有编译预处理主函数…
C程序设计知识点第1章C语言概述C程序设计知识点都懂了一定过第1章C语言概述1112C语言属高级语言区分字母的大小写以函数为基本单…
第一章程序设计基本概念11程序和程序设计程序连续执行的一条条指令的集合称为程序对于计算机来说它不能识别由高级语言编写的程序它只能接…
转C语言最重要的知识点复习资料保及格编辑删除权限设置更多更多设置置顶推荐日志转为私密日志转载自校友用户转载于20xx年04月15日…
C语言程序设计复习知识总结孙亚飞第一章软件工程概述及程序设计基础1冯诺依曼计算机存储程序原理一条计算机指令完成一个基本操作操作码操…
对于C语言程序设计实践教学的总结与反思《C语言程序设计》实践,作为一门计算机基础课程的实践,它不仅有利于提高学生的编程能力、思维能…
全国计算机等级考试二级c语言公共基础知识总结第一章数据结构与算法11算法算法是指解题方案的准确而完整的描述算法不等于程序也不等计算…
01C程序基本结构一C语言的特点1C语言源程序的基本组成单位是函数一个C程序可由若干个函数组成其中必须有且仅有一个以main命名的…
C程序设计知识点第1章C语言概述C程序设计知识点都懂了一定过第1章C语言概述1112C语言属高级语言区分字母的大小写以函数为基本单…
C语言程序设计复习知识总结孙亚飞第一章软件工程概述及程序设计基础1冯诺依曼计算机存储程序原理一条计算机指令完成一个基本操作操作码操…